- recover database using backup controlfile
- recover database until cancel
- recover database until cancel using backup controlfile
- recover database using backup controlfile until cancel
一直也每太搞懂这四句话的区别,网上的博客也都是转载几乎一摸一样。总结试验了一下、
首先明确这四句话需要在sqlplus使用。
在rman中只有recover database until time/scn
可以配合oracle的备份来使用。
如图:明确一个流程
- 备份数据文件
backup database
备份数据文件时产生日志 - 备份日志文件
backup archivelog
——标记为时间点①
备份日志文件产生日志 - 备份控制文件
backup controlfile
——标记为时间点②
之后产生日志————标记为时间点③
在以上的备份逻辑中,控制文件中会记录时间点②之前的所有日志信息,而备份了的数据为时间点①之前的所有数据(包含数据文件和第一个日志块)
此时利用控制文件恢复,可以保证数据库在时间点①是一致性的,然后open database resetlogs
就可以打开数据库,而实际情况下,有可能第二个日志块产生的日志较多,会造成控制文件的scn和数据文件的scn差距太大。导致即便数据文件是一致的,但是还是拉不起数据库。
rman的恢复逻辑是
restore controlfile
restore database
recover database
recover database的时候rman会回滚数据库日志,当rman发现控制文件2和当前有的日志能滚完到数据库的一致性差距太大。他滚都不会滚,直接报错。
所以这个时候想要拉起数据库,就要利用到上面的sql语句
总结如下:
但这只是一种场景,语句的使用并不局限于这种场景。