【DBA笔记③】通过RMAN进行控制文件全部丢失后的恢复及故障记录


前言

上次尝试了部分丢失控制文件后通过另外已存在的备份文件进行恢复的方法,但一旦两个控制文件全部损坏这种方法即无法使用。故本次尝试使用RMAN进行系统备份及恢复,同时记录遇到的一个问题。


一、使用RMAN备份

RMAN备份分为全量备份、增量备份;增量备份中的0级备份与全量备份类似,其可作为1级备份的基础。本次使用level 0级备份。

[oracle@******]$ rman target /
RMAN> backup as compressed backupset incremental level=0 format '/data/rmanback/data/df0_t%T_s%s_p%p' database include current controlfile;
RMAN> list backup;

*注:RMAN登录时有一个DBID记得记录下来,恢复控制文件时需要。

二、模拟控制文件丢失(选一个就好)

1. 改名

[root@******] mv /u01/app/oradata/ORCL/control01.ctl /u01/app/oradata/ORCL/control01_back.ctl

2. 更改路径

[root@******] mv /u01/app/oradata/ORCL/control01.ctl /u01/app/oradata/ORCL1/control01.ctl

三、开始恢复

1、重启数据库, 将数据库启动到nomount状态

SQL> startup nomount;

2、通过rman还原控制文件

[oracle@******]$ rman target /
RMAN> set DBID=********;
RMAN> restore controlfile from '/data/rmanback/data/df0_**_**_**';

如果不知道控制文件在哪一个备份集、哪一个切片内,如果文件不多可一个一个试)

3、将数据库启动到mount状态

SQL> alter database mount

4、还原、恢复和启动数据库

RMAN> restore database;
RMAN> recover database;
RMAN> sql 'alter database open resetlogs';

四、故障记录

第一步备份时,未检查list backup,故未发现进行的level 0级备份产生的文件未更新进catalog(即list backup里仍然是上次备份的数据文件但此时该文件已被删除),这就导致list backup of datafile 1; 显示的数据文件为已过期的上次备份的文件,进而在第三(4)步restore database时系统无法读取旧备份文件状态,报错ORA-19870、ORA-19505、ORA-27037、RMAN-00571、 RMAN-00569、RMAN-03002、ORA-01180、ORA-01110。

解决方法为

RMAN> catalog start with '/data/rmanback/data/';

(语句地址最后一定要以 / 结尾)在catalog中重新注册新的备份集。然后restore, recover即可正常运行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值