Oracle在Linux上如何迁移数据

Oracle在Linux上如何迁移数据

linux系统中迁移oracle数据库的数据有多种方式,常用的包括Data Pump(expdp/impdp)、RMAN(Recovery Manager)以及GoldenGate等工具。以下将详细介绍使用Data Pump和RMAN进行迁移的具体流程:

利用Data Pump (expdp/impdp) 进行数据迁移

前提条件

  • 源与目标数据库均已在Linux服务器上完成安装及配置。
  • 已知源库与目标库的登录用户名和密码。

操作步骤

在源服务器执行

  1. 创建目录对象

     [root@linux100] # su - oracle  [oracle@linux100] # sqlplus / as sysdba  SQL create or replace directory tmpDir as '/tempFile';
  2. 使用expdp导出数据:

     [oracle@linux100] # expdp username/password@Ip:port/database schemas dbTest directory tmpDir dumpfile export.dmp logfile export.log;
  3. 将导出的dmp文件传输至目标服务器:

     [oracle@linux100] # scp -P 2222 /tempFile/export.dmp name@xxx.xxx.xxx.xxx:/home/tempFile;

在目标服务器执行

  1. 创建目录对象:

     [root@linux101] # su - oracle  [oracle@linux101] # sqlplus / as sysdba  SQL create or replace directory tmpDir as '/tempFile';
  2. 使用impdp导入数据:

     [oracle@linux101] # impdp username/password@Ip:port/database schemas dbTest directory tmpDir dumpfile export.dmp job_namemyjob;

使用RMAN实现数据库迁移

前提条件

  • 源与目标数据库都已部署并配置于Linux环境。
  • 用户名和密码信息已准备就绪。

实施步骤

在源服务器执行

  1. 登录到RMAN:

     [oracle@linux100] # rman target /
  2. 执行数据库备份:

     RMAN backup database plus archivelog;
  3. 迁移数据文件:

     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;  }
  4. 修改初始化参数文件:

     [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;
  5. 停止数据库并启动至NOMOUNT模式:

     SQL shutdown immediate;  SQL startup nomount;

在目标服务器执行

  1. 创建目录对象:

     [root@linux101] # su - oracle  [oracle@linux101] # sqlplus / as sysdba  SQL create or replace directory tmpDir as '/tempFile';
  2. 通过RMAN恢复数据库:

     RMAN startup nomount;  RMAN @/target-directory/crdb.sql;

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享