1 环境信息
1) 操作系统
Windows 7 64 bit
2) 数据库
Oracle Database 11g Release 2
2 环境准备
环境准备包括操作系统的安装配置,数据库软件的安装配置,请参阅本人相关知识文
档,本文不再赘述。
3 RMAN异机数据迁移
3.1 L0全备迁移
1) 【 DB1 】 配置 RMAN 参数
RMAN> show all; 使用目标数据库控制文件替代恢复目录 db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为 CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION A LGORITHM 'AES128'; # default CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ ORACLEBASE\ORACLEHOME\DATABASE\SNCFORCL.ORA'; # default |
2) 【 DB1 】测试表数据
SELECT * FROM SCOTT.EMP;
3) 【 DB1 】 RMAN L0 全 备
RMAN> backup as compressed backupset i ncremental level 0 database 启动 backup 于 18 1 月 16 当前日志已存档 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在启动压缩的归档日志备份集 通道 ORA_DISK_1: 正在指定备份集内的归档日志 输入归档日志线程 =1 序列 =6 RECID=1 STAMP=901208948 输入归档日志线程 =1 序列 =7 RECID=2 STAMP=901407951 输入归档日志线程 =1 序列 =8 RECID=3 STAMP=901408132 输入归档日志线程 =1 序列 =9 RECID=4 STAMP=901446669 输入归档日志线程 =1 序列 =10 RECID=5 STAMP=901453974 输入归档日志线程 =1 序列 =11 RECID=6 STAMP=901467795 输入归档日志线程 =1 序列 =12 RECID=7 STAMP=901467841 输入归档日志线程 =1 序列 =13 RECID=8 STAMP=901468410 输入归档日志线程 =1 序列 =14 RECID=9 STAMP=901469437 输入归档日志线程 =1 序列 =15 RECID=10 STAMP=901469483 输入归档日志线程 =1 序列 =16 RECID=11 STAMP=901469958 输入归档日志线程 =1 序列 =17 RECID=12 STAMP=901469960 输入归档日志线 程 =1 序列 =18 RECID=13 STAMP=901469964 输入归档日志线程 =1 序列 =19 RECID=14 STAMP=901480462 通道 ORA_DISK_1: 正在启动段 1 于 18 1 月 16 通道 ORA_DISK_1: 已完成段 1 于 18 1 月 16 段句柄 = ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSET 2016_01_18 O1_MF_ANNNN_TAG2016 0118T191422_C9SL8H2H _.BKP 标记 =TAG20160118T191422 注释 =NONE 通道 ORA_DISK_1: 备份集已完成 , 经过时间 :00:00:07 完成 backup 于 18 1 月 16 启动 backup 于 18 1 月 16 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在启动压缩的增量级别 0 数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 输入数据文件 : 文件号 =00001 名称 = ORACLE ORACLEBASE ORADATA ORCL DATAFILE O1_MF_SYSTEM_C9K6JR79_.DBF 输入数据文件 : 文件号 =00002 名称 = ORACLE ORACLEBASE ORADATA ORCL DATAFILE O1_MF_SYSAUX_C9K6JTC3_.DBF 输入数据文件 : 文件号 =00005 名称 = ORACLE ORACLEBASE ORADATA ORCL DATAFILE O1_MF_EXAMPLE_C9K73W8F_.DBF 输入数据文件 : 文件号 =00003 名称 = ORACLE ORACLEBASE ORADATA ORCL DATAFILE O1_MF_UNDOTBS1_C9K6JTV6_.DBF 输入数据文件 : 文件号 =00004 名称 = ORACLE ORACLEBASE ORADATA ORCL DATAFILE O1_MF_USERS_C9K6JVKD_.DBF 通道 ORA_DISK_1: 正在启动段 1 于 18 1 月 16 通道 ORA_DISK_1: 已完成段 1 于 18 1 月 16 段句柄 D: ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSET 2016_01_18 O1_MF_NNND0_TAG2016 0118T191430_C9SL8PP4_.BKP 标记 =TAG20160118T191430 注释 =NONE 通道 ORA_DISK_1: 备份集已完成 , 经过时间 :00:00:35 通道 ORA_DISK_1: 正在启动压缩的增量级别 0 数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 备份集内包括当前控制文 件 备份集内包括当前的 SPFILE 通道 ORA_DISK_1: 正在启动段 1 于 18 1 月 16 通道 ORA_DISK_1: 已完成段 1 于 18 1 月 16 段句柄 = ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSET 2016_01_18 O1_MF_NCSN0_TAG2016 0118T191430_C9SL9TYL_.BKP 标记 =TAG20160118T191430 注释 =NONE 通道 ORA_DISK_1: 备份集已完成 经过时间 :00:00:02 完成 backup 于 18 1 月 16 启动 backup 于 18 1 月 16 当前日志已存档 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在启动压缩的归档日志备份集 通道 ORA_DISK_1: 正在指定备份集内的归档日志 输入归档日志线程 =1 序列 =20 RECID=15 STAMP=901480508 通道 ORA_DISK_1: 正在启动段 1 于 18 1 月 16 通道 ORA_DISK_1: 已完成段 1 于 18 1 月 16 段句柄 = ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSET 2016_01_18 O1_MF_ANNNN_TAG2016 0118T191508_C9SL9WOP_.BKP 标记 =TAG20160118T191508 注释 =NONE 通道 ORA_DISK_1: 备份集已完成 , 经过时间 :00:00:01 完成 backup 于 18 1 月 16 |
4) 查看 L0 全备信息
5) 备份当前控制文件
RMAN> backup current controlfile; 启动 backup 于 18 1 月 16 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在启动全部数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 备份集内包括当前控制文件 通道 ORA_DISK_1: 正在启动段 1 于 18 1 月 16 通道 ORA_DISK_1: 已完成段 1 于 18 1 月 16 段句柄 = ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSET 2016 _01_18 O1_MF_NCNNF_TAG2016 0118T191758_C9SLH7K1_.BKP 标记 =TAG20160118T191758 注释 =NONE 通道 ORA_DISK_1: 备份集已完成 , 经过时间 :00:00:01 完成 backup 于 18 1 月 16 RMAN> |
6) 查看两次备份的信息
7) 【 DB2 】 查看源数据库的路径,构建相同路径 ,把备份拷贝进去
Users cr>mkdir D: ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSET 2016_01_18
8) 【 DB2 】关闭数据库实例
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
9) 【 DB2 】把数据库启动到 NOMOUNT
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 4175568896 bytes
Fixed Size 2182344 bytes
Variable Size 2231370552 bytes
Database Buffers 1929379840 bytes
Redo Buffers 12636160 bytes
10) 【 DB2 】恢复控制文件
RMAN> restore controlfile from "D: oracle oraclebase flash_recovery_area ORCL BA CKUPSET 2016_01_18 O1_MF_NCNNF_TAG20160118T191758_C9SLH7K1_.BKP"; 启动 restore 于 18 1 月 16 使用目标数据库控制文件替 代恢复目录 分配的通道 : ORA_DISK_1 通道 ORA_DISK_1: SID=189 设备类型 =DISK 通道 ORA_DISK_1: 正在还原控制文件 通道 ORA_DISK_1: 还原完成 , 用时 : 00:00:01 输出文件名 = ORACLE ORACLEBASE ORADATA ORCL CONTROLFILE O1_MF_C9K77RLR_.CTL 输出文件名 = ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL CONTROLFILE O1_MF_C9K77 WLL_.CTL 完成 restore 于 18 1 月 16 |
11) 【 DB2 】 Mount 数据库
RMAN> alter database mount; 数据库已装载 释放的通道 : ORA_DISK_1 |
12) Restore 数据库
RMAN> restore database; 启动 restore 于 18 1 月 16 启动 implicit crosscheck backup 于 18 1 月 16 分配的通道 : ORA_DISK_1 通道 ORA_DISK_1: SID=189 设备类型 =DISK 已交叉检验的 4 对象 完成 implicit crosscheck backup 于 18 1 月 16 启动 implicit crosscheck copy 于 18 1 月 16 使用通道 ORA_DISK_1 完成 implicit crosscheck copy 于 18 1 月 16 搜索恢复区中的所有文件 正在编制文件目录 目录编制完毕 已列入目录的文件的列表 文件名 : ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL ARCHIVELOG 2016_01_15 O1_MF_1_6_C9K8DL2X_.ARC 文件名 : ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL ARCHIVELOG 2016_01_18 O1_M F_1_7_C9SCKYPC_.ARC 文件名 : ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSET 2016_01_18 O1_MF _NCNNF_TAG20160118T191758_C9SLH7K1_.BKP 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在开始还原数据文件备份集 通道 ORA_DISK_1: 正在指定从备份集还原的数据文件 通道 ORA_DISK_1: 将数据文件 00001 还原到 D: ORACLE ORACLEBASE ORADATA ORCL DATAF ILE O1_MF_SYSTEM_C9K6JR79_.DBF 通道 ORA_DISK_1: 将数据文件 00002 还原到 D: ORACLE ORACLEBASE ORADATA ORCL DATAF ILE O1_MF_SYSAUX_C9K6JTC3_.DBF 通道 ORA_DISK_1: 将数据文件 00003 还原到 D: ORACLE ORACLEBASE ORADATA ORCL DATAF ILE O1_MF_UNDOTBS1_C9K6JTV6_.DBF 通道 ORA_DISK_1: 将数据文 件 00004 还原到 D: ORACLE ORACLEBASE ORADATA ORCL DATAF ILE O1_MF_USERS_C9K6JVKD_.DBF 通道 ORA_DISK_1: 将数据文件 00005 还原到 D: ORACLE ORACLEBASE ORADATA ORCL DATAF ILE O1_MF_EXAMPLE_C9K73W8F_.DBF 通道 ORA_DISK_1: 正在读取备份片段 D: ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSET 2016_01_18 O1_MF_NNND0_TAG20160118T191430_C9SL8PP4_.BKP 通道 ORA_DISK_1: 段句柄 = ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSE T 2016_01_18 O1_MF_NNND0_TAG20160118T191430_C9SL8PP4_.BKP 标记 = TAG20160118T191 430 通道 ORA_DISK_1: 已还原备份片段 1 通道 ORA _DISK_1: 还原完成 , 用时 : 00:00:55 完成 restore 于 18 1 月 16 |
3.2 模拟源数据库业务运行
此时,源数据库仍正常运行,对外提供服务。
1) 【 DB1 】模拟 业务 运行
SELECT * FROM scott.emp;
update scott.emp set sal=sal+1000;
commit;
update scott.emp set sal=sal+1000;
commit;
update scott.emp set sal=sal+1000;
commit;
update scott.emp set sal=sal+1000;
commit;
update scott.emp set sal=sal+1000;
commit;
3.3 L1增量迁移
1) 【 DB1 】关闭监听
LSNRCTL STOP
2) 【 DB1 】 切换当前日志
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 19
下一个存档日志序列 21
当前日志序列 21
SQL>
SQL> alter system switch logfile;
系统已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 22
下一个存档日志序列 24
当前日志序列 24
3) 【 DB1 】 关闭数据库实例 ,把实例启动到 Mount
RMAN> shutdown immediate;
使用目标数据库控制文件替代恢复目录
数据库已关闭
数据库已卸装
Oracle 实例已关闭
RMAN> startup mount;
已连接到目标数据库 未启动
Oracle 实例已启动
数据库已装载
系统全局区域总计 4175568896 字节
Fixed Size 2182344 字节
Variable Size 2264924984 字节
Database Buffers 1895825408 字节
Redo Buffers 12636160 字节
4) 【 DB1 】 L1 增量备份数据库
RMAN> backup as compressed backupset incremental level 1 database 启动 backup 于 18 1 月 16 分配的通道 : ORA_DISK_1 通道 ORA_DISK_1: SID=156 设备类型 =DISK 通道 ORA_DISK_1: 正在启动压缩的归档日志备份集 通道 ORA_DISK_1: 正在指定备份集内的归档日志 输入归档日志线程 =1 序列 =6 RECID=1 STAMP=901208948 输入归档日志线程 =1 序列 =7 RECID=2 STAMP=901407951 输入归档日志线程 =1 序列 =8 RECID=3 STAMP=9 01408132 输入归档日志线程 =1 序列 =9 RECID=4 STAMP=901446669 输入归档日志线程 =1 序列 =10 RECID=5 STAMP=901453974 输入归档日志线程 =1 序列 =11 RECID=6 STAMP=901467795 输入归档日志线程 =1 序列 =12 RECID=7 STAMP=901467841 输入归档日志线程 =1 序列 =13 RECID=8 STAMP=901468410 输入归档日志线程 =1 序列 =14 RECID=9 STAMP=901469437 输入归档日志线程 =1 序列 =15 RECID=10 STAMP=901469483 输入归档日志线程 =1 序列 =16 RECID=11 STAMP=901469958 输入归档日志线程 =1 序列 =17 RECID=12 STAMP=901469960 输入归档日志线程 =1 序列 =18 RECID=13 STAMP=901469964 输入归档日志线程 =1 序列 =19 RECID=14 STAMP=901480462 输入归档日志线程 =1 序列 =20 RECID=15 STAMP=901480508 输入归档 日志线程 =1 序列 =21 RECID=16 STAMP=901482539 输入归档日志线程 =1 序列 =22 RECID=17 STAMP=901482547 输入归档日志线程 =1 序列 =23 RECID=18 STAMP=901482551 通道 ORA_DISK_1: 正在启动段 1 于 18 1 月 16 通道 ORA_DISK_1: 已完成段 1 于 18 1 月 16 段句柄 = ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSET 2016_ 01_18 O1_MF_ANNNN_TAG2016 0118T200245_C9SO35PB_.BKP 标记 =TAG20160118T200245 注释 =NONE 通道 ORA_DISK_1: 备份集已完成 , 经过时间 :00:00:07 完成 backup 于 18 1 月 16 启动 backup 于 18 1 月 16 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在启动压缩的增量级别 1 数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 输入数据文件 : 文件号 =00001 名称 = ORACLE ORACLEBASE ORADATA ORCL DATAFILE O1_MF_SYSTEM_C9K6JR79_.DBF 输入数据文件 : 文件号 =00002 名称 = ORACLE ORACLEBASE ORADATA ORCL DATAFILE O1_MF_SYSAUX_C9K6JTC3_.DBF 输入数据文件 : 文件号 =00005 名称 = ORACLE ORACLEBASE ORADATA ORCL DATAFILE O1_MF_EXAMPLE_C9K73W8F_.DBF 输入数据文件 : 文件号 =00003 名称 = ORACLE ORACLEBASE ORADATA ORCL DATAFILE O1_MF_UNDOTBS1_C9K6JTV6_.DBF 输入数据文件 : 文件号 =00004 名称 = ORACLE ORACLEBASE ORADATA ORCL DATAFILE O1_MF_USERS_C9K6JVKD_.DBF 通道 ORA_DISK_1: 正在启动段 1 于 18 1 月 16 通道 ORA_DISK_1: 已完成段 1 于 18 1 月 16 段句柄 = ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSET 2016_01_18 O1_MF_NNND1_TAG2016 0118T200252_C9SO3FJ2_.BKP 标记 =TAG20160118T200252 注释 =NONE 通道 ORA_DISK_1: 备份集已完成 , 经过时间 :00:00:15 通道 ORA_DISK_1: 正在启动压缩的增量级别 1 数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 备份集内包括当前控制文件 备份集内包括当前的 SPFILE 通道 ORA_DISK_1: 正在启动段 1 于 18 1 月 16 通道 ORA_DISK_1: 已完成段 1 于 18 1 月 16 段句柄 = ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSET 2016_01_18 O1_MF_NCSN1_TAG2016 0118 T200252_C9SO3XS0_.BKP 标记 =TAG20160118T200252 注释 =NONE 通道 ORA_DISK_1: 备份集已完成 , 经过时间 :00:00:01 完成 backup 于 18 1 月 16 启动 backup 于 18 1 月 16 使用通道 ORA_DISK_1 说明与资料档案库中的任何归档日志都不匹配 由于没有要备份的文件而取消了备份 完成 backup 于 18 1 月 16 |
5) 【 DB1 】 查看备份信息
6) 【 DB1 】 备份当前控制文件
RMAN> backup current controlfile; 启动 backup 于 18 1 月 16 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在启动全部数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 备份集内包括当前控制文件 通道 ORA_DISK_1: 正在启动段 1 于 18 1 月 16 通道 ORA_DISK_1: 已完成段 1 于 18 1 月 16 段句柄 = ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL BACKUPSET 2016_01_18 O1_MF_NCNNF_TAG2016 0118T200615_C9SO9S6V_.BKP 标记 =TAG20160118T200615 注释 =NONE 通道 ORA_DISK_1: 备份集已完成 , 经过时间 :00:00:01 完成 backup 于 18 1 月 16 RMAN> |
7) 【 DB1 】查看备份信息
8) 【 DB2 】 关闭目标数据库实例
RMAN> shutdown immediate;
数据库已卸装
Oracle 实例已关闭
9) 【 DB2 】 启动实例到 Nomount
RMAN> startup nomount;
已连接到目标数据库 未启动
Oracle 实例已启动
系统全局区域总计 4175568896 字节
Fixed Size 2182344 字节
Variable Size 2231370552 字节
Database Buffers 1929379840 字节
Redo Buffers 12636160 字节
10) 【 DB2 】 Restore 控制文件
RMAN> restore controlfile from " oracle oraclebase flash_recovery_area ORCL BA CKUPSET 2016_01_18 O1_MF_NCNNF_TAG20160118T200615_C9SO9S6V_.BKP"; 启动 restore 于 18 1 月 16 分配的通道 : ORA_DISK_1 通道 ORA_DISK_1: SID=156 设备类型 =DISK 通道 ORA_DISK_1: 正在还原控制文件 通道 ORA_DISK_1: 还原完成 , 用时 : 00:00:01 输出文件名 = ORACLE ORACLEBASE ORADATA ORCL CONTROLFILE O1_MF_C9K77RLR_.CTL 输出文件名 = ORACLE ORACLEBASE FLASH_RECOVERY_AREA ORCL CONTROLFILE O1_MF_C9K77 WLL_.CTL 完成 restore 于 18 1 月 16 |
11) 【 DB2 】 Mount 数据库实例
RMAN> alter database mount;
数据库已装载
释放的通道 : ORA_DISK_1
12) 【 DB2 】 查看备份信息
13) 【 DB2 】 Restore 数据库
14) 【 DB2 】 R ecover 数据库
15) 【 DB2 】 Re setlogs 打开数据库
RMAN> alter database open resetlogs;
数据库已打开
16) 【 DB2 】 检查迁移后的数据库数据一致性
select * from scott.emp;