在linux系统中迁移oracle数据库的数据有多种方式,常用的包括Data Pump(expdp/impdp)、RMAN(Recovery Manager)以及GoldenGate等工具。以下将详细介绍使用Data Pump和RMAN进行迁移的具体流程:
利用Data Pump (expdp/impdp) 进行数据迁移
前提条件:
- 源与目标数据库均已在Linux服务器上完成安装及配置。
- 已知源库与目标库的登录用户名和密码。
操作步骤:
在源服务器执行:
-
创建目录对象:
[root@linux100] # su - oracle [oracle@linux100] # sqlplus / as sysdba SQL create or replace directory tmpDir as '/tempFile';
-
使用expdp导出数据:
[oracle@linux100] # expdp username/password@Ip:port/database schemas dbTest directory tmpDir dumpfile export.dmp logfile export.log;
-
将导出的dmp文件传输至目标服务器:
[oracle@linux100] # scp -P 2222 /tempFile/export.dmp name@xxx.xxx.xxx.xxx:/home/tempFile;
在目标服务器执行:
-
创建目录对象:
[root@linux101] # su - oracle [oracle@linux101] # sqlplus / as sysdba SQL create or replace directory tmpDir as '/tempFile';
-
使用impdp导入数据:
[oracle@linux101] # impdp username/password@Ip:port/database schemas dbTest directory tmpDir dumpfile export.dmp job_namemyjob;
使用RMAN实现数据库迁移
前提条件:
- 源与目标数据库都已部署并配置于Linux环境。
- 用户名和密码信息已准备就绪。
实施步骤:
在源服务器执行:
-
登录到RMAN:
[oracle@linux100] # rman target /
-
执行数据库备份:
RMAN backup database plus archivelog;
-
迁移数据文件:
RMAN run { allocate channel c1 type disk; allocate channel c2 type disk; restore database from tag 'backup_tag'; switch datafile all; release channel c1; release channel c2; }
-
修改初始化参数文件:
[oracle@linux100] # sqlplus / as sysdba SQL ALTER SYSTEM SET DB_FILE_NAME_CONVERT '/old/path,/new/path' SCOPESPFILE; SQL ALTER SYSTEM SET LOG_FILE_NAME_CONVERT '/old/path,/new/path' SCOPESPFILE;
-
停止数据库并启动至NOMOUNT模式:
SQL shutdown immediate; SQL startup nomount;
在目标服务器执行:
-
创建目录对象:
[root@linux101] # su - oracle [oracle@linux101] # sqlplus / as sysdba SQL create or replace directory tmpDir as '/tempFile';
-
通过RMAN恢复数据库:
RMAN startup nomount; RMAN @/target-directory/crdb.sql;
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END