Oracle企业级数据恢复指导手册--多年实践工作经验总结(推荐)

数据库紧急恢复作为灾难恢复及数据安全管理中的重要一环,虽然经过合理的前期规划、设计,日常检查与监控的预防,服务器软硬件的常规检查等措施,正常情况下不会遇到需要紧急恢复的情况,但有备无患,这里整理罗列常见的数据库灾难恢复场景及具体恢复步骤、说明如下,作为Oracle数据库恢复指导。对数据库的操作必须抱有敬畏之心,小心谨慎,避免不必要的人为灾难。

预览截图

应用介绍

部分恢复手册内容展示:

一、前言

数据库紧急恢复作为灾难恢复及数据安全管理中的重要一环,虽然经过合理的前期规划、设计,日常检查与监控的预防,服务器软硬件的常规检查等措施,正常情况下不会遇到需要紧急恢复的情况,但有备无患,这里整理罗列常见的数据库灾难恢复场景及具体恢复步骤、说明如下,作为Oracle数据库恢复指导。对数据库的操作必须抱有敬畏之心,小心谨慎,避免不必要的人为灾难。

二、重做日志组损坏恢复

(一) 丢失重做日志组中的一个成员(成员数>1)

  1. 查看日志成员的状态,此时丢失文件成员的状态被标记为INVALID,找到这个invaild的成员。
SELECT GROUP#, STATUS, MEMBER FROM V$LOGFILE WHERE STATUS='INVALID'
  1. 通过下面命令删除受损的日志成员,路径为上面member字段值
Sql>alter database drop logfile member ‘/u01/app/oracle/oradata/test/redo01.log’;
  1. 执行下面命令增加日志组成员,group 1为第1步结果中显示的GROUP#
Sql>alter database add logfile member ‘/u01/app/oracle/oradata/test/redo01.log’
to group 1;
  1. 使用下面查询来查看连接日志的状态。
Select group#,status,member from v$logfile order by
group#;

日志文件成员的状态会是NULL。

(二) 丢失重做日志组中的所有成员

当发生丢失重做日志组中所有成员时,这种情况视问题组的具体情况而定解决方案,这里引入Oracle官方介绍附在下面,英文比较简单,不做翻译。

Recovering After the Loss of an Online Redo Log Group If the Group
Is… Then…
And You Should… nactive It is not needed for crash recovery Clear the archived or unarchived group. Active It is needed for
crash recovery Attempt to issue a checkpoint and clear the log; if
impossible, then you must either use Flashback Database or restore a
backup and perform incomplete recovery up to the most recent
available redo log.
Current It is the redo log that the database is currently writing to Attempt to clear the log; if impossible, then you must
either use Flashback Database or restore a backup and perform
incomplete recovery up to the most recent available redo log.

  1. 判断有问题的GROUP是active还是inactive
  SELECT GROUP#, STATUS, MEMBER FROM V$LOGFILE;

通过上述SQL查看有问题的重做日志组成员所属组。

 SELECT GROUP#, MEMBERS, STATUS, ARCHIVED FROM V$LOG;

返回结果查看问题GROUP,如果为inactive,即为丢失非当前日志组所有成员,如果为ACTIVE,则为丢失当前日志组所有成员

2) 丢失非当前日志组所有成员

可以在数据库OPEN或mount状态下执行clear an inactive redo log group。Clear命令会重建组成员(不管成员被删除还是损坏)。这种情况不会造成数据的丢失。具体操作步骤取决于损坏的GROUP是否已归档。

Ø To clear an inactive, online redo log group that has been archived

假设数据库已经关闭,OPEN状态下仅需执行第2步;

 Startup mount
 ALTER DATABASE CLEAR LOGFILE GROUP 2;
 --这里假设查到有问题的
 GROUPGROUP 2.      
 Alter database open;
Ø To clear an inactive, online redo log group that has not been archived

清空重用一个未归档的重做日志,这个操作会使此重做日志中the last change时间之前的所有备份无效,日志点重新计算。需重新进行备份,以还原到操作点之后的时间。

假设数据库已经关闭,假如数据库是OPEN状态,仅需执行2和4

Startup mount
ALTER DATABASE CLEAR LOGFILE unarchived GROUP 2;
--这里假设查到有问题的GROUP 为GROUP 2
Alter database open;

尽快进行数据库完整备份

更多不同场景的数据库恢复方法请下载完整版文档!

点赞(3) 打赏

立即下载

温馨提示! 你需要支付 ¥2.00 元后才可以下载

Comment list 共有 0 条评论

暂无评论
点击可QQ在线咨询 请致电手机:13926108245
天凯科技-数据库运维服务

天凯科技微信客服

微信扫一扫咨询

立即
投稿
广州天凯科技微信公众号

广州天凯科技微信公众号

微信扫一扫加关注

发表
评论
返回
顶部