物理恢复详细介绍¶
brcmd支持的恢复模式主要有三种,完全恢复、备份点恢复和时间点恢复,另外brcmd还有一种完全拷贝的镜像恢复方式。
1、完全恢复:通过应用相关备份、归档日志和在线日志将数据库恢复到故障点(数据库最后一次正常或非正常退出)的一致性状态。
full_last:在完全恢复时指定此恢复模式。除了数据文件之外还会重做在线日志和归档日志将数据库恢复到一致性状态。
full_last_ignore_error:忽略错误的完全恢复,当发生控制文件、归档日志文件、在线日志丢失或损坏等情况下用来尽量恢复数据的选择。
警告
参数值full_last与full_last_ignore_error只能二选一。
2、备份点恢复:将数据库的控制文件和数据文件恢复到指定备份点的一致性状态。
backup_point_last:在备份点恢复时指定此恢复模式。除了恢复控制文件和数据文件之外还会重做日志将数据库恢复到一致性状态。
3、时间点恢复:通过应用相关备份、归档日志和在线日志将数据库恢复到过去某个时间点的一致性状态。
time_point_last:恢复到-T参数指定的时间点,在时间点恢复时指定此恢复模式,此恢复模式会忽略掉控制文件丢失的情况。 除了恢复控制文件和数据文件之外还会重做在线日志和归档日志将数据库恢复到一致性状态。
在恢复时选择何种恢复方式可以参考以下规则:
如果指定的备份对应的数据库为非归档模式,则恢复时只能选择备份点恢复;如果数据库为归档模式的数据库,则三种恢复方式都可以使用。
当数据库进行过备份点恢复或时间点恢复之后,未对数据库进行操作之前不能进行完全恢复和时间点恢复,只能用备份点恢复或删除控制文件后,时间点恢复或忽略错误的完全恢复。
警告
如果恢复前不能确定指定时间点是否准确,需要DBA手动先保存现场(备份系统配置文件、数据库控制文件、数据文件、归档日志、在线日志等)后再进行恢复,当恢复完成后发现恢复到的不是理想时间点可以还原现场后再指定其他时间点进行恢复。
当选择完全恢复时,用户需要提供(指定时间点前)完好的控制文件、归档日志文件和在线日志文件,否则会恢复失败。如果必须的控制文件丢失,可以选中完全恢复下的忽略错误选项,系统将尽可能的将数据库恢复到最近的一致性状态。
当选择时间点恢复时用户需要提供指定时间点前完好的归档日志文件和在线日志文件,否则会恢复失败。
4、镜像恢复:通过-f指定的恢复路径恢复控制文件,恢复控制文件后读取控制文件信息,将其余数据库文件恢复到原来备份库中的文件对应位置,恢复过程中全部使用整个文件拷贝方式。
应用举例:
文件方式:
完全恢复:-O restore -d OSRDB -u SYSDBA -p szoscar55 -P 2003 -t full_last -k file -f "f:\download\full" -b 8192 -e "f:\download\brcmd_log.txt"
完全恢复(忽略错误):-O restore -d OSRDB -u SYSDBA -p szoscar55 -P 2003 -t full_last_ignore_error -k file -f "f:\download\full" -b 8192 -e "f:\download\brcmd_log.txt"
备份点恢复:-O restore -d OSRDB -u SYSDBA -p szoscar55 -P 2003 -t backup_point_last -k file -f "f:\download\full" -b 8192 -e "f:\download\brcmd_log.txt"
时间点恢复:-O restore -d OSRDB -u SYSDBA -p szoscar55 -P 2003 -t time_point_last -k file -f "f:\download\full" -b 8192 -e "f:\download\brcmd_log.txt" -T 20091018_101010
镜像恢复:-O restore -d OSRDB -t site_image -f "f:\download\full" -b 8192 -e "f:\download\brcmd_log.txt"
管道方式:
创建管道mypipe
开启管道
完全恢复:-O restore -d OSRDB -u SYSDBA -p szoscar55 -P 2003 -t full_last -k pipe -f "\\.\pipe\mypipe" -b 8192 -e "f:\download\brcmd_log.txt"
完全恢复(忽略错误):-O restore -d OSRDB -u SYSDBA -p szoscar55 -P 2003 -t full_last_ignore_error -k pipe -f "\\.\pipe\mypipe" -b 8192 -e "f:\download\brcmd_log.txt"
备份点恢复:-O restore -d OSRDB -u SYSDBA -p szoscar55 -P 2003 -t backup_point_last -k pipe -f "\\.\pipe\mypipe" -b 8192 -e "f:\download\brcmd_log.txt"
时间点恢复:-O restore -d OSRDB -u SYSDBA -p szoscar55 -P 2003 -t time_point_last -k pipe -f "\\.\pipe\mypipe" -b 8192 -e "f:\download\brcmd_log.txt" -T 20091018_101010