ITPub博客

首页 > 数据库 > Oracle > 042-17 RMAN备份与恢复1

042-17 RMAN备份与恢复1

原创 Oracle 作者:zuiai510416 时间:2014-03-26 21:12:00 0 删除 编辑
--必须在Archivelog归档模式下
C:\>RMAN
RMAN> connect target sys/oracle@testdb  --连接到目标数据库(需要备份的数据库)
RMAN> backup database;                  --
/*
启动 backup 于 07-2月 -14
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=133 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSTEM01.DBF
输入数据文件 fno=00002 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\UNDOTBS01.DBF
输入数据文件 fno=00003 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSAUX01.DBF
输入数据文件 fno=00004 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\USERS01.DBF
输入数据文件 fno=00005 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\A.ORA
输入数据文件 fno=00006 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\A1.ORA
输入数据文件 fno=00007 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\UNDOTBS02.DBF
通道 ORA_DISK_1: 正在启动段 1 于 07-2月 -14
通道 ORA_DISK_1: 已完成段 1 于 07-2月 -14
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07\O1_MF_NNNDF_TAG20140
207T143250_9H8ZJMC7_.BKP 标记=TAG20140207T143250 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:36
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 07-2月 -14
通道 ORA_DISK_1: 已完成段 1 于 07-2月 -14
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07\O1_MF_NCSNF_TAG20140
207T143250_9H8ZKR2X_.BKP 标记=TAG20140207T143250 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:07
完成 backup 于 07-2月 -14
*/
保存到C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07
--*********************
手动指定通道及备份内容
--*********************
RMAN> run{
2> allocate channel c1 device type disk;       --指定通道c1的存储类型是磁盘
3> allocate channel c2 device type disk;       --指定通道c2(多核CPU使用多通道才能提高效率)
4> backup as compressed backupset database;    --以压缩的备份集存在,备份时间增加,但是节省空间
5> }
/*
释放的通道: ORA_DISK_1
分配的通道: c1
通道 c1: sid=133 devtype=DISK


分配的通道: c2
通道 c2: sid=141 devtype=DISK


启动 backup 于 07-2月 -14
通道 c1: 启动压缩的全部数据文件备份集
通道 c1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSTEM01.DBF
输入数据文件 fno=00004 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\USERS01.DBF
输入数据文件 fno=00007 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\UNDOTBS02.DBF
通道 c1: 正在启动段 1 于 07-2月 -14
通道 c2: 启动压缩的全部数据文件备份集
通道 c2: 正在指定备份集中的数据文件
输入数据文件 fno=00002 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\UNDOTBS01.DBF
输入数据文件 fno=00003 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSAUX01.DBF
输入数据文件 fno=00005 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\A.ORA
输入数据文件 fno=00006 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\A1.ORA
通道 c2: 正在启动段 1 于 07-2月 -14
通道 c1: 已完成段 1 于 07-2月 -14
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07\O1_MF_NNNDF_TAG20140
207T144753_9H90DSOH_.BKP 标记=TAG20140207T144753 注释=NONE
通道 c1: 备份集已完成, 经过时间:00:00:16
通道 c1: 启动压缩的全部数据文件备份集
通道 c1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
通道 c1: 正在启动段 1 于 07-2月 -14
通道 c2: 已完成段 1 于 07-2月 -14
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07\O1_MF_NNNDF_TAG20140
207T144753_9H90DVC7_.BKP 标记=TAG20140207T144753 注释=NONE
通道 c2: 备份集已完成, 经过时间:00:00:17
通道 c2: 启动压缩的全部数据文件备份集
通道 c2: 正在指定备份集中的数据文件
通道 c1: 已完成段 1 于 07-2月 -14
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07\O1_MF_NCNNF_TAG20140
207T144753_9H90FB6T_.BKP 标记=TAG20140207T144753 注释=NONE
通道 c1: 备份集已完成, 经过时间:00:00:02
在备份集中包含当前的 SPFILE
通道 c2: 正在启动段 1 于 07-2月 -14
通道 c2: 已完成段 1 于 07-2月 -14
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07\O1_MF_NNSNF_TAG20140
207T144753_9H90FCD6_.BKP 标记=TAG20140207T144753 注释=NONE
通道 c2: 备份集已完成, 经过时间:00:00:02
完成 backup 于 07-2月 -14
释放的通道: c1
释放的通道: c2
*/
RMAN> list backup;




备份集列表            --默认一个通道产生一个备份集
===================


BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
1       Full    547.87M    DISK        00:00:31     07-2月 -14
1       Full    547.87M    DISK        00:00:31     07-2月 -14
        BP 关键字: 1   状态: AVAILABLE  已压缩: NO  标记: TAG20140207T143250                           --备份集1有一个备份片,一个备份集可以对应多个备份片
段名:C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07\O1_MF_NNNDF_TAG20140207T143250_9H8ZJMC7_.BKP
  备份集 1 中的数据文件列表                                                                            --包含的数据文件
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  1       Full 614505     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSTEM01.DBF
  2       Full 614505     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\UNDOTBS01.DBF
  3       Full 614505     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSAUX01.DBF
  4       Full 614505     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\USERS01.DBF
  5       Full 614505     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\A.ORA
  6       Full 614505     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\A1.ORA
  7       Full 614505     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\UNDOTBS02.DBF


BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
2       Full    6.80M      DISK        00:00:02     07-2月 -14
        BP 关键字: 2   状态: AVAILABLE  已压缩: NO  标记: TAG20140207T143250                           --TAG标记时间,同一批次的tag是相同的
段名:C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07\O1_MF_NCSNF_TAG20140207T143250_9H8ZKR2X_.BKP
  包括的控制文件: Ckp SCN: 614519       Ckp 时间: 07-2月 -14                                           --包含的控制文件
  包含的 SPFILE: 修改时间: 07-2月 -14                                                                  --包含的SPFILE
--....省略


--*****************
RMAN的恢复
--*****************
Select * From V$LOG;  --GROUP 1
Select * From System.T
Insert Into System.T Values(1,'A',Sysdate);
Commit;
Alter System Switch Logfile;  --切换日志
Select * From V$LOG;  --GROUP 2
Insert Into System.T Values(2,'B',Sysdate);
Commit;
Alter System Switch Logfile;  --切换日志
Select * From V$LOG;  --GROUP 3
Insert Into System.T Values(3,'C',Sysdate);
Commit;
Alter System Switch Logfile;  --切换日志
Select * From V$LOG;  --GROUP 1
Insert Into System.T Values(4,'D',Sysdate);
Commit;
Alter System Switch Logfile;  --切换日志
Select * From V$LOG;  --GROUP 2 CURRENT  1,3 ACTIVE
Alter System Checkpoint;      --切换检查点,强制让数据库模块中的内容写入系统模块
Select * From V$LOG;  --GROUP 2 CURRENT  1,3 INACTIVE
Insert Into System.T Values(5,'E',Sysdate);
Commit;
Shutdown Immediate   --没有提交日志,直接关闭数据库
删除REDO和CONTROL以外的表空间,模拟数据文件损坏
C:\>rman
RMAN> connect target /
已连接到目标数据库: TESTDB (DBID=2614920292, 未打开)


RMAN> shutdown immediate
使用目标数据库控制文件替代恢复目录
数据库已卸载
Oracle 实例已关闭


RMAN> startup mount
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
系统全局区域总计     272629760 字节
Fixed Size                     1248476 字节
Variable Size                 92275492 字节
Database Buffers             171966464 字节
Redo Buffers                   7139328 字节
RMAN> alter database open;
ORA-01157: 无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSTEM01.DBF'


RMAN> List Backup;   --显示RMAN备份的列表
RMAN> List Backup Of Database;   --显示RMAN备份的数据文件的列表
RMAN> List Backup Of Controlfile;   --显示RMAN备份的控制文件的列表
RMAN> List Backup Of spfile;   --显示RMAN备份的spfile的列表
RMAN> restore preview database;   --预览进行恢复时,使用的是哪个备份集
/*                                --使用备份集3,4  并且要用到归档日志9-12
启动 restore 于 07-2月 -14
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK




备份集列表
===================


BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
3       Full    44.70M     DISK        00:00:13     07-2月 -14
        BP 关键字: 3   状态: AVAILABLE  已压缩: YES  标记: TAG20140207T144753
段名:C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07\O1_MF_NNNDF_TAG20140207T144753_9H90DSOH_.BKP
  备份集 3 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  1       Full 616925     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSTEM01.DBF
  4       Full 616925     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\USERS01.DBF
  7       Full 616925     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\UNDOTBS02.DBF


BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
4       Full    38.45M     DISK        00:00:15     07-2月 -14
        BP 关键字: 4   状态: AVAILABLE  已压缩: YES  标记: TAG20140207T144753
段名:C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07\O1_MF_NNNDF_TAG20140207T144753_9H90DVC7_.BKP
  备份集 4 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  2       Full 616926     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\UNDOTBS01.DBF
  3       Full 616926     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSAUX01.DBF
  5       Full 616926     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\A.ORA
  6       Full 616926     07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\A1.ORA
使用通道 ORA_DISK_1




已存档的日志副本列表
关键字     Thrd Seq     S 短时间     名称
------- ---- ------- - ---------- ----
9       1    31      A 24-1月 -14 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2014_02_07\O1_MF_1_31_9H9544M1_.ARC
10      1    32      A 07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2014_02_07\O1_MF_1_32_9H955R6T_.ARC
11      1    33      A 07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2014_02_07\O1_MF_1_33_9H956VPG_.ARC
12      1    34      A 07-2月 -14 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2014_02_07\O1_MF_1_34_9H9584LK_.ARC
介质恢复启动 SCN 是 616925
恢复范围必须超出 SCN 616926 才能清除数据文件模糊性
完成 restore 于 07-2月 -14
*/


RMAN> restore database;   --开始用oracle指定的备份集恢复
RMAN> restore Database From tag TAG20140207T143250;   --手动指定备份集,指定tag就可以,这里指定的是备份集1,2的tag
/*启动 restore 于 07-2月 -14
使用通道 ORA_DISK_1


通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSTEM01.DBF
正将数据文件00002恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\UNDOTBS01.DBF
正将数据文件00003恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSAUX01.DBF
正将数据文件00004恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\USERS01.DBF
正将数据文件00005恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\A.ORA
正将数据文件00006恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\A1.ORA
正将数据文件00007恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\UNDOTBS02.DBF
通道 ORA_DISK_1: 正在读取备份段 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07\O1_MF_NNNDF_TAG20140207T143250_9H8ZJMC7_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\BACKUPSET\2014_02_07\O1_MF_NNNDF_TAG20140207T143250_9H8ZJMC7_.BKP 标记 = TAG20140207T143250
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:26
完成 restore 于 07-2月 -14
*/


RMAN> alter database open;   --此处相当于将备份的文件刚解压拷贝回去,并将归档中的数据恢复,即SCN号还不一致
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSTEM01.DBF'
SQL> select file#,checkpoint_change# from v$datafile;


     FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1             629174
         2             629174
         3             629174
         4             629174
         5             629174
         6             629174
         7             629174


已选择7行。


SQL> select file#,checkpoint_change# from v$datafile_header;


     FILE# CHECKPOINT_CHANGE#
---------- ------------------
         1             614505
         2             614505
         3             614505
         4             614505
         5             614505
         6             614505
         7             614505
RMAN> recover database;  --此处在RMAN和SQLPLUS中都可以执行
/*
启动 recover 于 07-2月 -14
使用通道 ORA_DISK_1
正在开始介质的恢复


存档日志线程 1 序列 31 已作为文件 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2014_02_07\O1_MF_1_31_9H9544M1_.ARC 存在于磁盘上
存档日志线程 1 序列 32 已作为文件 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2014_02_07\O1_MF_1_32_9H955R6T_.ARC 存在于磁盘上
存档日志线程 1 序列 33 已作为文件 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2014_02_07\O1_MF_1_33_9H956VPG_.ARC 存在于磁盘上
存档日志线程 1 序列 34 已作为文件 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2014_02_07\O1_MF_1_34_9H9584LK_.ARC 存在于磁盘上
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2014_02_07\O1_MF_1_31_9H9544M1_.ARC 线程 =1 序列 =31
存档日志文件名 =C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2014_02_07\O1_MF_1_32_9H955R6T_.ARC 线程 =1 序列 =32
介质恢复完成, 用时: 00:00:06
完成 recover 于 07-2月 -14
*/
RMAN> alter database open;
/*数据库已打开*/
Select * From System.t    --id=1到5的5条数据都在




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15810196/viewspace-1130247/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-07-19

  • 博文量
    53
  • 访问量
    133739