RECOVER DATABASE
功能描述
回放数据库的全部日志或回放日志到指定时间点,恢复数据库的数据。
注意事项
- RECOVER DATABASE(不包括 RECOVER DATABASE UNTIL CANCEL)必须在成功执行RESTORE DATABASE恢复数据库文件后执行。如果RECOVER DATABASE未执行成功,则后续启动数据库至OPEN状态会失败。
- RECOVER DATABASE UNTIL CANCEL,仅在数据库因日志损坏无法启动时使用,需要在mount状态执行,执行后必须使用ALTER DATABASE RESTLOGS或ALTER DATABASE IGNORE LOGS启动数据库。
语法格式
RECOVER DATABASE [ UNTIL [TIME 'time_string' | CANCEL] ]
参数说明
- UNTIL TIME
恢复到time_string时间点。
- time_string
设置回放数据库日志至某个时间点。
格式为“YYYY-MM-DD HH:MM:SS”。时间精度可指定到秒级别。
- UNTIL CANCEL
恢复到最后一个可用的日志点。主要用于数据库因日志损坏导致无法启动时,忽略损坏日志,强行启动数据库。此操作会丢失一些数据,也可能破坏数据一致性,因此仅在数据库日志损坏并无法启动时才可以使用此命令。
示例
- 完全恢复数据库(回放全部日志)。
--open状态下全量备份到磁盘。 BACKUP DATABASE FULL FORMAT '?/full0824.bak';
--清空data目录($GSDB_DATA/data)下的数据文件后,在nomount状态下恢复数据库的数据文件。 RESTORE DATABASE FROM '?/full0824.bak';
--完全恢复数据库(回放全部日志)。 RECOVER DATABASE;
- 将数据库恢复至指定时间点(回放日志至指定时间点)。
--OPEN状态下全量备份到磁盘。 BACKUP DATABASE FULL FORMAT '?/fullbackup01.bak';
--清空data目录($GSDB_DATA/data)下的数据文件后,在nomount状态下恢复数据库的数据文件。 RESTORE DATABASE FROM '?/fullbackup01.bak';
--将数据库恢复至指定时间点(回放日志至指定时间点)。 RECOVER DATABASE UNTIL TIME '2018-06-29 15:28:54';
- 恢复数据库直到最后一个可用的日志点,忽略后面损坏的日志,在 mount 状态下执行。
说明:
- 若数据库可以恢复到CONSISTENT POINT,则可以保证数据一致性,ALTER DATABASE OPEN RESTLOGS可成功执行;
- 否则,数据库已经不能保证数据一致性了,此时只能ALTER DATABASE OPEN IGNORE LOGS强行启动。
RECOVER DATABASE UNTIL CANCEL; ALTER DATABASE OPEN RESTLOGS;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论