现场故障小结——非当前日志组损坏情况

现场故障小结——非当前日志组损坏情况

 

【环境】AIX(5300-08)、oracle10g(10.2.0.1.0-64bit)

【情况一】非当前日志组成员被误删除

方法一:使用clear将损坏日志组内容清除

----数据库宕机

----告警日志报错:无法找到日志组

----启库到nomount状态

----清理日志组

SQL>alter database clear logfile group5;

Database altered.

----启库到open状态

SQL>alter database open;

方法二:删除损坏的日志组,新建日志组

----删除日志组

SQL>alter database drop logfile group 5;

SQL >alter database open;

SQL >alter system switch logfile;

----新建日志组

SQL >alter database add logfile group 5‘/home/oracle/redo5.log‘ size 50m;

----重启日志组

SQL >startup force;

【情况二】非当前日志组成员被dd命令损坏

----数据库宕机

----告警日志报错:日志头部损坏

Fri May 23 11:26:57 2014

Errors in file/u01/app/oracle/admin/prod/bdump/prod_lgwr_557084.trc:

ORA-00316: log 5 of thread 1, type 0 inheader is not log file

ORA-00312: online log 5 thread 1:‘/home/oracle/bak/redo05.log‘

ARC1: STARTING ARCH PROCESSES

----启库到nomount状态

----清理日志组

SQL>alter database clear logfile group5;

Database altered.

----查看数据库状态

SQL>select status from v$instance;

STATUS

------------MOUNTED

----启库到open状态,报错

SQL>alter database open;

alter database open

*

ERROR at line 1:

ORA-00327: log 5 of thread 1, physical sizeless than needed

ORA-00312: online log 5 thread 1:‘/home/oracle/bak/redo05.log‘

----重启数据库

SQL>startup force;

ORACLE instance started.

【后续优化】

将日志组进行多元化,由于该现场的维护人员刚刚经培训后接触业务,没有对日志组做多元化,一旦一个日志文件损坏即意味着日志组损坏了,在多元化之后,若出现某一日志组成员文件被损坏时,处理方法就变的简单很多了,直接关库转储没被损坏的日志组成员即可,而且避免了数据的丢失。

现场故障小结——非当前日志组损坏情况

时间: 2024-12-28 18:27:36

现场故障小结——非当前日志组损坏情况的相关文章

rac 11g_生产库日志组损坏处理

原创作品,出自 "深蓝的blog" 博客,转载时请务必注明出处,否则有权追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/46863813 环境: 操作系统:CentOS 6.4 64bit 中间件:WAS 7 数据库:Oracle 11G RAC 11.2.0.3 问题: 生成库was无法连接数据库,报出数据库无法归档错误. 解决思路: 解决oracle无法归档问题. 操作记录: SQL> s

rac_生产库日志组损坏处理

原创作品,出自 "深蓝的blog" 博客,转载时请务必注明出处,否则有权追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/46863813 环境: 操作系统:CentOS 6.4 64bit 中间件:WAS 7 数据库:Oracle 11G RAC 11.2.0.3 问题: 生成库was无法连接数据库,报出数据库无法归档错误. 解决思路: 解决oracle无法归档问题. 操作记录: SQL> s

【练习--日志恢复】---非当前日志组所有成员丢失

1.查询当前的日志组及状态: 10:24:22 SYS@ORA11GR2>select group#,member from v$logfile; GROUP# MEMBER ---------- -------------------------------------------------- 3 /u01/app/oracle/oradata/ORA11GR2/redo03.log 2 /u01/app/oracle/oradata/ORA11GR2/redo02.log 1 /u01/a

现场故障 案例:控制文件损坏

本文出自 "深蓝的blog" 博客,若转载,请务必保留此出处:http://blog.csdn.net/huangyanlong 1.手工切归档时出错: 2.查看告警信息: 3.转储/disk2下的控制文件: 4.启库,切归档: 5.手工执行0级全备. 时间 目的 操作 09:50 正常巡检,开启告警日志, 检查数据库时间.状态 #tail -f /u01/app/oracle/admin/metro/bdump/alert_metro.log SQL> SELECT sysda

Oracle在线调整redo日志组数及组成员

Oracle在线调整redo日志组数及组成员 一.调整redo日志组大小 操作原因: redo日志一般设置让日志转换时间为10-20分钟,转换太频繁会影响性能.通常情况下每小时不要超过6次!如果AWR(Automated Workload Repository 自动负载信息库) report中log file switch checkpoint incomplete) 比较大,说明redo log之间的切换过于频繁.可以通过增加redo log size来降低切换的频率.但如果redo log

Oracle重做日志组状态及切换解析

Oracle重做日志(redo log)是用来记录操作条目,用于数据库数据恢复.为了提高效率,oracle通常建议设置三组redo log. 一.概述 oracle重做日志组通常有四种状态,即unused,inactive,active,current. unused通常指从未被使用的日志组,即新添加的日志组. current状态为LGWR进程正把redo log buffer的日志写进日志组中. active为刚刚完成日志切换后的状态,此时该日志组中提交的事务引起的数据改变还没有完全从DB b

记录SQL Server2008日志文件损坏的恢复过程

记录SQL Server2008日志文件损坏的恢复过程: 环境:系统Windows Server2003 数据库SQL Server2008 故障原因:通过mstsc链接同一服务器时,用户界面不一致.决定重启服务器,未正确关闭应用程序的情况下(程序在访问数据库),导致数据库日志文件损坏,自然也就无法访问mdf文件!(都是微软自家的产品,重启服务器为什么不能检查数据库的状态,将数据库设置在安全状态后在重启呢??所以,要养成良好的习惯.关闭现有数据库链接,再重启服务器) 故障表现:无法访问数据文件,

【练习---日志恢复】正常关库删除一组当前日志组

1.查询当前日志组及状态: 10:45:14 SYS@ORA11GR2>select group#,member from v$logfile; GROUP# MEMBER ---------- -------------------------------------------------- 3 /u01/app/oracle/oradata/ORA11GR2/redo03.log 2 /u01/app/oracle/oradata/ORA11GR2/redo02.log 1 /u01/ap

Oracle 10g 添加、删除日志组

做日常巡检的时候发现alert日志中有这个错误Thread 1 cannot allocate new log, sequence 319708Checkpoint not complete 这个实际上是个比较常见的错误.通常来说是因为在日志被写满时会切换日志组,这个时候会触发一次checkpoint,DBWR会把内存中的脏块往数据文件中写,只要没写结束就不会释放这个日志组.如果归档模式被开启的话,还会伴随着ARCH写归档的过程.如果redo log产生的过快,当CPK或归档还没完成,LGWR已