rman恢复案例——丢失全部控制文件的恢复

1.1. 丢失全部控制文件的恢复

1.1.1. 模拟控制文件丢失

RMAN> shutdown abort;

Oracle 例程已关闭

RMAN> host;

Microsoft Windows XP [ 版本 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.

C:>del D:\oracle92\test1\CONTROL*.CTL

C:>dir D:\oracle92\test1\CONTROL*.CTL

驱动器 D 中的卷没有标签。

卷的序列号是 644D-03D9

D:\oracle92\test1 的目录

找不到文件

C:>exit

主机命令完成

RMAN>


1.1.2. 设置 ORACLE_SID

RMAN> exit;

恢复管理器完成。

C:>

C:>set ORACLE_SID=TEST1

C:>ECHO ORACLE_SID

ORACLE_SID

C:>


1.1.3. 登陆 RMAN

C:>rman

恢复管理器 : 版本 9.2.0 .1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

RMAN> connect target lunar/lunar@test1

已连接到目标数据库 ( 未启动 )

RMAN> connect catalog rman/rman@rman

连接到恢复目录数据库

RMAN>


1.1.4. 在 RMAN 中设置 DBID

使 RMAN 知道需要查找哪一个数据库的 spfile

(必须在数据关闭的情况下设置 DBID )

RMAN> set DBID=910599446

正在执行命令 : SET DBID

RMAN>


1.1.5. 将数据库启动到 nomount 状态

RMAN> startup nomount;

已连接到目标数据库 ( 未启动 )

Oracle 例程已启动

系统全局区域总计 101784276 字节

Fixed Size 453332 字节

Variable Size 75497472 字节

Database Buffers 25165824 字节

Redo Buffers 667648 字节

RMAN>


1.1.6. 恢复控制文件

1.1.6.1. 使用恢复目录恢复

如果使用了恢复目录,可以简单的执行 restore controlfile;

** RMAN> restore controlfile; **

启动 restore 于 07-10 月 -04

分配的通道 : ORA_DISK_1

通道 ORA_DISK_1: sid=13 devtype=DISK

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

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

输出文件名 =D:\ORACLE92\TEST1\CONTROL01.CTL

通道 ORA_DISK_1: 已恢复备份段 1

段 handle=D:\RMANTEST\C-910599446-20041007-00 tag=null params=NULL

通道 ORA_DISK_1: 恢复完成

正在复制控制文件

输出文件名 =D:\ORACLE92\TEST1\CONTROL01.CTL

输出文件名 =D:\ORACLE92\TEST1\CONTROL02.CTL

输出文件名 =D:\ORACLE92\TEST1\CONTROL03.CTL

完成 restore 于 07-10 月 -04

RMAN>




1.1.6.2. 不使用恢复目录恢复(使用自动备份的控制文件恢复)

** 如果没有使用恢复目录,可以从指定的控制文件自动备份的路径恢复控制文件 **

** RMAN> run{ **

** 2> set controlfile autobackup format for device type disk to **

** 3> 'D:\RMANTEST%F'; **

** 4> restore controlfile from autobackup; **

** 5> } **

正在执行命令 : SET CONTROLFILE AUTOBACKUP FORMAT

启动 restore 于 07-10 月 -04

分配的通道 : ORA_DISK_1

通道 ORA_DISK_1: sid=13 devtype=DISK

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

通道 ORA_DISK_1: 已找到的自动备份 : D:\RMANTEST\c-910599446-20041007-00

通道 ORA_DISK_1: 从自动备份复原控制文件已完成

正在复制控制文件

输出文件名 =D:\ORACLE92\TEST1\CONTROL01.CTL

输出文件名 =D:\ORACLE92\TEST1\CONTROL02.CTL

输出文件名 =D:\ORACLE92\TEST1\CONTROL03.CTL

完成 restore 于 07-10 月 -04

RMAN> host;

Microsoft Windows XP [ 版本 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.

C:>dir D:\oracle92\test1\CONTROL*.CTL

驱动器 D 中的卷没有标签。

卷的序列号是 644D-03D9

D:\oracle92\test1 的目录

2004-10-07 15:18 1,630,208 CONTROL01.CTL

2004-10-07 15:18 1,630,208 CONTROL02.CTL

2004-10-07 15:18 1,630,208 CONTROL03.CTL

3 个文件 4,890,624 字节

0 个目录 10,527,322,112 可用字节

C:>exit

主机命令完成

RMAN>


1.1.6.3. 析取控制文件

1.1.6.3.1. 从恢复目录中析取控制文件

在数据库打开的时候,可以析取控制文件,如下面的例子是从恢复目录中析取控制文件,并保存到 d:\test_ctl.ora 。

RMAN> restore controlfile to 'd:\test_ctl.ora';

启动 restore 于 07-10 月 -04

使用通道 ORA_DISK_1

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

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

输出文件名 =D:\TEST_CTL.ORA

通道 ORA_DISK_1: 已恢复备份段 1

段 handle=D:\RMANTEST\C-910599446-20041007-00 tag=null params=NULL

通道 ORA_DISK_1: 恢复完成

完成 restore 于 07-10 月 -04

RMAN>


1.1.6.3.2. 从自动备份的控制文件中析取控制文件

下面的例子是从自动备份的控制文件中,析取控制文件到的的 d:\

RMAN> run{

2> set controlfile autobackup format for device type disk to

3> 'D:\RMANTEST%F';

4> restore controlfile to 'd:\test_ctl.bak' from autobackup;

5> }

正在执行命令 : SET CONTROLFILE AUTOBACKUP FORMAT

启动 restore 于 07-10 月 -04

使用通道 ORA_DISK_1

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

通道 ORA_DISK_1: 已找到的自动备份 : D:\RMANTEST\c-910599446-20041007-00

通道 ORA_DISK_1: 从自动备份复原控制文件已完成

完成 restore 于 07-10 月 -04

RMAN>


1.1.7. Mount 数据库

RMAN> alter database mount;

数据库已加载

RMAN>


1.1.8. 恢复数据库

RMAN> recover database;

启动 recover 于 07-10 月 -04

使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 16 已作为文件 D:\ORACLE92\TEST1\REDO03.LOG 存在于磁盘上

存档日志文件名 =D:\ORACLE92\TEST1\REDO03.LOG 线程 =1 序列 =16

完成介质的恢复

完成 recover 于 07-10 月 -04

RMAN>


1.1.9. Open resetlogs 数据库

RMAN> alter database open resetlogs;

<P class=MsoNormal style="

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus