Oracle11g 数据库迁移
在Oracle11g中,exp默认不能导出空表。
用传统的exp,imp进行数据库迁移会比较麻烦,不过可以使用expdp、impdp进行迁移。
现对oracle11g数据库迁移进行介绍:
1.安装好数据库后可以通过对数据库参数进行修改,使其能通过exp导出导出空表
1)、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g 数据库时,空表不会导出。
2)、设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。
在sqlplus中,执行如下命令:
SQL>alter system set deferred_segment_creation=false;
查看:
SQL>show parameter deferred_segment_creation;
如果在执行建库脚本后进行修改该参数,只对后面新增的表产生作用,对之前建立的空表不起作用。
2.通过使用数据泵的方法进行导入导出
2008 to 2008
把32位windows 2008的Oracle11gR2数据库迁移到另一台32位windows 2008的Oracle11gR2数据库中,可以使用expdp、impdp进行迁移数据。
如:A和B均为windows服务器,数据库用户为ccense,把A服务器的数据迁移到B服务器中
在A服务器操作:
1、
SQL>conn / as sysdba
SQL> create directory expdp_dir as 'D:\databack ';
SQL> grant read,write on directory expdp_dir to ccense;
注:命令行中黑色粗体可以进行更改,下同
2、在windows2008目录中创建目录D:\databack,如果不创建将出现如下报错:
3、在DOS命令窗口导出:
在A服务器的DOS窗口输入如下命令:
expdp ccense/ccense@A_database DIRECTORY=expdp_dir DUMPFILE=test.dmp logfile=testexpdp.log
在B服务器中操作:
4、SQL> create directory impdp_dir as 'D:\backup';
SQL> grant read,write on directory impdp_dir to ccense;
5. 在windows2008目录中创建目录D:\backup。
6、在DOS命令窗口导入:
把A服务器上导出的dmp文件放到B服务器的impdp_dir目录中,然后在B服务器的dos窗口执行导入命令:
impdp ccense/ccense@B_database DIRECTORY=impdp_dir
DUMPFILE=test.dmp logfile=testimpdp.log。