oracle 数据库expdp/impdp迁移数据库

为了保证数据一致性,迁移前需要暂停应用或修改数据库连接密码

先修改原库密码
原密码:xxx
alter user system identified by 12345678;


修改新建目的库初始化设置
密码期限,连接数等

一:字符集查询
select userenv('language') from dual;
AMERICAN_AMERICA.ZHS16GBK
注意:目的端创建相同字符集数据库

二:在目的端数据库创建和源端数据库相同表空间
1)select * from dba_data_files;
2)创建表空间
create tablespace xxx
datafile 'E:APPADMINISTRATORORADATAPROD2015xxx.DBF'  
size 50m  autoextend on  
next 50m maxsize UNLIMITED;
扩充表空间
ALTER TABLESPACE xxx ADD DATAFILE 'E:APPADMINISTRATORORADATAPROD2015xxx.DBF' SIZE 50M  AUTOEXTEND ON NEXT 5M MAXSIZE unlimited;
注意:目的端执行

三:按用户导出
1)创建目录
手工创建目录E:dpsource1
create directory dpsource as 'E:dpsource1';
select * from dba_directories;
----
2)执行导出命令

set ORACLE_SID=prod2015
expdp system/xxx schemas=EDI  dumpfile=EDI.dmp DIRECTORY=dpsource  PARALLEL=4 logfile=expdp_EDI.log;
expdp system/xxx schemas=SYSADM  dumpfile=SYSADM.dmp DIRECTORY=dpsource  PARALLEL=4 logfile=expdp_SYSADM.log;
expdp system/xxx schemas=SYSLOG  dumpfile=SYSLOG.dmp DIRECTORY=dpsource  PARALLEL=4 logfile=expdp_SYSLOG.log;

3)拷贝源端E:dpsource1下的dmp文件到目的端目录E:dpgoal1(在目的端手动创建)
四:按用户导入
1)创建目录
创建目录E:dpgoal1
create directory dpgoal as 'E:dpgoal1';
select * from dba_directories;
查询用户默认表空间
select * from dba_users
2)执行导入命令

set ORACLE_SID=prod2015
impdp system/xxx schemas=EDI  dumpfile=EDI.dmp DIRECTORY=dpgoal  PARALLEL=4 logfile=expdp_EDI.log;
impdp system/xxx schemas=SYSADM  dumpfile=SYSADM.dmp DIRECTORY=dpgoal  PARALLEL=4 logfile=expdp_SYSADM.log;
impdp system/xxx schemas=SYSLOG  dumpfile=SYSLOG.dmp DIRECTORY=dpgoal  PARALLEL=4 logfile=expdp_SYSLOG.log;

注意:

目的端提前创建表空间

目的端不用创建用户,默认自动创建

导入目的端时,数据库顺序可能造成视图等对象报错,需要手动重新编译

喜欢请赞赏一下啦^_^

微信赞赏

支付宝赞赏

原文地址:https://www.cnblogs.com/lkj371/p/14962496.html