本次试验,参考metalink上的 doc:419137.1
将源db通过rman异机恢复到目的库,并重新修改db_name为sp
源主机 192.168.1.244 ,db_name为win10g ,rman中的控制文件自动备份打开
往表t中插入数据,观察日志情况,并切换日志组
SSQL> select group#,sequence#,status,first_change#,archived from v$log;
GROUP# SEQUENCE# STATUS FIRST_CHANGE# ARC
---------- ---------- ---------------- ------------- ---
1 120 CURRENT 6079303 NO
2 119 INACTIVE 6079232 YES
3 118 INACTIVE 6079199 YES
SQL> insert into t values(6);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> select group#,sequence#,status,first_change#,archived from v$log;
GROUP# SEQUENCE# STATUS FIRST_CHANGE# ARC
---------- ---------- ---------------- ------------- ---
1 120 ACTIVE 6079303 YES
2 119 INACTIVE 6079232 YES
3 121 CURRENT 6083207 NO
第二次
SQL> insert into t values(7);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> select group#,sequence#,status,first_change#,archived from v$log;
GROUP# SEQUENCE# STATUS FIRST_CHANGE# ARC
---------- ---------- ---------------- ------------- ---
1 120 ACTIVE 6079303 YES
2 122 CURRENT 6083236 NO
3 121 ACTIVE 6083207 YES
第三次
SQL> insert into t values(8);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> select group#,sequence#,status,first_change#,archived from v$log;
GROUP# SEQUENCE# STATUS FIRST_CHANGE# ARC
---------- ---------- ---------------- ------------- ---
1 123 CURRENT 6083256 NO
2 122 ACTIVE 6083236 YES
3 121 ACTIVE 6083207 YES
第四次
SQL> insert into t values(9);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> select group#,sequence#,status,first_change#,archived from v$log;
GROUP# SEQUENCE# STATUS FIRST_CHANGE# ARC
---------- ---------- ---------------- ------------- ---
1 123 ACTIVE 6083256 YES
2 122 ACTIVE 6083236 YES
3 124 CURRENT 6083276 NO
第五次
SQL> insert into t values(10);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> select group#,sequence#,status,first_change#,archived from v$log;
GROUP# SEQUENCE# STATUS FIRST_CHANGE# ARC
---------- ---------- ---------------- ------------- ---
1 123 ACTIVE 6083256 YES
2 125 CURRENT 6083295 NO
3 124 ACTIVE 6083276 YES
第六次
SQL> insert into t values(11);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> select group#,sequence#,status,first_change#,archived from v$log;
GROUP# SEQUENCE# STATUS FIRST_CHANGE# ARC
---------- ---------- ---------------- ------------- ---
1 126 CURRENT 6083310 NO
2 125 ACTIVE 6083295 YES
3 124 ACTIVE 6083276 YES
第七次
SQL> insert into t values(12);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> select group#,sequence#,status,first_change#,archived from v$log;
GROUP# SEQUENCE# STATUS FIRST_CHANGE# ARC
---------- ---------- ---------------- ------------- ---
1 126 ACTIVE 6083310 YES
2 125 ACTIVE 6083295 YES
3 127 CURRENT 6083332 NO
SQL> select * from t;
ID
----------
6
7
8
9
10
11
12
已选择7行。
这个时候在闪回恢复区中生成了 多个归档日志文件
然后备份win10g
run{
backup as compressed backupset database;
backup archivelog all not backed up delete input;
delete noprompt obsolete recovery window of 5 days;
}
启动 backup 于 20-3月 -13
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=158 devtype=DISK
通道 ORA_DISK_1: 启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=C:\ORADATA\WIN10G\SYSTEM01.DBF
输入数据文件 fno=00003 name=C:\ORADATA\WIN10G\SYSAUX01.DBF
输入数据文件 fno=00002 name=C:\ORADATA\WIN10G\UNDOTBS01.DBF
输入数据文件 fno=00005 name=C:\ORADATA\WIN10G\EXAMPLE01.DBF
输入数据文件 fno=00006 name=C:\ORADATA\TT.DBF
输入数据文件 fno=00004 name=C:\ORADATA\WIN10G\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 20-3月 -13
通道 ORA_DISK_1: 已完成段 1 于 20-3月 -13
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\BACKUPSET\2013_03_20\
O1_MF_NNNDF_TAG20130320T173244_8NM0KWSW_.BKP 标记=TAG20130320T173244 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:05
完成 backup 于 20-3月 -13
启动 backup 于 20-3月 -13
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =120 记录 ID=118 时间戳=810581265
输入存档日志线程 =1 序列 =121 记录 ID=119 时间戳=810581329
输入存档日志线程 =1 序列 =122 记录 ID=120 时间戳=810581366
输入存档日志线程 =1 序列 =123 记录 ID=121 时间戳=810581414
输入存档日志线程 =1 序列 =124 记录 ID=122 时间戳=810581447
输入存档日志线程 =1 序列 =125 记录 ID=123 时间戳=810581480
输入存档日志线程 =1 序列 =126 记录 ID=124 时间戳=810581510
输入存档日志线程 =1 序列 =127 记录 ID=125 时间戳=810581633
通道 ORA_DISK_1: 正在启动段 1 于 20-3月 -13
通道 ORA_DISK_1: 已完成段 1 于 20-3月 -13
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\BACKUPSET\2013_03_20\
O1_MF_ANNNN_TAG20130320T173353_8NM0N1L2_.BKP 标记=TAG20130320T173353 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\ARCHIVELOG\2
013_03_20\O1_MF_1_120_8NM08K2X_.ARC 记录 ID=118 时间戳 =810581265
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\ARCHIVELOG\2
013_03_20\O1_MF_1_121_8NM0BKL2_.ARC 记录 ID=119 时间戳 =810581329
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\ARCHIVELOG\2
013_03_20\O1_MF_1_122_8NM0CPPG_.ARC 记录 ID=120 时间戳 =810581366
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\ARCHIVELOG\2
013_03_20\O1_MF_1_123_8NM0F6PG_.ARC 记录 ID=121 时间戳 =810581414
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\ARCHIVELOG\2
013_03_20\O1_MF_1_124_8NM0G7OZ_.ARC 记录 ID=122 时间戳 =810581447
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\ARCHIVELOG\2
013_03_20\O1_MF_1_125_8NM0H8OZ_.ARC 记录 ID=123 时间戳 =810581480
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\ARCHIVELOG\2
013_03_20\O1_MF_1_126_8NM0J6OZ_.ARC 记录 ID=124 时间戳 =810581510
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\ARCHIVELOG\2
013_03_20\O1_MF_1_127_8NM0N11G_.ARC 记录 ID=125 时间戳 =810581633
完成 backup 于 20-3月 -13
启动 Control File and SPFILE Autobackup 于 20-3月 -13
段 handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\AUTOBACKUP\2013_03
_20\O1_MF_S_810581634_8NM0N30H_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 20-3月 -13
使用通道 ORA_DISK_1
未找到已废弃的备份
RMAN>
RMAN> list backup;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
72 Full 168.66M DISK 00:00:56 20-3月 -13
BP 关键字: 72 状态: AVAILABLE 已压缩: YES 标记: TAG20130320T173244
段名:C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\BACKUPSET\2013_03_20\O1_MF_NNNDF_TAG20130320T173244_8NM0KWSW_.BKP
备份集 72 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\SYSTEM01.DBF
2 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\UNDOTBS01.DBF
3 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\SYSAUX01.DBF
4 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\USERS01.DBF
5 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\EXAMPLE01.DBF
6 Full 6083442 20-3月 -13 C:\ORADATA\TT.DBF
BS 关键字 大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ ----------
73 3.66M DISK 00:00:00 20-3月 -13
BP 关键字: 73 状态: AVAILABLE 已压缩: NO 标记: TAG20130320T173353
段名:C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\BACKUPSET\2013_03_20\O1_MF_ANNNN_TAG20130320T173353_8NM0N1L2_.BKP
备份集 73 中的已存档日志列表
Thrd Seq 低 SCN 短时间 下一个 SCN 下一次
---- ------- ---------- ---------- ---------- ---------
1 120 6079303 20-3月 -13 6083207 20-3月 -13
1 121 6083207 20-3月 -13 6083236 20-3月 -13
1 122 6083236 20-3月 -13 6083256 20-3月 -13
1 123 6083256 20-3月 -13 6083276 20-3月 -13
1 124 6083276 20-3月 -13 6083295 20-3月 -13
1 125 6083295 20-3月 -13 6083310 20-3月 -13
1 126 6083310 20-3月 -13 6083332 20-3月 -13
1 127 6083332 20-3月 -13 6083507 20-3月 -13
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
74 Full 6.95M DISK 00:00:01 20-3月 -13
BP 关键字: 74 状态: AVAILABLE 已压缩: NO 标记: TAG20130320T173354
段名:C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\AUTOBACKUP\2013_03_20\O1_MF_S_810581634_8NM0N30H_.BKP
包括的控制文件: Ckp SCN: 6083513 Ckp 时间: 20-3月 -13
包含的 SPFILE: 修改时间: 20-3月 -13
RMAN>
目的主机 192.168.1.240 db_name为tt ,rman中的设置都为默认
现在想要把244主机上的备份异地恢复到240主机上,并重名名db_name为sp
1:将源主机(244)上的备份 全部scp到目的主机(240)的 C:\scp目录下
O1_MF_NNNDF_TAG20130320T173244_8NM0KWSW_.BKP -------数据文件备份
O1_MF_ANNNN_TAG20130320T173353_8NM0N1L2_.BKP -------归档日志文件备份
O1_MF_S_810581634_8NM0N30H_.BKP ---------- 控制文件自动备份
在目的库tt上创建pfile文件
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 293601280 bytes
Fixed Size 1248624 bytes
Variable Size 96469648 bytes
Database Buffers 192937984 bytes
Redo Buffers 2945024 bytes
SQL> create pfile from spfile;
文件已创建。
2:关闭目的库sp,恢复控制文件
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
然后删除原来so数据库的所有数据文件、控制文件及日志文件
修改zt库上的pfile文件(所在目录为C:\oracle\product\10.2.0\db_1\database\inittt.ora)
将里面的 db_name改为 win10g ,如果有 undo_tablespace 则改为源主机对应的,而service_names、
instance_name 可改可不改
如果这里直接将db_name 改为 sp 的话,那么在将db启动到mount状态时报错:
ORA-01103: 控制文件中的数据库名 ''WIN10G'' 不是 ''SP''
然后恢复控制文件
RMAN> startup nomount;
Oracle 实例已启动
系统全局区域总计 293601280 字节
Fixed Size 1248624 字节
Variable Size 96469648 字节
Database Buffers 192937984 字节
Redo Buffers 2945024 字节
RMAN>
RMAN> restore controlfile from 'C:\scp\O1_MF_S_810581634_8NM0N30H_.BKP'; //必须在rman中执行
启动 restore 于 20-3月 -13
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:01
输出文件名=C:\SPDATA\SP\CONTROL01.CTL
输出文件名=C:\SPDATA\SP\CONTROL02.CTL
输出文件名=C:\SPDATA\SP\CONTROL03.CTL
完成 restore 于 20-3月 -13
RMAN>
3:查看控制文件里的备份信息
RMAN> startup mount;
数据库已经启动
数据库已装载
释放的通道: ORA_DISK_1
RMAN> list backup;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
72 Full 168.66M DISK 00:00:56 20-3月 -13
BP 关键字: 72 状态: AVAILABLE 已压缩: YES 标记: TAG20130320T173244
段名:C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\BACKUPSET\2013_03_20\O1_MF_NNNDF_TAG20130320T173244_8NM0KWSW_.BKP
备份集 72 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\SYSTEM01.DBF
2 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\UNDOTBS01.DBF
3 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\SYSAUX01.DBF
4 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\USERS01.DBF
5 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\EXAMPLE01.DBF
6 Full 6083442 20-3月 -13 C:\ORADATA\TT.DBF
BS 关键字 大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ ----------
73 3.66M DISK 00:00:00 20-3月 -13
BP 关键字: 73 状态: AVAILABLE 已压缩: NO 标记: TAG20130320T173353
段名:C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\BACKUPSET\2013_03_20\O1_MF_ANNNN_TAG20130320T173353_8NM0N1L2_.BKP
备份集 73 中的已存档日志列表
Thrd Seq 低 SCN 短时间 下一个 SCN 下一次
---- ------- ---------- ---------- ---------- ---------
1 120 6079303 20-3月 -13 6083207 20-3月 -13
1 121 6083207 20-3月 -13 6083236 20-3月 -13
1 122 6083236 20-3月 -13 6083256 20-3月 -13
1 123 6083256 20-3月 -13 6083276 20-3月 -13
1 124 6083276 20-3月 -13 6083295 20-3月 -13
1 125 6083295 20-3月 -13 6083310 20-3月 -13
1 126 6083310 20-3月 -13 6083332 20-3月 -13
1 127 6083332 20-3月 -13 6083507 20-3月 -13
RMAN>
可见还是源库(win10g)上的信息
然后将目的主机(240)上的备份片重新注册到控制文件中
RMAN> catalog backuppiece 'C:\scp\O1_MF_ANNNN_TAG20130320T173353_8NM0N1L2_.BKP';//必须在rman中执行
启动 implicit crosscheck backup 于 20-3月 -13
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
已交叉检验的 2 对象
完成 implicit crosscheck backup 于 20-3月 -13
启动 implicit crosscheck copy 于 20-3月 -13
使用通道 ORA_DISK_1
已交叉检验的 6 对象
完成 implicit crosscheck copy 于 20-3月 -13
搜索恢复区域中的所有文件
正在编制文件目录...
没有为文件编制目录
已列入目录的备份段
备份段 handle=C:\SCP\O1_MF_ANNNN_TAG20130320T173353_8NM0N1L2_.BKP recid=74 stamp=810583087
RMAN> catalog backuppiece 'C:\SCP\O1_MF_NNNDF_TAG20130320T173244_8NM0KWSW_.BKP';//必须在rman中执行
已列入目录的备份段
备份段 handle=C:\SCP\O1_MF_NNNDF_TAG20130320T173244_8NM0KWSW_.BKP recid=75 stamp=810583100
RMAN>
注册以后重新查看控制文件里的备份集信息(查看段名的区别)
RMAN> list backup;
备份集列表
===================
BS 关键字 大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ ----------
74 3.66M DISK 00:00:00 20-3月 -13
BP 关键字: 74 状态: AVAILABLE 已压缩: NO 标记: TAG20130320T173353
段名:C:\SCP\O1_MF_ANNNN_TAG20130320T173353_8NM0N1L2_.BKP
备份集 74 中的已存档日志列表
Thrd Seq 低 SCN 短时间 下一个 SCN 下一次
---- ------- ---------- ---------- ---------- ---------
1 120 6079303 20-3月 -13 6083207 20-3月 -13
1 121 6083207 20-3月 -13 6083236 20-3月 -13
1 122 6083236 20-3月 -13 6083256 20-3月 -13
1 123 6083256 20-3月 -13 6083276 20-3月 -13
1 124 6083276 20-3月 -13 6083295 20-3月 -13
1 125 6083295 20-3月 -13 6083310 20-3月 -13
1 126 6083310 20-3月 -13 6083332 20-3月 -13
1 127 6083332 20-3月 -13 6083507 20-3月 -13
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
75 Full 168.66M DISK 00:00:00 20-3月 -13
BP 关键字: 75 状态: AVAILABLE 已压缩: YES 标记: TAG20130320T173244
段名:C:\SCP\O1_MF_NNNDF_TAG20130320T173244_8NM0KWSW_.BKP
备份集 75 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\SYSTEM01.DBF
2 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\UNDOTBS01.DBF
3 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\SYSAUX01.DBF
4 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\USERS01.DBF
5 Full 6083442 20-3月 -13 C:\ORADATA\WIN10G\EXAMPLE01.DBF
6 Full 6083442 20-3月 -13 C:\ORADATA\TT.DBF
RMAN>
RMAN> crosscheck backup;
RMAN> delete expired backup;
4:在mount状态下,更新控制文件里关于数据文件的路径
在源库(244)上执行 report schema,列出数据文件编号对应的数据文件
RMAN> report schema;
数据库方案报表
永久数据文件列表
===========================
文件大小 (MB) 表空间 回退段数据文件名称
---- -------- -------------------- ------- ------------------------
1 500 SYSTEM *** C:\ORADATA\WIN10G\SYSTEM01.DBF
2 100 UNDOTBS1 *** C:\ORADATA\WIN10G\UNDOTBS01.DBF
3 370 SYSAUX *** C:\ORADATA\WIN10G\SYSAUX01.DBF
4 52 USERS *** C:\ORADATA\WIN10G\USERS01.DBF
5 100 EXAMPLE *** C:\ORADATA\WIN10G\EXAMPLE01.DBF
6 100 TT *** C:\ORADATA\TT.DBF
临时文件列表
=======================
文件大小 (MB) 表空间 最大大小 (MB) 临时文件名称
---- -------- -------------------- ----------- --------------------
1 21 TEMP 32767 C:\ORADATA\WIN10G\TEMP01.DBF
然后对应数据文件编号和数据文件名,修改存放目的库的具体路径
在目的库(240)上
mount状态下
run{
set newname for datafile 1 to 'C:\spdata\sp\SYSTEM01.DBF';
set newname for datafile 2 to 'C:\spdata\sp\UNDOTBS01.DBF';
set newname for datafile 3 to 'C:\spdata\sp\SYSAUX01.DBF';
set newname for datafile 4 to 'C:\spdata\sp\USERS01.DBF';
set newname for datafile 5 to 'C:\spdata\sp\EXAMPLE01.DBF';
set newname for datafile 6 to 'C:\spdata\sp\TT.DBF';
restore database;
switch datafile all;
}
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
启动 restore 于 20-3月 -13
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到C:\SPDATA\SP\SYSTEM01.DBF
正将数据文件00002恢复到C:\SPDATA\SP\UNDOTBS01.DBF
正将数据文件00003恢复到C:\SPDATA\SP\SYSAUX01.DBF
正将数据文件00004恢复到C:\SPDATA\SP\USERS01.DBF
正将数据文件00005恢复到C:\SPDATA\SP\EXAMPLE01.DBF
正将数据文件00006恢复到C:\SPDATA\SP\TT.DBF
通道 ORA_DISK_1: 正在读取备份段 C:\SCP\O1_MF_NNNDF_TAG20130320T173244_8NM0KWSW_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = C:\SCP\O1_MF_NNNDF_TAG20130320T173244_8NM0KWSW_.BKP 标记 = TAG20130320T
173244
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:55
完成 restore 于 20-3月 -13
数据文件 1 已转换成数据文件副本
输入数据文件副本 recid=35 stamp=810583327 文件名=C:\SPDATA\SP\SYSTEM01.DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=36 stamp=810583327 文件名=C:\SPDATA\SP\UNDOTBS01.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=37 stamp=810583327 文件名=C:\SPDATA\SP\SYSAUX01.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=38 stamp=810583327 文件名=C:\SPDATA\SP\USERS01.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=39 stamp=810583327 文件名=C:\SPDATA\SP\EXAMPLE01.DBF
数据文件 6 已转换成数据文件副本
输入数据文件副本 recid=40 stamp=810583327 文件名=C:\SPDATA\SP\TT.DBF
set newname for 指明数据文件往个路径还原
restore database 开始还原数据库
switch datafile all 更新控制文件里记录的数据文件路径
执行完上述命令以后,v$datafile已经更新,但是v$logfile还是源库(244)
SQL> select name from v$datafile;
NAME
------------------------------------------------------
C:\SPDATA\SP\SYSTEM01.DBF
C:\SPDATA\SP\UNDOTBS01.DBF
C:\SPDATA\SP\SYSAUX01.DBF
C:\SPDATA\SP\USERS01.DBF
C:\SPDATA\SP\EXAMPLE01.DBF
C:\SPDATA\SP\TT.DBF
已选择6行。
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- ----------------------------------------
3 C:\ORADATA\WIN10G\REDO03.LOG
2 C:\ORADATA\WIN10G\REDO02.LOG
1 C:\ORADATA\WIN10G\REDO01.LOG
5:更新控制文件中redo log的位置
将源库(244)win10g上的三个redo log拷贝到目的库(240)的 C:\SPDATA\SP\zt 目录下
mount状态下
SQL> select open_mode from v$database;
OPEN_MODE
----------
MOUNTED
SQL> alter database rename file 'C:\ORADATA\WIN10G\REDO01.LOG' to 'C:\SPDATA\SP\REDO01.LOG';//不能在rman中执行
数据库已更改。
SQL> alter database rename file 'C:\ORADATA\WIN10G\REDO02.LOG' to 'C:\SPDATA\SP\REDO02.LOG';
数据库已更改。
SQL> alter database rename file 'C:\ORADATA\WIN10G\REDO03.LOG' to 'C:\SPDATA\SP\REDO03.LOG';
数据库已更改。
查看数据文件头和控制文件的scn信息
SQL> select file#,checkpoint_change# from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 6083442
2 6083442
3 6083442
4 6083442
5 6083442
6 6083442
已选择6行。
SQL>
SQL> select file#,checkpoint_change# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 6083442
2 6083442
3 6083442
4 6083442
5 6083442
6 6083442
已选择6行。
SQL> select group#,sequence#,status, first_change# from v$log;
GROUP# SEQUENCE# STATUS FIRST_CHANGE#
---------- ---------- ---------------- -------------
1 126 INACTIVE 6083310
3 127 ACTIVE 6083332
2 128 CURRENT 6083507
查看归档日志里的具体信息
SQL> select SEQUENCE#,FIRST_CHANGE#,NEXT_CHANGE# from v$archived_log;
。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。省略。。。。。。。。。。。。。。。。
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ------------- ------------
115 6079023 6079059
116 6079059 6079150
117 6079150 6079199
118 6079199 6079232
119 6079232 6079303
120 6079303 6083207
121 6083207 6083236
122 6083236 6083256
123 6083256 6083276
124 6083276 6083295
125 6083295 6083310
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ------------- ------------
126 6083310 6083332
127 6083332 6083507
已选择90行。
SQL>
RMAN> recover database;
启动 recover 于 21-3月 -13
使用通道 ORA_DISK_1
正在开始介质的恢复
通道 ORA_DISK_1: 正在启动到默认目标的存档日志恢复
通道 ORA_DISK_1: 正在恢复存档日志
存档日志线程 =1 序列=127
通道 ORA_DISK_1: 正在读取备份段 C:\SCP\O1_MF_ANNNN_TAG20130320T173353_8NM0N1L2_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = C:\SCP\O1_MF_ANNNN_TAG20130320T173353_8NM0N1L2_.BKP 标记 = TAG20130320T173353
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:01
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\WIN10G\ARCHIVELOG\2
013_03_21\O1_MF_1_127_8NNPDCN0_.ARC 线程 =1 序列 =127
无法找到存档日志
存档日志线程 =1 序列=1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 03/20/2013 18:09:00 上) 失败
RMAN-06054: 介质恢复正请求未知的日志: 线程 1 seq 1 lowscn 6083508
recover database until cancel 这个命令必须在sqlplus中运行,不能在rman中运行
然后在sqlplus中执行也报错
SQL> recover database until cancel;
ORA-00283: 恢复会话因错误而取消
ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成
而继续在ramn中执行,也报错
RMAN> recover database until scn 6083507;
启动 recover 于 20-3月 -13
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 03/20/2013 19:07:52 上) 失败
RMAN-06556: 数据文件 1 必须从 scn 6083506 之前的备份复原
此时直接使用resetlogs方式打开db
RMAN> alter database open resetlogs;
然后找到控制文件的语法,重建控制文件(open状态下)
SQL> alter database backup controlfile to trace ;
然后在udump中找到最新的trace文件,获得控制文件的语法
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- Set #2. RESETLOGS case
--
-- The following commands will create a new control file and use it
-- to open the database.
-- Data used by Recovery Manager will be lost.
-- The contents of online logs will be lost and all backups will
-- be invalidated. Use this only if online logs are damaged.
-- After mounting the created controlfile, the following SQL
-- statement will place the database in the appropriate
-- protection mode:
-- ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "WIN10G" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'C:\SPDATA\SP\REDO01.LOG' SIZE 50M,
GROUP 2 'C:\SPDATA\SP\REDO02.LOG' SIZE 50M,
GROUP 3 'C:\SPDATA\SP\REDO03.LOG' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'C:\SPDATA\SP\SYSTEM01.DBF',
'C:\SPDATA\SP\UNDOTBS01.DBF',
'C:\SPDATA\SP\SYSAUX01.DBF',
'C:\SPDATA\SP\USERS01.DBF',
'C:\SPDATA\SP\EXAMPLE01.DBF',
'C:\SPDATA\SP\TT.DBF'
CHARACTER SET ZHS16GBK
;
++++++++++++++++++++++++++++++++++++++++++++++++++
然后关闭数据库、删除tt库上的三个控制文件、将pfile中的db_name 改为sp
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
删除控制文件、修改pfile中的db_name为sp
然后启动db到nomount状态下
修改控制文件的语法,将REUSE一定要改为 SET ,win10g改为sp,否则报错如下:
CREATE CONTROLFILE REUSE DATABASE "SP" RESETLOGS ARCHIVELOG
*
第 1 行出现错误:
ORA-01503: CREATE CONTROLFILE ??
ORA-01504: ???? 'SP' ??? db_name 'win10g' ???
SQL> CREATE CONTROLFILE SET DATABASE "SP" RESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 'C:\SPDATA\SP\REDO01.LOG' SIZE 50M,
9 GROUP 2 'C:\SPDATA\SP\REDO02.LOG' SIZE 50M,
10 GROUP 3 'C:\SPDATA\SP\REDO03.LOG' SIZE 50M
11 -- STANDBY LOGFILE
12 DATAFILE
13 'C:\SPDATA\SP\SYSTEM01.DBF',
14 'C:\SPDATA\SP\UNDOTBS01.DBF',
15 'C:\SPDATA\SP\SYSAUX01.DBF',
16 'C:\SPDATA\SP\USERS01.DBF',
17 'C:\SPDATA\SP\EXAMPLE01.DBF',
18 'C:\SPDATA\SP\TT.DBF'
19 CHARACTER SET ZHS16GBK
20 ;
控制文件已创建。
SQL>
SQL> alter database open resetlogs;
数据库已更改。
SQL> select name from v$database;
NAME
---------
SP
可以看到此时的数据库名改为了最新的SP
下面看下控制文件、日志文件和数据文件的scn信息
SQL> select file#,checkpoint_change# from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 6084324
2 6084324
3 6084324
4 6084324
5 6084324
6 6084324
已选择6行。
SQL> select file#,checkpoint_change# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 6084324
2 6084324
3 6084324
4 6084324
5 6084324
6 6084324
已选择6行。
SQL>
SQL> select group#,sequence#,status from v$log;
GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 0 UNUSED
2 1 CURRENT
3 0 UNUSED
SQL>
验证t表中的数据
SQL>
SQL> select * from scott.t;
ID
----------
6
7
8
9
10
11
12
已选择7行。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28373936/viewspace-1722262/
,如需转载,请注明出处,否则将追究法律责任。