unix系统oracle数据库空间,把64位的unix系统数据库迁移到32位的windows系统数据库中...

把64位的unix系统数据库迁移到32位的windows系统数据库中

需求描述:从一个64为AIX5.3系统的Oracle数据库把某一个用户的数据导到32位的Windows系统Oracle数据库中,数据量大概3G左右。操作系统不一样,但Oracle的版本用的都是10.2.0.1的版本,确定用exp\imp的方式进行迁移数据。

一、在64位的AIX5.3系统上导出某一用户的所有数据(下面在AIX5.3系统操作)

1、查看磁盘空间情况:

在64位的AIX5.3系统上执行导出数据

先查看导出的磁盘空间是否足够存放导出的数据(需要大于3G的空间):

AIX5.3系统命令:

df -m

2、查看数据库的监听器,以便知道数据库的监听名称。

位于$ORACLE_HOME/network/admin/tnsnames.ora

如:DQOMS =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = ip)(PORT = 1568)) )

(CONNECT_DATA =

(SERVICE_NAME = DQOMS)

)

)

监听名称为dqoms

3、执行导出命令,让其命令在后台运行(可能要2、3个小时导出数据)

数据量比较大,以防网络不稳定,该导出进程在后台运行命令:nohup  exp    wner=dqomswas   file=20081008exp   log=20081008exp.log   &

查看后台运行的进程:$ ps  -ef|grep  exp

二、在Windows中导入在AIX系统导出的数据

1、用ftp等工具把在AIX系统导出的数据传到Windows系统中

2、在windows系统中安装Oracle 10.2.0.1版本的数据库(略)

3、在导入数据库之前需要创建AIX系统数据库中的表空间和用户

3.1 在AIX系统数据库中查询总共有多少表空间,创建相应的表空间。SQL> select a.ts#,a.name "tablespace",b.name

2 from v$tablespace a,v$datafile b

3 where a.ts#=b.ts# order by a.ts#;

3.2 在Windows系统的数据库中创建相应的表空间

比如建立一个RMAN_SPACE的表空间:SQL> create tablespace RMAN_SPACE

2 datafile 'F:\oracle\product\10.2.0\oradata\xboms\RMAN_SPACE.dbf'

3 size 20M autoextend on;

表空间已创建。

创建完表空间!接着创建用户

3.3创建用户:SQL> create user xbomswas

2 identified by xbomswas;

用户已创建。

3.4 给用户授权SQL> grant dba to xbomswas;

3.5 先查看AIX系统数据库dqomswas用户的默认表空间SQL> conn dqomswas/dqomswas

已连接。

SQL> select username,default_tablespace,temporary_tablespace from user_users;

3.6查看windows系统数据库上xbomswas用户的默认表空间SQL> conn xbomswas/xbomswas

已连接。

SQL> select username,default_tablespace,temporary_tablespace from user_users;

两个用户的默认表空间一直就可以了(如果不一致,更改xbomswas用户的默认表空间:alter user xbomswas default tablespace users;

3.7在windows系统中查看数据库的监听器名称.位于$ORACLE_HOME/network/admin/tnsnames.ora

如果没有,需要添加上:

如:

XBOMS =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = ip)(PORT = 1521)) )

(CONNECT_DATA = (SERVICE_NAME = XBOMS)

)

)

监听名称为XBOMS

如果在cmd运行sqlplus  能登陆数据库则可以导入数据了。

4 在windows系统中导入数据,因为建立了相应的表空间了,但没有建立相应的用户,有很多表可能授权给其他用户,但数据库中缺少某用户,则会报错(由于 ORACLE 的 1917 错误)。所以在导入时加上grants=no ,也就是不导入权限,这样就不用报错了。imp      file=f:\20081008exp.dmp   fromuser=dqomswas   touser=xbomswas   grants=no    log=f:\20081008imp.log

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值