首页 > 开发 > 综合 > 正文

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

2024-07-21 02:07:03
字体:
来源:转载
供稿:网友
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/[email protected]

 

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

 

rman> connect catalog rman/[email protected]

 

连接到恢复目录数据库

 

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;

 

数据库已打开

在恢复目录中注册的数据库的新实体化

正在启动全部恢复目录的 resync

完成全部 resync

 

rman>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表