• 博客访问: 2859435
  • 博文数量: 335
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-30 13:07
个人简介

暂无介绍

文章分类

全部博文(335)

文章存档

2016年(1)

2012年(5)

2011年(38)

2010年(48)

2009年(70)

2008年(173)

分类: Linux操作系统

2008-06-06 08:10:36

/* 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

 


 

阅读(2207) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册