oracle 11g 从rman全备中恢复控制文件,拥有RMAN全备(缺少后增文件),丢失全部数据文件,控制文件的恢复...

1.做一个RMAN的全备

E:\oracle\rman_scripts>rman catalog target

恢复管理器: Release 10.2.0.1.0 - Production on 星期二 3月 10 14:52:50 2009

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

连接到目标数据库: ORASJH (DBID=2615173674)

连接到恢复目录数据库

RMAN> @full_back_db.sql

RMAN> # start backup database

2>

3> run {

4> allocate channel c1 type disk;

5> backup format 'E:\oracle\rman_backup\full%u_%s_%p' database

6> plus archivelog format 'E:\oracle\rman_backup\archive_%d_%T_%s' delete all in

put;

7> release channel c1;

8> }

分配的通道: c1

通道 c1: sid=143 devtype=DISK

启动 backup 于 10-3月 -09

当前日志已存档

通道 c1: 正在启动存档日志备份集

通道 c1: 正在指定备份集中的存档日志

输入存档日志线程 =1 序列 =235 记录 ID=13 时间戳=681062941

输入存档日志线程 =1 序列 =236 记录 ID=11 时间戳=681058773

输入存档日志线程 =1 序列 =237 记录 ID=12 时间戳=681062675

输入存档日志线程 =1 序列 =238 记录 ID=14 时间戳=681142722

输入存档日志线程 =1 序列 =239 记录 ID=15 时间戳=681144798

通道 c1: 正在启动段 1 于 10-3月 -09

通道 c1: 已完成段 1 于 10-3月 -09

段句柄=E:\ORACLE\RMAN_BACKUP\ARCHIVE_ORASJH_20090310_12 标记=TAG20090310T145320

注释=NONE

通道 c1: 备份集已完成, 经过时间:00:00:02

通道 c1: 正在删除存档日志

存档日志文件名 =E:\ORACLE\ORASJH\ARCHIVE\ARC00235_0679223338.001 记录 ID=13 时间

戳 =681062941

存档日志文件名 =E:\ORACLE\ORASJH\ARCHIVE\ARC00236_0679223338.001 记录 ID=11 时间

戳 =681058773

存档日志文件名 =E:\ORACLE\ORASJH\ARCHIVE\ARC00237_0679223338.001 记录 ID=12 时间

戳 =681062675

存档日志文件名 =E:\ORACLE\ORASJH\ARCHIVE\ARC00238_0679223338.001 记录 ID=14 时间

戳 =681142722

存档日志文件名 =E:\ORACLE\ORASJH\ARCHIVE\ARC00239_0679223338.001 记录 ID=15 时间

戳 =681144798

完成 backup 于 10-3月 -09

启动 backup 于 10-3月 -09

通道 c1: 启动全部数据文件备份集

通道 c1: 正在指定备份集中的数据文件

输入数据文件 fno=00001 name=E:\ORACLE\ORASJH\SYSTEM01.DBF

输入数据文件 fno=00002 name=E:\ORACLE\ORASJH\UNDOTBS01.DBF

输入数据文件 fno=00003 name=E:\ORACLE\ORASJH\SYSAUX01.DBF

输入数据文件 fno=00004 name=E:\ORACLE\ORASJH\USERS01.DBF

通道 c1: 正在启动段 1 于 10-3月 -09

通道 c1: 已完成段 1 于 10-3月 -09

段句柄=E:\ORACLE\RMAN_BACKUP\FULL0DK9ISF4_13_1 标记=TAG20090310T145324 注释=NONE

通道 c1: 备份集已完成, 经过时间:00:00:45

完成 backup 于 10-3月 -09

启动 backup 于 10-3月 -09

当前日志已存档

通道 c1: 正在启动存档日志备份集

通道 c1: 正在指定备份集中的存档日志

输入存档日志线程 =1 序列 =240 记录 ID=16 时间戳=681144850

通道 c1: 正在启动段 1 于 10-3月 -09

通道 c1: 已完成段 1 于 10-3月 -09

段句柄=E:\ORACLE\RMAN_BACKUP\ARCHIVE_ORASJH_20090310_14 标记=TAG20090310T145412

注释=NONE

通道 c1: 备份集已完成, 经过时间:00:00:02

通道 c1: 正在删除存档日志

存档日志文件名 =E:\ORACLE\ORASJH\ARCHIVE\ARC00240_0679223338.001 记录 ID=16 时间

戳 =681144850

完成 backup 于 10-3月 -09

启动 Control File and SPFILE Autobackup 于 10-3月 -09

段 handle=C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\C-2615173674-20090310-00 commen

t=NONE

完成 Control File and SPFILE Autobackup 于 10-3月 -09

释放的通道: c1

RMAN>

RMAN> # end

2> **文件结尾**

RMAN>

2.创建一个新的数据文件。

SQL> select name from v$datafile;

NAME

-----------------------------------------

E:\ORACLE\ORASJH\SYSTEM01.DBF

E:\ORACLE\ORASJH\UNDOTBS01.DBF

E:\ORACLE\ORASJH\SYSAUX01.DBF

E:\ORACLE\ORASJH\USERS01.DBF

SQL> create tablespace sjh datafile 'E:\ORACLE\ORASJH\sjh.dbf' size 2m;

表空间已创建。

SQL> create table test tablespace sjh as select * from dba_users;

表已创建。

SQL> select count(*) from dba_users;

COUNT(*)

----------

11

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系统已更改。

3.模拟所有控制文件,数据文件的丢失。

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

手工删除所有的控制文件,数据文件。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area  167772160 bytes

Fixed Size                  1247876 bytes

Variable Size              71304572 bytes

Database Buffers           88080384 bytes

Redo Buffers                7139328 bytes

ORA-00205: ?????????, ??????, ???????  --删除了控制文件,数据库无法mount。

4.恢复

4.1恢复控制文件

E:\oracle\rman_scripts>rman catalog target

恢复管理器: Release 10.2.0.1.0 - Production on 星期二 3月 10 15:32:46 2009

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

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

连接到恢复目录数据库

RMAN> restore controlfile to 'e:\contrl.bak' from autobackup;

启动 restore 于 10-3月 -09

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=156 devtype=DISK

通道 ORA_DISK_1: 寻找以下日期的自动备份: 20090310

通道 ORA_DISK_1: 已找到的自动备份: c-2615173674-20090310-01通道 ORA_DISK_1: 从自动备份复原控制文件已完成

完成 restore 于 10-3月 -09

--因为RMAN的自动备份控制文件的选项已经打开,所以在创建数据文件的时候,控制文件自动备份了,这个备份不是全备时候的控制文件备份。为了模拟特定控制文件(没记录数据文件的创建),我们指定从全备中的备份集中恢复控制文件。

RMAN>  restore controlfile to 'e:\contrl.bak' from 'C:\ORACLE\PRODUCT\10.2.0\DB_

1\DATABASE\C-2615173674-20090310-00';

启动 restore 于 10-3月 -09

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=156 devtype=DISK

通道 ORA_DISK_1: 正在复原控制文件

通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02

完成 restore 于 10-3月 -09

--将e:\contrl.bak copy到控制文件的所在目录并改名成:control1.ctl,control2.ctl,control3.ctl。

4.2恢复备份期间的归档日志

RMAN> restore archivelog sequence 240

2> ;

启动 restore 于 10-3月 -09

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在启动到默认目标的存档日志恢复

通道 ORA_DISK_1: 正在恢复存档日志

存档日志线程 =1 序列=240

通道 ORA_DISK_1: 正在读取备份段 E:\ORACLE\RMAN_BACKUP\ARCHIVE_ORASJH_20090310_14

通道 ORA_DISK_1: 已恢复备份段 1

段句柄 = E:\ORACLE\RMAN_BACKUP\ARCHIVE_ORASJH_20090310_14 标记 = TAG20090310T145

412

通道 ORA_DISK_1: 恢复完成, 用时: 00:00:01

完成 restore 于 10-3月 -09

SQL> alter database mount;    --因为恢复了控制文件,所以数据库能mount。

数据库已更改。

4.3还原数据文件

RMAN> restore database;

启动 restore 于 10-3月 -09

释放的通道: ORA_DISK_1

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=156 devtype=DISK

通道 ORA_DISK_1: 正在开始恢复数据文件备份集

通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件

正将数据文件00001恢复到E:\ORACLE\ORASJH\SYSTEM01.DBF

正将数据文件00002恢复到E:\ORACLE\ORASJH\UNDOTBS01.DBF

正将数据文件00003恢复到E:\ORACLE\ORASJH\SYSAUX01.DBF

正将数据文件00004恢复到E:\ORACLE\ORASJH\USERS01.DBF

通道 ORA_DISK_1: 正在读取备份段 E:\ORACLE\RMAN_BACKUP\FULL0DK9ISF4_13_1

通道 ORA_DISK_1: 已恢复备份段 1

段句柄 = E:\ORACLE\RMAN_BACKUP\FULL0DK9ISF4_13_1 标记 = TAG20090310T145324

通道 ORA_DISK_1: 恢复完成, 用时: 00:00:45

完成 restore 于 10-3月 -09

4.4用备份控制文件恢复数据库

SQL> recover database using backup controlfile until cancel;

ORA-00279: 更改 403337 (在 03/10/2009 14:53:24 生成) 对于线程 1 是必需的

ORA-00289: 建议: E:\ORACLE\ORASJH\ARCHIVE\ARC00240_0679223338.001

ORA-00280: 更改 403337 (用于线程 1) 在序列 #240 中

指定日志: {=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: 更改 403361 (在 03/10/2009 14:54:10 生成) 对于线程 1 是必需的

ORA-00289: 建议: E:\ORACLE\ORASJH\ARCHIVE\ARC00241_0679223338.001

ORA-00280: 更改 403361 (用于线程 1) 在序列 #241 中

ORA-00278: 此恢复不再需要日志文件

'E:\ORACLE\ORASJH\ARCHIVE\ARC00240_0679223338.001'

ORA-00283: 恢复会话因错误而取消

ORA-01244: 未命名的数据文件由介质恢复添加至控制文件

ORA-01110: 数据文件 5: 'E:\ORACLE\ORASJH\SJH.DBF'

ORA-01112: 未启动介质恢复

SQL> select name from v$datafile;

NAME

-----------------------------------------------------------

E:\ORACLE\ORASJH\SYSTEM01.DBF

E:\ORACLE\ORASJH\UNDOTBS01.DBF

E:\ORACLE\ORASJH\SYSAUX01.DBF

E:\ORACLE\ORASJH\USERS01.DBF

C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00005

--原来的控制文件中没有新加数据文件的记录,oracle自动生成一个缺省的文件名:UNNAMED00005

SQL> alter database create datafile 'C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA

MED00005' as 'E:\ORACLE\ORASJH\SJH.DBF';

数据库已更改。

--可以通过CREATE AS方式修改控制文件中记录。继续应用所有归档和日志文件可以完成恢复。

SQL> recover database using backup controlfile until cancel;

ORA-00279: 更改 403554 (在 03/10/2009 14:59:44 生成) 对于线程 1 是必需的

ORA-00289: 建议: E:\ORACLE\ORASJH\ARCHIVE\ARC00241_0679223338.001

ORA-00280: 更改 403554 (用于线程 1) 在序列 #241 中

指定日志: {=suggested | filename | AUTO | CANCEL}

ORA-00279: 更改 403840 (在 03/10/2009 15:01:54 生成) 对于线程 1 是必需的

ORA-00289: 建议: E:\ORACLE\ORASJH\ARCHIVE\ARC00242_0679223338.001

ORA-00280: 更改 403840 (用于线程 1) 在序列 #242 中

ORA-00278: 此恢复不再需要日志文件

'E:\ORACLE\ORASJH\ARCHIVE\ARC00241_0679223338.001'

指定日志: {=suggested | filename | AUTO | CANCEL}

ORA-00279: 更改 423851 (在 03/10/2009 15:18:57 生成) 对于线程 1 是必需的

ORA-00289: 建议: E:\ORACLE\ORASJH\ARCHIVE\ARC00243_0679223338.001

ORA-00280: 更改 423851 (用于线程 1) 在序列 #243 中

ORA-00278: 此恢复不再需要日志文件

'E:\ORACLE\ORASJH\ARCHIVE\ARC00242_0679223338.001'

指定日志: {=suggested | filename | AUTO | CANCEL}

E:\oracle\orasjh\REDO01.LOG

ORA-00310: 归档日志包含序列 241; 要求序列 243

ORA-00334: 归档日志: 'E:\ORACLE\ORASJH\REDO01.LOG'

SQL> recover database using backup controlfile until cancel;

ORA-00279: 更改 423851 (在 03/10/2009 15:18:57 生成) 对于线程 1 是必需的

ORA-00289: 建议: E:\ORACLE\ORASJH\ARCHIVE\ARC00243_0679223338.001

ORA-00280: 更改 423851 (用于线程 1) 在序列 #243 中

指定日志: {=suggested | filename | AUTO | CANCEL}

E:\ORACLE\ORASJH\REDO02.LOG

ORA-00310: 归档日志包含序列 242; 要求序列 243

ORA-00334: 归档日志: 'E:\ORACLE\ORASJH\REDO02.LOG'

SQL> recover database using backup controlfile until cancel;

ORA-00279: 更改 423851 (在 03/10/2009 15:18:57 生成) 对于线程 1 是必需的

ORA-00289: 建议: E:\ORACLE\ORASJH\ARCHIVE\ARC00243_0679223338.001

ORA-00280: 更改 423851 (用于线程 1) 在序列 #243 中

指定日志: {=suggested | filename | AUTO | CANCEL}

E:\ORACLE\ORASJH\REDO03.LOG

已应用的日志。

完成介质恢复。

SQL> alter database open resetlogs;

数据库已更改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值