使用RMAN做整库迁移
目标
将生产环境产生的数据导给测试环境使用(或者在生产库挂掉时使用测试库暂时替代)
- 生产环境(192.168.18.129)
- 测试环境(192.168.18.133)
- 软件环境 Oracle Linux Server release 6.9/oracle11g
1
2#查看操作系统类型
$lsb_release -a
操作
打开生产库的归档模式
- 此处使用热备生产库,必须要处于归档模式才行
- 查看是否处于归档模式(已经是归档模式的话跳过此步骤)
1
2
3
$sqlplus /nolog
$conn /as sysdba
SQL>archive log list
- 打开归档模式
1
2
3
4
5
6
SQL>alter system set log_archive_dest_1='location=/home/oracle/arch'; # 配置归档文件路径
SQL>alter system set log_archive_format='arch_sysware_%t_%s_%r.dbf' scope=spfile; #配置归档文件名称格式
SQL>shutdown immediate #一致性关闭数据库
SQL>startup mount #重启到mount
SQL>alter database archivelog; #打开归档模式
SQL>alter database open; #打开数据库
使用RMAN备份生产库
1 | $rman target / |
将备份文件发送到测试机
只备份controlfile和dbf文件
1
2
3$scp /u01/app/oracle/fast_recovery_area/SYSWARE/backupset/2019_07_24/o1_mf_nnndf_TAG20190724T012348_gmgjo4ls_.bkp oracle@192.168.18.133:/u01/app/oracle/fast_recovery_area/SYSWARE/backupset/2019_07_24/o1_mf_nnndf_TAG20190724T012348_gmgjo4ls_.bkp
$scp /u01/app/oracle/fast_recovery_area/SYSWARE/autobackup/2019_07_24/o1_mf_s_1014426897_gmgjpkto_.bkp oracle@192.168.18.133:/u01/app/oracle/fast_recovery_area/SYSWARE/autobackup/2019_07_24/o1_mf_s_1014426897_gmgjpkto_.bkp使用生产库pfile参数文件启动测试库
1
2
3
4
5
6
7
81.从生产库生成pfile文件
SQL>create pfile='/u01/backup/pfile20190724.ora' from spfile;
2.发送到测试机
$ scp /u01/backup/pfile20190724.ora oracle@192.168.18.133:/u01/backup/pfile20190724.ora
3.测试库启动
SQL>startup pfile='/u01/backup/pfile20190724.ora' #从pfile启动
SQL>create pfile from spfile; # 恢复从pfile启动
SQL>shutdown immediate
将数据恢复测试库并启动
1 | RMAN>startup nomount #启动到nomount阶段(便于恢复备份的控制文件) |
正常启动就可以验证数据与生产库是否一致了