技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> 当logfile被误删除后

当logfile被误删除后

浏览:2158次  出处信息

数据库的logfile被rm删除,每个logfile group仅有一个logfile member,当该logfile变为current时发现问题。

数据库仍然可以正常运行,但是LNS进程报错称找不到被删除的logfile。我们使用lgwr async模式传输redo到远端physical standby,physical standby无法得到被删除的logfile。

从pfiles中可以看出,因为lgwr进程每时每刻都获得所有logfile的文件句柄,所以虽然该logfile被删除,lgwr还是可以正常读写该logfile,数据库还是可以正常的运行。

但是lns进程只是获得当前的文件句柄,所以当切换到被删除的logfile时,lns进程不能访问该文件。

XFAN primary$> ps -ef |grep lns1|grep XFAN
oracle 17579 1 0 03:02:06 ? 0:01 ora_lns1_XFAN
XFAN primary$> pfiles 17579 | grep redo
/oracle/SCRATCH/data03/XFAN/redo/.redo2.log::cdev:vxfs: ― LNS process only hold redo2.log’s handler
XFAN primary$> ps -ef |grep lgwr|grep XFAN
oracle 16377 1 0 02:44:54 ? 0:01 ora_lgwr_XFAN
XFAN primary$> pfiles 16377 |grep redo
/oracle/SCRATCH/data03/XFAN/redo/.redo1.log::cdev:vxfs:
/oracle/SCRATCH/data03/XFAN/redo/.redo2.log::cdev:vxfs:
/oracle/SCRATCH/data03/XFAN/redo/.redo3.log::cdev:vxfs:
/oracle/SCRATCH/data03/XFAN/redo/.redo4.log::cdev:vxfs: ― LGWR process hold all redo log files’ handler

首先做的是在primary数据库上清除该logfile,过程如下:

1. 切换到好的logfile group
alter system switch logfile;
2. checkpoint,使该logfile的状态从active变为inactive
alter system checkpoint;
3. 清除该logfile,因为不能被归档,所以要加上unarchived
alter database clear unarchived logfile group x;

因为中间少了一个archive log,所以physical standby不能继续recover。

使用incremental backup来修复该physical standby,大约花费6个小时。如果重新build standby,大约需要花费一个星期。

建议继续学习:

  1. 用 LD_PRELOAD 挽救被误删的 libc.so.6    (阅读:4121)
  2. MySQL从压缩文件恢复数据    (阅读:3571)
  3. 参数_smon_internal_errlimit与数据库恢复    (阅读:3073)
  4. MySQL 备份和其恢复机制原理简述    (阅读:2957)
  5. 用bin日志中恢复MySQL数据库    (阅读:2602)
  6. 用CloneZilla制作紧急恢复分区    (阅读:2591)
  7. Zmanda让MySQL的备份与恢复更加方便快捷灵活    (阅读:2268)
  8. EXT文件系统误删除数据恢复指南    (阅读:2069)
  9. Oracle数据库恢复:存储故障导致的数据损坏    (阅读:1908)
  10. Oracle数据库恢复:归档日志损坏案例一则    (阅读:1787)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:利用tcpflow抓取SQL
后一篇:PostgreSQL >>
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1