ImageVerifierCode 换一换
格式:DOC , 页数:5 ,大小:82.39KB ,
资源ID:10784759      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-10784759.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Oracle Current Redo log损坏后恢复数据库.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

Oracle Current Redo log损坏后恢复数据库.doc

1、文档名称 文档密级2020-1-9 华为机密,未经许可不得扩散 第 1 页, 共 5 页Current Redo log 损坏后恢复数据库禤梓桥 00109548关键字: 10513 事件,_allow_resetlogs_corruption,_corrupted_rollback_segments,dba_rollback_segs,ORA-6002662,ORA-6002663 , ORA-6004136。适用场景:1. 当前 redo log 文件发生物理或逻辑损坏;且没有可用的 redo log 备份;2. 没有可用于恢复的备份;3. rman 恢复时间过长或备份太旧,不满足业务快速

2、恢复的要求。如何判定损坏日志状态为 CURRENT:1. 以 startup 启动后,检查 alert 日志,从”Started redo scan”日志信息开始如下类似的错误信息:Started redo scanORA-00313: 无法打开日志组 3 (用于线程 1) 的成员ORA-00312: 联机日志 3 线程 1: F:APPX00109548ORADATAORCLREDO03.LOGORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件。Aborting crash recovery due to error

3、313或者Started redo scanORA-368 signalled during: ALTER DATABASE OPEN.注意:如果alert只有ORA-368错误,没有报告具体的redo log文件时,需要先按照损坏redo log文件状态为非current的办法处理,当无法恢复数据库时,才按以下恢复步骤尝试恢复。2. 在 startup 启动报错后,此时数据库处于 MOUNT 状态,查看损坏的文件状态是否为 CURRENT:SQLselect member, l.status, l.group# from v$log l, v$logfile f where l.group#

4、=f.group#;MEMBER STATUS GROUP#文档名称 文档密级2020-1-9 华为机密,未经许可不得扩散 第 2 页, 共 5 页- - -F:APPX00109548ORADATAORCLREDO01.LOG INACTIVE 1F:APPX00109548ORADATAORCLREDO02.LOG INACTIVE 2F:APPX00109548ORADATAORCLREDO03.LOG CURRENT 3恢复步骤:确认损坏 redo log 文件为 current 时,执行以下操作:步骤 1:将 spfile 转存为 pfile.ora,并在 pfile.ora 文件中

5、添加_allow_resetlogs_corruption=true。1.1转存spfileSQLcreate pfile=d:pfile.ora from spfile;编辑d:pfile.ora文件,添加如下参数:*._allow_resetlogs_corruption=true1.2正常关闭数据库SQLshutdown immediate;步骤 2:以 pfile 文件启动实例并将数据库挂载SQLstartup pfile=d:pfile.ora mount;步骤 3:执行 recover database until cancel,并输入 cancelSQLrecover datab

6、ase until cancel;ORA-00279: 更改 1546960 (在 10/17/2012 09:26:37 生成) 对于线程 1 是必需的ORA-00289: 建议:F:APPX00109548PRODUCT11.1.0DB_1RDBMSARC00048_0796850999.001ORA-00280: 更改 1546960 (用于线程 1) 在序列 #48 中指定日志: =suggested | filename | AUTO | CANCELcancel alter database open resetlogs;注意:1. 此时可能打不开数据库,或者打开数据库后alert

7、日志有ORA-6002662、ORA-6002663、ORA-6004136、ORA-6004194、ORA-6004197等错误。ORA-6002662、ORA-6002663等错误通常是因为在实例崩溃时事务已经将数据块写入到数据文件中。ORA-6002023、ORA-6004136、ORA-6004194、ORA-6004197等错误是因为undo 表空间中的数据需要恢复。2. 如果SYSTEM表空间的数据损坏,将无法恢复数据库, 如果是业务用的数据文件, 考虑删除这些损坏的文件后,接着按以下操作执行。 步骤 5:在 pfile.ora 文件中增加如下参数并 MOUNT 数据库编辑d:pf

8、ile.ora文件,添加和修改如下参数:*.event=10513 trace name context forever,level 2undo_management=manual startup pfile=d:pfile.ora mount注意:startup restrict模式无法打开数据库。步骤 6:执行 recover database 操作,并打开数据库(recover database 验证数据库文件是否有问题,可不做)SQLrecover database;完成介质恢复。SQLalter database open; select segment_name, tablespa

9、ce_name, status from dba_rollback_segs;SEGMENT_NAME TABLESPACE_NAME STATUS - - - SYSTEM SYSTEM ONLINE _SYSSMU22_1350439519$ UNDOTBS1 OFFLINE _SYSSMU21_1350439519$ UNDOTBS1 OFFLINE _SYSSMU20_1350439519$ UNDOTBS1 NEEDS RECOVERY _SYSSMU19_1350439519$ UNDOTBS1 OFFLINE _SYSSMU18_1350439519$ UNDOTBS1 OFFL

10、INE _SYSSMU17_1350439519$ UNDOTBS1 OFFLINE _SYSSMU16_1350439519$ UNDOTBS1 OFFLINE _SYSSMU15_1350439519$ UNDOTBS1 OFFLINE _SYSSMU14_1350439519$ UNDOTBS1 OFFLINE _SYSSMU13_1350439519$ UNDOTBS1 OFFLINE _SYSSMU12_1350439519$ UNDOTBS1 OFFLINE 文档名称 文档密级2020-1-9 华为机密,未经许可不得扩散 第 4 页, 共 5 页注意:1. 当exp 命令在执行过程

11、中报 ORA-01555错误时,此时不要试着将UNDOTBS1空间扩大,这是因为实例崩溃时数据库中未提交事务占用了大量的回滚段,在打开数据库后undo表空间仍然有数据需要恢复,即使UNDOTBS1表空间增大,这些可用空间依然不能使用。2.UNDOTBS1表空间中存在NEEDS RECOVERY的回滚段需要记录到pfile中,并要重建该undo表空间。步骤 8:设置参数记录损坏的回滚段,重启后删除并重建 UNDOTBS1 表空间8.1 编辑d:pfile.ora 文件,添加如下参数:*._corrupted_rollback_segments=_SYSSMU20_1350439519$ #上述查

12、询中NEEDS RECOVERY状态的回滚段,如果有多个需要记录的回滚端,设置形式为:*._corrupted_rollback_segments=SEGMENT_NAME1, SEGMENT_NAME2,8.2 正常关闭数据库SQLshutdown immediate;8.3 重启数据库SQLstartup pfile=d:pfile.ora;8.4 删除UNDOTBS1表空间SQLdrop tablespace undotbs1 including contents and datafiles;8.5 重建UNDOTBS1表空间( 以下仅是样例)SQLcreate undo tablesp

13、ace undotbs1 datafile F:appx00109548oradataorclundotbs1.dbf size 8192m;步骤 9:关闭数据库,以原来的 spfile 参数文件正常启动数据库SQLshutdown immediate;SQLstartup;小结:1. 在步骤 4 打开数据库时,如果没有 ORA-6002662,ORA-6002663,ORA-6004136等错误,那么不需要执行步骤 56 的操作。这通常是事务中 DML 操作的数据块没有写到数据文件,而是在 buffer cache 中,因此不需要设置 10513 事件和_corrupted_rollback

14、_segments,这时按照步骤 9 操作,观察是否能正常打开、是否有相应的ORA-600 错误,如果没有即可正常使用。2. 在步骤 5 必须将 undo_management 修改为 manual,否则在 dba_rollback_segs 表中可能无法展现有问题的回滚段,从而在数据库正常运行中报 ORA-6002023和 ORA-6004136错误。文档名称 文档密级2020-1-9 华为机密,未经许可不得扩散 第 5 页, 共 5 页3. 当在恢复过程中发生 ORA-6002662、ORA-6002663错误,不论回滚段是否有损坏的情况,建议都重建undo 表空间,避免在业务正常运行时发

15、生 ORA-01555 错误。Redo log 损坏验证:1. 在正常的数据库中创建一张小数据表t_smalltable,模拟DML操作时,数据块完全在buffer cache的情况1.1建立t_smalltable表和索引SQLcreate table t_smalltable as select * from all_objects;SQLcreate index ix_smalltable_objectid on t_smalltable(object_id);1.2 模拟未提交事务SQLupdate t_smalltable set owner=lower(owner);1.3 在另一

16、个窗口, 以sys 用户登录将数据库强行关闭SQLconn / as sysdbaSQLshutdown abort;1.4将操作系统上的所有重做日志删除2. 在正常的数据库中创建一张大数据表t_bigtable,模拟DML操作时,有部分数据块写到磁盘的情况2.1建立t_bigtable 表SQLcreate table t_bigtable as select * from all_objects;SQLbeginfor i in 110 loopinsert into t_bigtable select * from t_bigtable;end loop;commit;end;/2.2 模拟未提交事务SQLupdate t_bigtable set owner=lower(owner);2.3 在另一个窗口, 以sys 用户登录将数据库强行关闭SQLconn / as sysdbaSQLshutdown abort;2.4将操作系统上的所有重做日志删除注意:将undotbs1表空间的总大小设置为100M左右,这时可以模拟在恢复过程中遇到的ORA-1555错误。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报