后台,并行expdp、impdp

2025-09-27 04:30:42

原库信息:11g单实例 500G  逻辑cpu有6个,表空间为ts_320 导出sa所有对象

新库信息:11g rac

impdp导入准备:创建表空间ts_320,不能创建用户sa

    为确保空间充足,对新库扩容690G

    alter tablespace ts_320 add datafile'+DATADG/orcl/datafile/zxx_001.dbf' size 30G ;

    将存储逻辑卷172.18.41.55:/nas/lun_4/nas_4 挂载到原库下的/archivelog

    mount –t nfs –o nolock 172.18.41.55:/nas/lun_4/nas_4 /archivelog,并在该目录下创建zxx_dump(注意一定要加选项 nolock)

    原库设置数据库存储文件目录

    create directory dump_dir_01 as '/archivelog/zxx_dump/; grant read,write on directory dump_dir_01 to zxx;

    expdp后台并行导出sa对象所有数据

    nohup expdp zxx/zxx schemas=sa directory=dump_dir_01 parallel=6 dumpfile=sa_20140718_5_22_%U.dmp logfile=sa_20140718_23_31.log &

    将新库变成单实例导入数据

    在rac两个节点执行:alter system set cluster_database=false scope=spfile sid='*';然后关闭两个节点的数据库,并只重启节点2的数据库,这样就是单实例了(因为并行导入的时候最好是单实例,否则报错)

    umount卸载原库中的172.18.41.55:/nas/lun_4/nas_4的存储逻辑卷,将它挂载到节点2的/archivelog,mount –t nfs –o nolock 172.18.41.55:/nas/lun_4/nas_4 /archivelog,挂载完之后设置新库的转储文件位置:create directory dump_dir_01 as '/archivelog/zxx_dump/; grant read,write on directory dump_dir_01 to zxx;

    为了加快导入速度,新库需要关闭归档(变成单实例后再设置)

     sql> archive log list;   

     sql> alter system set log_archive_start=false scope=spfile; #禁用自动归档

     sql> shutdown immediate;

     sql> startup mount;    

     sql> alter database noarchivelog; #将数据库切换为非归档模式

     sql> alter database open;   

     sql> archive log list;   

    设置好后之后开始导入

    nohup impdp zxx/zxx schemas=sa directory=dump_dir_01 parallel=6 dumpfile=sa_20140718_5_22_%U.dmp logfile=sa_20140719.log &

    导入成功之后,修改新库修改cluster_database参数

    alter system set cluster_database=true scope=spfile sid='*',然后关闭节点2的数据库,将两个节点的数据库启动。

注意:

1:如果再导入的时候没有关闭数据库中的归档,那么将会产生超过本身导入数据大小的归档,这其中数据库需要不停的切换日志,写入归档耗时相当大

2:在导入的时候parallel数目和导出时相同即可,查看逻辑CPU个数:

    cat /proc/cpuinfo |grep "processor"|wc -l  

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢