ITPub博客

首页 > 数据库 > Oracle > rman备份丢失控制文件恢复

rman备份丢失控制文件恢复

原创 Oracle 作者:sky850623 时间:2015-11-01 14:28:36 0 删除 编辑
1.备份控制文件
RMAN> backup database format 'f:\backup_dir\%U';


启动 backup 于 25-10月-15
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=142 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00004 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
输入数据文件 fno=00001 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00018 name=F:\ORADATA\CLOUD_CMS01.DBF
输入数据文件 fno=00003 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00002 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00017 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\PERFSTAT01.DBF
输入数据文件 fno=00006 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TBS_TEST01.DBF
输入数据文件 fno=00012 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TBS_TEST02.DBF
输入数据文件 fno=00014 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EAMCS01.DBF
输入数据文件 fno=00013 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TESTING.DBF
输入数据文件 fno=00007 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST_UNIFORM01.DBF
输入数据文件 fno=00008 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF
通道 ORA_DISK_1: 正在启动段 1 于 25-10月-15
通道 ORA_DISK_1: 已完成段 1 于 25-10月-15
段句柄=F:\BACKUP_DIR\33QKK6V9_1_1 标记=TAG20151025T190057 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:45
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 25-10月-15
通道 ORA_DISK_1: 已完成段 1 于 25-10月-15
段句柄=F:\BACKUP_DIR\34QKK72J_1_1 标记=TAG20151025T190057 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 25-10月-15


RMAN>


SQL> select * from v$log;  --查看当前日志文件


    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------
         1          1       3556    5242880          1 YES INACTIVE               5669691 25-10月-15
         2          1       3555    5242880          1 YES INACTIVE               5661163 15-10月-99
         3          1       3557    5242880          1 NO  CURRENT                5670416 25-10月-15
2.创建测试表
SQL> create table t (id  int,name varchar(2)) tablespace users;


表已创建。


SQL> insert into t values(1,'a');


已创建 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系统已更改。


SQL> insert into t values(2,'b');


已创建 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系统已更改。


SQL> insert into t values(3,'b');


已创建 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系统已更改。


SQL> insert into t values(4,'d');


已创建 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系统已更改。


SQL> insert into t values(5,'e');


已创建 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系统已更改。


SQL> insert into t values(6,'f');


已创建 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系统已更改。


SQL> insert into t values(7,'g');


已创建 1 行。


SQL> commit;


提交完成。


SQL> alter system switch logfile;


系统已更改。


SQL> insert into t values(8,'h');


已创建 1 行。


SQL> commit;


提交完成。


SQL> select * from v$logfile;


    GROUP# STATUS  TYPE    MEMBER                                                       IS_
---------- ------- ------- ------------------------------------------------------------ ---
         1         ONLINE  E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG             NO
         2         ONLINE  E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG             NO
         3         ONLINE  E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG             NO


SQL> select * from v$log;


    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
         1          1       3562    5242880          1 YES ACTIVE                 5671463 25-10月-15
         2          1       3564    5242880          1 NO  CURRENT                5671480 25-10月-15
         3          1       3563    5242880          1 YES ACTIVE                 5671473 25-10月-15
3.备份归档
RMAN> backup archivelog all;


启动 backup 于 25-10月-15
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =809 记录 ID=1064 时间戳=879783737
输入存档日志线程 =1 序列 =810 记录 ID=1065 时间戳=879783745
输入存档日志线程 =1 序列 =811 记录 ID=1066 时间戳=879783770
输入存档日志线程 =1 序列 =812 记录 ID=1067 时间戳=879783894
输入存档日志线程 =1 序列 =3244 记录 ID=1068 时间戳=887482381
输入存档日志线程 =1 序列 =3556 记录 ID=1069 时间戳=894049103
输入存档日志线程 =1 序列 =3557 记录 ID=1070 时间戳=894049726
输入存档日志线程 =1 序列 =3558 记录 ID=1071 时间戳=894049741
输入存档日志线程 =1 序列 =3559 记录 ID=1072 时间戳=894049765
输入存档日志线程 =1 序列 =3560 记录 ID=1073 时间戳=894049784
输入存档日志线程 =1 序列 =3561 记录 ID=1074 时间戳=894049796
输入存档日志线程 =1 序列 =3562 记录 ID=1075 时间戳=894049810
输入存档日志线程 =1 序列 =3563 记录 ID=1076 时间戳=894049828
输入存档日志线程 =1 序列 =3564 记录 ID=1077 时间戳=894050311
通道 ORA_DISK_1: 正在启动段 1 于 25-10月-15
通道 ORA_DISK_1: 已完成段 1 于 25-10月-15
段句柄=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2015_10_25\O1
_MF_ANNNN_TAG20151025T191831_C2SGN94W_.BKP 标记=TAG20151025T191831 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 25-10月-15


4.删除控制文件
5.启动数据库
SQL> startup
ORACLE 例程已经启动。


Total System Global Area  167772160 bytes
Fixed Size                  1247900 bytes
Variable Size              79693156 bytes
Database Buffers           83886080 bytes
Redo Buffers                2945024 bytes
ORA-00205: ?????????, ??????, ???????


查看日志文件
ALTER DATABASE   MOUNT
Sun Oct 25 19:24:30 2015
ORA-00202: control file: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。


Sun Oct 25 19:24:33 2015
ORA-205 signalled during: ALTER DATABASE   MOUNT...


找不到控制文件,数据库只能起在nomount状态
SQL> select status from v$instance;


STATUS
------------------------
STARTED


6.恢复
C:\>rman target /


恢复管理器: Release 10.2.0.1.0 - Production on 星期日 10月 25 19:29:57 2015


Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到目标数据库: orcl (未装载)


RMAN> restore controlfile from autobackup;  --之前没有开启自动备份,所以找不到控制文件自动备份


启动 restore 于 25-10月-15
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK


恢复区域目标: E:\oracle\product\10.2.0\flash_recovery_area
用于搜索的数据库名 (或数据库的唯一名称): TEST
通道 ORA_DISK_1: 在恢复区域中未找到自动备份
由于未设置 DBID 而未尝试在恢复区域之外搜索自动备份


之前有备份了一个控制文件,只能指定备份控制文件具体位置来恢复.
RMAN> restore controlfile from 'F:\backup_dir\34QKK72J_1_1';  --不是自动备份恢复不需要设置dbid


启动 restore 于 25-10月-15
使用通道 ORA_DISK_1


通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:03
输出文件名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
输出文件名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL
输出文件名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL
完成 restore 于 25-10月-15


控件文件还原到参数文件指定的位置


7.启动数据库到mount
SQL> alter database mount;


数据库已更改。
C:\>rman target /


恢复管理器: Release 10.2.0.1.0 - Production on 星期日 10月 25 19:40:40 2015


Copyright (c) 1982, 2005, Oracle.  All rights reserved.


已连接到目标数据库: ORCL (DBID=1380721776, 未打开)
RMAN> list backup;   


归档文件没有包含在这之中,因为归档是在备份控制文件之后备份。


8.recover
RMAN> recover database;


启动 recover 于 25-10月-15
启动 implicit crosscheck backup 于 25-10月-15
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=158 devtype=DISK
已交叉检验的 2 对象
完成 implicit crosscheck backup 于 25-10月-15


启动 implicit crosscheck copy 于 25-10月-15
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 25-10月-15


搜索恢复区域中的所有文件
正在编制文件目录...
目录编制完毕


已列入目录的文件的列表
=======================
文件名: E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2015_10_25\O
1_MF_ANNNN_TAG20151025T191831_C2SGN94W_.BKP


使用通道 ORA_DISK_1


正在开始介质的恢复


存档日志线程 1 序列 3563 已作为文件 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03
.LOG 存在于磁盘上
存档日志线程 1 序列 3564 已作为文件 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02
.LOG 存在于磁盘上
存档日志线程 1 序列 3565 已作为文件 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01
.LOG 存在于磁盘上
通道 ORA_DISK_1: 正在启动到默认目标的存档日志恢复
通道 ORA_DISK_1: 正在恢复存档日志
存档日志线程 =1 序列=3557
通道 ORA_DISK_1: 正在恢复存档日志
存档日志线程 =1 序列=3558
通道 ORA_DISK_1: 正在恢复存档日志
存档日志线程 =1 序列=3559
通道 ORA_DISK_1: 正在恢复存档日志
存档日志线程 =1 序列=3560
通道 ORA_DISK_1: 正在恢复存档日志
存档日志线程 =1 序列=3561
通道 ORA_DISK_1: 正在恢复存档日志
存档日志线程 =1 序列=3562
通道 ORA_DISK_1: 正在读取备份段 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TES
T\BACKUPSET\2015_10_25\O1_MF_ANNNN_TAG20151025T191831_C2SGN94W_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2015_10_25\
O1_MF_ANNNN_TAG20151025T191831_C2SGN94W_.BKP 标记 = TAG20151025T191831
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3557_C2SJ4C3F_.ARC 线程 =1 序列 =3557
通道 default: 正在删除存档日志
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3557_C2SJ4C3F_.ARC 记录 ID=1074 时间戳 =894051851
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3558_C2SJ4CC7_.ARC 线程 =1 序列 =3558
通道 default: 正在删除存档日志
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3558_C2SJ4CC7_.ARC 记录 ID=1078 时间戳 =894051851
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3559_C2SJ4C5V_.ARC 线程 =1 序列 =3559
通道 default: 正在删除存档日志
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3559_C2SJ4C5V_.ARC 记录 ID=1075 时间戳 =894051851
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3560_C2SJ4C7B_.ARC 线程 =1 序列 =3560
通道 default: 正在删除存档日志
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3560_C2SJ4C7B_.ARC 记录 ID=1076 时间戳 =894051851
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3561_C2SJ4CB8_.ARC 线程 =1 序列 =3561
通道 default: 正在删除存档日志
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3561_C2SJ4CB8_.ARC 记录 ID=1077 时间戳 =894051851
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3562_C2SJ4C4W_.ARC 线程 =1 序列 =3562
通道 default: 正在删除存档日志
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
5_10_25\O1_MF_1_3562_C2SJ4C4W_.ARC 记录 ID=1073 时间戳 =894051851
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG 线程 =1 序列 =3
563
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG 线程 =1 序列 =3
564
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG 线程 =1 序列 =3
565
介质恢复完成, 用时: 00:00:01
完成 recover 于 25-10月-15
9.打开数据库
RMAN> alter database open resetlogs;


数据库已打开


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

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

注册时间:2013-05-30

  • 博文量
    154
  • 访问量
    467906