/* 2008/06/06
*环境:Windows XP +Oracle10.2.0.1
*循序渐进oracle——数据库管理、优化与备份恢复
*循序渐进oracle第7章:备份与恢复之RMAN镜像拷贝完全恢复
*/
7 RMAN的备份与恢复
1、RMAN镜像拷贝功能
RMAN> run{
2> allocate channel ch1 type disk;
3> copy
4> datafile 1 to 'e:\backup\system01.dbf',
5> current controlfile to 'e:\backup\control01.ctl';
6> }
释放的通道: ORA_DISK_1
分配的通道: ch1
通道 ch1: sid=135 devtype=DISK
启动 backup 于 06-6月 -08
通道 ch1: 启动数据文件副本
输入数据文件 fno=00001 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DB
F
输出文件名 = E:\BACKUP\SYSTEM01.DBF 标记 = TAG20080606T072703 recid = 25 时间戳
= 656666869
通道 ch1: 数据文件复制完毕, 经过时间: 00:00:55
通道 ch1: 启动数据文件副本
复制当前控制文件
输出文件名 = E:\BACKUP\CONTROL01.CTL 标记 = TAG20080606T072703 recid = 26 时间戳
= 656666880
通道 ch1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 06-6月 -08
启动 Control File and SPFILE Autobackup 于 06-6月 -08
段 handle=G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\AUTOBACKUP\2008_0
6_06\O1_MF_S_656666880_44JXN1D6_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 06-6月 -08
释放的通道: ch1
2、Oracle10g开始,允许使用单条命令"backup as copy"进行数据库拷贝
RMAN> run{
2> backup as copy tag "20080605_copy" database;
3> }
启动 backup 于 06-6月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=135 devtype=DISK
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00001 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DB
F
输出文件名 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\DATAFILE\O1_MF
_SYSTEM_44JXWG2G_.DBF 标记 = 20080605_COPY recid = 27 时间戳 = 656667195
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:56
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00003 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01.DB
F
输出文件名 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\DATAFILE\O1_MF
_SYSAUX_44JXY57B_.DBF 标记 = 20080605_COPY recid = 28 时间戳 = 656667224
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:25
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00002 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01.D
BF
输出文件名 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\DATAFILE\O1_MF
_UNDOTBS1_44JXYYF5_.DBF 标记 = 20080605_COPY recid = 29 时间戳 = 656667233
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:07
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00005 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF
输出文件名 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\DATAFILE\O1_MF
_RISE_44JXZ5L2_.DBF 标记 = 20080605_COPY recid = 30 时间戳 = 656667238
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:03
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00004 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.DBF
输出文件名 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\DATAFILE\O1_MF
_USERS_44JXZ8TV_.DBF 标记 = 20080605_COPY recid = 31 时间戳 = 656667241
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00006 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\MZL.DBF
输出文件名 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\DATAFILE\O1_MF
_MZL_44JXZB0Z_.DBF 标记 = 20080605_COPY recid = 32 时间戳 = 656667242
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:02
完成 backup 于 06-6月 -08
启动 Control File and SPFILE Autobackup 于 06-6月 -08
段 handle=G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\AUTOBACKUP\2008_0
6_06\O1_MF_S_656667243_44JXZD0H_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 06-6月 -08
RMAN>
3、查看拷贝的文件
RMAN> list copy;
说明与恢复目录中的任何存档日志均不匹配
数据文件副本列表
关键字 文件 S 完成时间 Ckp SCN Ckp 时间 名称
------- ---- - ---------- ---------- ---------- ----
27 1 A 06-6月 -08 944359 06-6月 -08 G:\ORACLE\PRODUCT\10.2.0\FLASH_R
ECOVERY_AREA\RISENET\DATAFILE\O1_MF_SYSTEM_44JXWG2G_.DBF
25 1 A 06-6月 -08 944125 06-6月 -08 E:\BACKUP\SYSTEM01.DBF
29 2 A 06-6月 -08 944397 06-6月 -08 G:\ORACLE\PRODUCT\10.2.0\FLASH_R
ECOVERY_AREA\RISENET\DATAFILE\O1_MF_UNDOTBS1_44JXYYF5_.DBF
28 3 A 06-6月 -08 944387 06-6月 -08 G:\ORACLE\PRODUCT\10.2.0\FLASH_R
ECOVERY_AREA\RISENET\DATAFILE\O1_MF_SYSAUX_44JXY57B_.DBF
31 4 A 06-6月 -08 944409 06-6月 -08 G:\ORACLE\PRODUCT\10.2.0\FLASH_R
ECOVERY_AREA\RISENET\DATAFILE\O1_MF_USERS_44JXZ8TV_.DBF
30 5 A 06-6月 -08 944401 06-6月 -08 G:\ORACLE\PRODUCT\10.2.0\FLASH_R
ECOVERY_AREA\RISENET\DATAFILE\O1_MF_RISE_44JXZ5L2_.DBF
32 6 A 06-6月 -08 944410 06-6月 -08 G:\ORACLE\PRODUCT\10.2.0\FLASH_R
ECOVERY_AREA\RISENET\DATAFILE\O1_MF_MZL_44JXZB0Z_.DBF
控制文件副本列表
关键字 S 完成时间 Ckp SCN Ckp 时间 名称
------- - ---------- ---------- ---------- ----
26 A 06-6月 -08 944151 06-6月 -08 E:\BACKUP\CONTROL01.CTL
RMAN>
4、RMAN基于镜像copy的表空间恢复
关闭数据库,模拟硬件故障,删除数据文件rise.dbf文件
SQL> shutdown immediate
删除$oracle_home\oradata\risenet\rise.dbf文件
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248476 bytes
Variable Size 100664100 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 5: 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF'
SQL> select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- --------------- ---------- --------------
5 ONLINE ONLINE FILE NOT FOUND 0
C:\>rman target/
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 6月 6 07:44:11 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库: RISENET (DBID=2274326636, 未打开)
RMAN> run{
2> set newname for datafile 5 to 'G:\oracle\product\10.2.0\oradata\risenet\rise.
dbf';
3> restore datafile 5;
4> switch datafile all;
5> recover datafile 5;
6> }
正在执行命令: SET NEWNAME
使用目标数据库控制文件替代恢复目录
启动 restore 于 06-6月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
通道 ORA_DISK_1: 正在恢复数据文件00005
输入数据文件副本 recid=30 stamp=656667238 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_RISE_44JXZ5L2_.DBF
数据文件 00005 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF
通道 ORA_DISK_1: 已复制数据文件 00005 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF recid=33 stamp=6566
67952
完成 restore 于 06-6月 -08
启动 recover 于 06-6月 -08
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:02
完成 recover 于 06-6月 -08
RMAN>
RMAN> alter database open;
数据库已打开
5、如果数据文件全部丢失,用rman进行完全恢复
1 插入数据
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
会话已更改。
SQL> select * from test;
ID TIME
---------- -------------------
3 2017-01-27 14:44:54
1 2008-05-28 15:33:31
SQL> insert into test values(5,sysdate);
已创建 1 行。
SQL> select * from test;
ID TIME
---------- -------------------
5 2008-06-06 08:00:34
3 2017-01-27 14:44:54
1 2008-05-28 15:33:31
SQL> commit;
提交完成。
2 关闭,删除全部数据文件,然后重起
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248476 bytes
Variable Size 104858404 bytes
Database Buffers 159383552 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 1: 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF'
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
risenet MOUNTED
SQL> select * from v$recover_file;
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME
---------- ------- ------- --------------- ---------- --------------
1 ONLINE ONLINE FILE NOT FOUND 0
2 ONLINE ONLINE FILE NOT FOUND 0
3 ONLINE ONLINE FILE NOT FOUND 0
5 ONLINE ONLINE FILE NOT FOUND 0
6 ONLINE ONLINE FILE NOT FOUND 0
3 恢复数据文件
C:\>rman target/
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 6月 6 08:05:31 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库: RISENET (DBID=2274326636, 未打开)
RMAN> restore database;
启动 restore 于 06-6月 -08
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
通道 ORA_DISK_1: 正在恢复数据文件00001
输入数据文件副本 recid=27 stamp=656667195 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_SYSTEM_44JXWG2G_.DBF
数据文件 00001 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF
通道 ORA_DISK_1: 已复制数据文件 00001 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF recid=34 stamp=
656669190
通道 ORA_DISK_1: 正在恢复数据文件00002
输入数据文件副本 recid=29 stamp=656667233 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_UNDOTBS1_44JXYYF5_.DBF
数据文件 00002 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01.DB
F
通道 ORA_DISK_1: 已复制数据文件 00002 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01.DBF recid=35 stamp
=656669203
通道 ORA_DISK_1: 正在恢复数据文件00003
输入数据文件副本 recid=28 stamp=656667224 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_SYSAUX_44JXY57B_.DBF
数据文件 00003 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01.DBF
通道 ORA_DISK_1: 已复制数据文件 00003 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01.DBF recid=36 stamp=
656669222
通道 ORA_DISK_1: 正在恢复数据文件00004
输入数据文件副本 recid=31 stamp=656667241 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_USERS_44JXZ8TV_.DBF
数据文件 00004 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.DBF
通道 ORA_DISK_1: 已复制数据文件 00004 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.DBF recid=37 stamp=6
56669228
通道 ORA_DISK_1: 正在恢复数据文件00005
输入数据文件副本 recid=30 stamp=656667238 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_RISE_44JXZ5L2_.DBF
数据文件 00005 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF
通道 ORA_DISK_1: 已复制数据文件 00005 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF recid=38 stamp=6566
69230
通道 ORA_DISK_1: 正在恢复数据文件00006
输入数据文件副本 recid=32 stamp=656667242 文件名=G:\ORACLE\PRODUCT\10.2.0\FLASH_
RECOVERY_AREA\RISENET\DATAFILE\O1_MF_MZL_44JXZB0Z_.DBF
数据文件 00006 的恢复目标: G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\MZL.DBF
通道 ORA_DISK_1: 已复制数据文件 00006 的数据文件副本
输出文件名=G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\MZL.DBF recid=39 stamp=65666
9230
完成 restore 于 06-6月 -08
RMAN> recover database;
启动 recover 于 06-6月 -08
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:02
完成 recover 于 06-6月 -08
RMAN> alter database open;
数据库已打开
SQL> select * from test;
ID TIME
---------- -------------------
5 2008-06-06 08:00:34
3 2017-01-27 14:44:54
1 2008-05-28 15:33:31
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12778571/viewspace-332657/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12778571/viewspace-332657/