当rman备份信息存放控制文件中,恢复丢失了的控制文件问题:
Q:
我正在做一些rman恢复测试,不过我对恢复中得到的一些反馈感到惊讶。
我的数据库rman备份信息是存在在控制文件中的。RMAN设置是对控制文件进行autobackup。
我从备份中将控制文件恢复出来了,不过当我尝试打开数据库时,我收到了以下报错:
ORA-01113: file 1 needs media recovery followed by ORA-01110: data file 1
因此,我对整个数据库进行了restore和recover操作。
但是因为控制文件是启动的自动备份,我难道不能仅仅简单地在那个时点进行打开数据库操作么?
A:
- 当你从备份中恢复了一份控制文件,控制文件中的SCN是过时的。
所恢复的控制文件来自过去的备份(它的状态应该是BACKUP)。
因此你需要进行部分恢复来保证所有数据文件,重做日志和控制文件都恢复到一致的SCN上。
在你没有将所有文件进行同步的前提下,你是无法打开数据库的。 - 进行恢复后,一旦所有数据文件都保持一致后,那么open resetlogs会将所有三类文件写入相同的SCN号(数据文件,redo日志文件,控制文件)。如果是做完全恢复,那么就不需要resetlogs, 不过需要一份当前最新的控制文件(非备份)和当前在线重做日志(未被备份)。
为了检查你的数据库一致性,你可以使用以下语句进行查看:
set echo on;
set fe