当前位置:文档之家› ORACLE数据库迁移覆盖手册

ORACLE数据库迁移覆盖手册

ORACLE数据库迁移覆盖手册
应用场景
将同一个应用程序的一套数据库迁移到另一个数据库服务器并且覆盖原有数据库。

步骤(注:exp和imp都在命令行执行)
1、备份即将被覆盖的数据库
例:exp xtjg/xtjg@10.114.72.48/orcldqgb file=d:\xtjg_48_2016-1-11.dmp
2、清空目标数据库
用plsql developer连接数据库,手动删除所有对象,直到查不出任何用户对象
SELECT COUNT(*) FROM USER_OBJECTS;这里COUNT(*)大于零说明未清理干净,此时可能是回收站为清空,可以执行PURGE RECYCLEBIN; 然后再查询是否清理干净,直到
SELECT COUNT(*) FROM USER_OBJECTS;查出的结果为0.
3、检查两个数据库中该用户的默认表空间是否相同
SELECT DEFAULT_TABLESPACE FROM USER_USERS;
4、检查数据库中是否有LOB字段(CLOB或者BLOB)
SELECT COUNT(*) FROM USER_TAB_COLUMNS WHERE DATA_TYPE IN('BLOB','CLOB');
COUNT(*)如果大于零说明有LOB字段。

5、备份源数据库
例:exp xtjg/xtjg@10.114.72.162/orcl file=d:\xtjg_162_2016-1-11.dmp
6、一大堆的判断即将到来:
如果源和目标账号不同但是默认表空间相同,此时不管是否含有LOB字段Imp xtjg2/xtjg2@10.114.72.48/orcldqgb file= d:\xtjg_162_2016-1-11.dmp fromuser=xtjg touser=xtjg2
如果源和目标账号不同而且表空间也不同,但是不含有LOB字段
Imp xtjg2/xtjg2@10.114.72.48/orcldqgb file= d:\xtjg_162_2016-1-11.dmp fromuser=xtjg touser=xtjg2
如果源和目标账号不同而且表空间也不同,但是含有LOB字段
请联系DBA,用expdp/impdp的方式迁移
如果源和目标账号相同而且默认表空间相同,此时不管是否含有LOB字段Imp xtjg/xtjg@10.114.72.48/orcldqgb file= d:\xtjg_162_2016-1-11.dmp 如果源和目标账号相同但是默认表空间不同,不含LOB字段
Imp xtjg/xtjg@10.114.72.48/orcldqgb file= d:\xtjg_162_2016-1-11.dmp 如果源和目标账号相同但是默认表空间不同,含有LOB字段
请联系DBA,用expdp/impdp的方式迁移
建议
新建数据库时,同一套应用程序的数据库最好使用相同名称的默认表空间。

相关主题