本文共 1459 字,大约阅读时间需要 4 分钟。
使用Oracle的数据泵(expdp/impdp)实现数据库的备份与迁移
测试:将172.31.134.201服务器中的fraud_cs用户的数据全部备份并迁移到172.31.134.227上fraud_cs用户里
(1.dump文件建议增加日期后缀,便于多次备份后便于区分,例如FRAUDTEST_20200831.dmp,2.备份文件最好通过scp备份到另外一台服务器)
登录172.31.134.201服务器
su - oracle 切换到oracle用户
sqlplus / as sysdba
select * from dba_directories t; 查看所有directory
执行导出命令
expdp fraud_cs/fraud_cs directory=DATA_PUMP_DIR dumpfile=FRAUDTEST.dmp
Fraud_cs/fraud_cs 是所需导出用户数据的用户名/密码
directory=DATA_PUMP_DIR 是上图红框内目录名
dumpfile=FRAUDTEST.dmp 是生成的dump文件名
执行成功后到DATA_PUMP_DIR所对应的目录/opt/oracle/admin/orcl/dpdump查看备份文件是否生成。
cd /opt/oracle/admin/orcl/dpdump
ls
备份过程中可能遇到的问题:
1)UDE-12545: operation generated ORACLE error 12545
ORA-12545: Connect failed because target host or object does not exist
解决:修改oracle里tnsnames.ora文件里的主机名使其和服务器主机名保持一致
vim /opt/oracle/112/network/admin/tnsnames.ora
修改HOST = RD-ZL-201.act-telecom.local为HOST = RD-ZL-201
参考文档:
TNS-12545: Connect failed because target host or object does not exist
2) 目标不能存在和dumpfile同名文件
2. 数据迁移impdp
首先在迁移的目标服务器172.31.134.227上装好和172.31.134.201上同版本的oracle数据库,并新建fraud_cs用户。
登录172.31.134.227服务器
su - oracle 切换到oracle用户
sqlplus / as sysdba
select * from dba_directories t; 查看所有directory
切换至root用户
将在172.31.134.201上导出的备份文件FRAUDTEST.dmp传到172.31.134.227上的/opt/oracle/admin/orcl/dpdump
再切换为oracle用户
执行导入命令
impdp fraud_cs/fraud_cs DIRECTORY=DATA_PUMP_DIR DUMPFILE=FRAUDTEST.dmp REMAP_SCHEMA=fraud_cs:fraud_cs
fraud_cs/fraud_cs:新数据库的用户名/密码
fraud_cs:fraud_cs: 老数据库用户名:新用户用户名
导入成功。
转载地址:http://qoksi.baihongyu.com/