oracle redo日志文件损坏恢复
参考:How to Recover from Loss Of Online Redo Log And ORA-312 And ORA-313 (Doc ID 117481.1)
在线重做日志文件丢失后恢复的场景包括:
- 在线重做日志的配置:镜像或非镜像
- 介质故障的类型:临时或永久性
- 受故障影响的联机重做日志文件的状态类型:CURRENT,ACTIVE,UNARCHIVED或INACTIVE
- 在丢失archivelog文件之前,数据库是否正常关闭
1,丢失多member在线重做日志组成员后恢复
如果是多个组员联机重做日志,并且每个联机重做日志组中至少有一个成员不受介质故障的影响,则数据库将继续正常运行,但会将错误消息写入日志写入器跟踪文件 和数据库的alert_SID.log。
如果硬件问题是临时的,则修复问题。
如果硬件问题是永久性的,则删除损坏的成员并使用以下过程添加新成员。
要替换重做日志组的损坏成员:
在v$logfile中找到损坏成员的文件名。 如果文件不可访问,则状态为INVALID:
SQL> SELECT GROUP#, STATUS, MEMBER FROM V$LOGFILE WHERE STATUS='INVALID'; GROUP# STATUS MEMBER
------- ----------- ---------------------
0002 INVALID /oracle/oradata/trgt/redo02.log
删除损坏的日志组成员:
SQL> ALTER DATABASE DROP LOGFILE MEMBER '/oracle/oradata/trgt/redo02.log';
添加新的日志组成员:
SQL> ALTER DATABASE ADD LOGFILE MEMBER '/oracle/oradata/trgt/redo02b.log' TO GROUP 2;
##如果添加的组员已经存在
SQL> ALTER DATABASE ADD LOGFILE MEMBER '/oracle/oradata/trgt/redo02b.log' REUSE TO GROUP 2;
2,丢失inactive在线重做日志组
- 如果是硬件损坏,修复硬件,或者更改目录
- 日志损坏但是已经归档,可以clear掉
ALTER DATABASE CLEAR LOGFILE GROUP 2;
- 清除未归档的损坏日志
如果数据库已关闭,则启动新实例并装入数据库
startup mount
使用UNARCHIVED关键字清除日志。例如,要清除日志组2
ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2;
如果存在需要清除日志使其联机的脱机数据文件,则需要关键字UNRECOVERABLE DATAFILE。必须删除数据文件及其整个表空间,因为正在清除使其联机所需的重做,并且没有它的副本。
ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2 UNRECOVERABLE DATAFILE;
- 立即备份整个数据库,包括controlfile,以便您可以使用备份进行完全恢复,而无需依赖已清除的日志组
- 由于介质故障,ALTER DATABASE CLEAR LOGFILE语句可能会因I / O错误而失败,重新指向新的目录,或者修复介质故障
3,丢失在线redo
- 如果缺少的日志不是最新的,只需删除日志组(alter database drop logfile group N),只有两组的话,提前要加一组
- 如果丢失的日志是最新的,他们应该只执行虚假恢复,然后打开resetlogs
sql> connect / as sysdba
sql> startup mount
sql> recover database until cancel;
(cancel immediately)
sql> alter database open resetlogs;
注意:如果实例恢复所需的当前在线日志丢失,则必须通过最后一个可用的归档日志文件(PITR point-in-time recovery)基于时间点恢复和恢复数据库。
oracle redo日志文件损坏恢复的更多相关文章
- Oracle redo 日志损坏的几种情况下的恢复
Oracle redo 日志损坏的几种情况下的恢复 第一:损坏的redo为非正在使用的redo log 1.归档模式,不是当前正在日志损坏,数据库打开模式. 模拟损坏:SQL> select * ...
- Oracle备份恢复之断电导致控制文件和日志文件损坏修复
Oracle数据库遭遇断电遭遇ora-00214.ora-00314.ora-00312错误恢复案例一枚 1.数据库在17日21:19启动开始报错ora-214错误: Tue Jan 17 21:19 ...
- 【恢复】Redo日志文件丢失的恢复
第一章 Redo文件丢失的恢复 1.1 online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢 ...
- 记录SQL Server2008日志文件损坏的恢复过程
记录SQL Server2008日志文件损坏的恢复过程: 环境: 系 统:Windows Server2003 数据库:SQL Server2008 故障原因: 通过mstsc链接同一服务器时,用户界 ...
- 关于数据库一致改关闭下redo日志文件丢失的处理办法的总结
数据库一致性关闭下redo日志文件丢失的处理办法(归档和非归档都行) 1. inactive log 在一致性关闭后删除重启时可以在mount下(不丢失数据) alter database clea ...
- MySQL中的 redo 日志文件
MySQL中的 redo 日志文件 MySQL中有三种日志文件,redo log.bin log.undo log.redo log 是 存储引擎层(innodb)生成的日志,主要为了保证数据的可靠性 ...
- Oracle 监听器日志文件过大导致监听异常
Oracle 监听器日志文件过大导致监听异常 db版本:11.2.0.1 os版本:windows2008 现象: 应用异常,无法连接数据库.登陆数据库服务器,查看监听已经断掉.尝试重启监听,重启失败 ...
- 2. 更改InnoDB redo日志文件的数量或大小
2. 更改InnoDB redo日志文件的数量或大小 要更改InnoDB 重做日志文件的数量或大小,请执行以下步骤: 1)停止MySQL服务器,确保正常关闭且没有错误发生 2) 编辑my.cnf以更改 ...
- oracle删除日志文件
oracle删除日志文件 删除日志文件的语法例如以下: alter database drop logfile member logfile_name; 删除日志文件须要注意例如以下几点: 1.该日志 ...
随机推荐
- 用系统默认mail服务实现邮件发送
用系统默认mail服务实现邮件发送 1.操作步骤 第一步:设备服务器发送邮件要用的,邮箱地址,账号密码 编辑/etc/mail.rc vim /etc/mail.rc 在文件的结尾追加,账号信息配置 ...
- 一些最常见的SNMP的OID自动翻译成zabbix数字进行表示(华为9306)
转载自:https://blog.51cto.com/davidbj/1173954 随着Zabbix 2.0版本的发布,很多企业开始用zabbix来代替之前的Nagio.Cacti等其它监控软件.至 ...
- ORM版学员管理系统 2
学生信息管理 展示学生信息 URL部分 url(r'^student_list/', app01_views.student_list, name="student_list"), ...
- Zabbix常见问题
1.Q: agent日志中出现“active check configuration update from [127.0.0.1:10051] started to fail (cannot co ...
- 深度学习原理与框架-图像补全(原理与代码) 1.tf.nn.moments(求平均值和标准差) 2.tf.control_dependencies(先执行内部操作) 3.tf.cond(判别执行前或后函数) 4.tf.nn.atrous_conv2d 5.tf.nn.conv2d_transpose(反卷积) 7.tf.train.get_checkpoint_state(判断sess是否存在
1. tf.nn.moments(x, axes=[0, 1, 2]) # 对前三个维度求平均值和标准差,结果为最后一个维度,即对每个feature_map求平均值和标准差 参数说明:x为输入的fe ...
- python中线程的知识点
什么是线程? 程序的执行线路.每个进程默认有一条线程.线程包含了程序的具体步骤. 多线程就是一个进程中有除主线程(默认线程)外还有多个线程. 线程与进程的关系(进程包含线程,而线程依赖进程存在) 1. ...
- 【398】COMP9021 - Polynomial
构建 Polynomial 类,实现 +, -, , / and +=, -=, =, /= 参考:如何用python编程求解二元一次方程组.如x+y=3;x-y=1 参考:python对重载运算符的 ...
- webservice 教程
https://ke.qq.com/webcourse/index.html#cid=28875&term_id=100182700&taid=800324205965515& ...
- window备忘录
1.window.name属性是一个字符串,表示当前窗口的名字,只有当浏览器窗口关闭的时候,此属性才会消失. 2.window.closed属性返回一个布尔值,表示窗口是否关闭.此属性一般用来检查使用 ...
- foreach和List.Foreach 退出循环相关问题
foreach: continue;:退出本次循环 break;:退出循环 return;:退出循环 List.Foreach: return;:退出本次循环 小结:list.Foreach中不能退出 ...