为了保证数据一致性,迁移前需要暂停应用或修改数据库连接密码
先修改原库密码
原密码: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:\APP\ADMINISTRATOR\ORADATA\PROD2015\xxx.DBF'
size 50m autoextend on
next 50m maxsize UNLIMITED;
扩充表空间
ALTER TABLESPACE xxx ADD DATAFILE 'E:\APP\ADMINISTRATOR\ORADATA\PROD2015\xxx.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;
注意:
目的端提前创建表空间
目的端不用创建用户,默认自动创建
导入目的端时,数据库顺序可能造成视图等对象报错,需要手动重新编译