失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > oracle 11g 从rman全备中恢复控制文件 拥有RMAN全备(缺少后增文件) 丢失全部数

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

时间:2020-02-20 10:57:09

相关推荐

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

Copyright (c) 1982, , 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_0310_12 标记=TAG0310T145320

注释=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 标记=TAG0310T145324 注释=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_0310_14 标记=TAG0310T145412

注释=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-0310-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

Copyright (c) 1982, , 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: 寻找以下日期的自动备份: 0310

通道 ORA_DISK_1: 已找到的自动备份: c-2615173674-0310-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-0310-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_0310_14

通道 ORA_DISK_1: 已恢复备份段 1

段句柄 = E:\ORACLE\RMAN_BACKUP\ARCHIVE_ORASJH_0310_14 标记 = TAG0310T145

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 标记 = TAG0310T145324

通道 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/ 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/ 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/ 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/ 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/ 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/ 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/ 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;

数据库已更改。

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

如果觉得《oracle 11g 从rman全备中恢复控制文件 拥有RMAN全备(缺少后增文件) 丢失全部数》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。