fio测试io,导致磁盘文件系统损坏故障恢复

联系:手机/微信(+86 17813235971) QQ(107644445)QQ咨询惜分飞

标题:fio测试io,导致磁盘文件系统损坏故障恢复

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

运行在云平台上的达梦数据库,部署了DMDataWatch(类似oracle的dataguard),在重启主备库进行扩容内存之后,发现两个机器数据库所在磁盘的分区信息,lvm信息全部丢失,通过查看history文件,最终确认在24年9月份做了一次fio的性能测试,但是当时数据没有出问题,一直运行至今,现在重启两个机器系统之后,均重现同样问题,导致主备容灾,备份全备异常.
fio
通过对磁盘进行分析,发现客户说描述的分区信息(从磁盘2T,三个分区data,bak,arch,而且分区大小也一直10:6:4),但是没有发现lvm信息
scan-part


对发现的分区进行恢复,发现达梦数据库相关文件,备份文件,以及arch归档日志
dm-1
dm-2
dm-3
把恢复的数据传输到客户新划分磁盘的达梦数据库服务器上,然后达梦厂商使用备份还原,和原库启动均正常,运气不错,完成了本次的达梦数据故障恢复.
通过这次故障,有几点我们需要引以为戒:
1.千万不要在生产环境做类似磁盘写操作的io性能测试,比如fio,orion等
2.对于有主备架构的系统,尽量不要同时进行维护,在确认一个库正常之后,再操作另外一个库

ORA-742 写丢失常见bug记录

联系:手机/微信(+86 17813235971) QQ(107644445)QQ咨询惜分飞

标题:ORA-742 写丢失常见bug记录

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

我们经常会遇到数据库异常down,然后启动的时候报ORA-00742错误,一般是在recover或者open的过程中遇到

SQL> RECOVER DATABASE;
ORA-00283: 恢复会话因错误而取消
ORA-00742: 日志读取在线程 1 序列 2097 块 296728 中检测到写入丢失情况
ORA-00312: 联机日志 3 线程 1: 'D:\APP\ADMINISTRATOR\ORADATA\HIS\REDO03.LOG'
SQL> recover database;
Media recovery complete.

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00742: Log read detects lost write in thread %d sequence %d block %d
ORA-00312: online log 3 thread 1: '/oradata/shrdh/redo03.log'

关于该错误,Oracle官方解释:由于操作系统或者存储或者Oracle导致redo发生写丢失

[oracle@www.xifenfei.com:/home/oracle]$ oerr ora 742
00742, 00000, "Log read detects lost write in thread %s sequence %s block %s"
// *Cause:  Either a write issued by Oracle was lost by the underlying
//          operating system or storage system or an Oracle internal error
//          occurred.
// *Action: The trace file shows the lost write location. Dump the problematic
//          log file to see whether it is a real lost write. Contact Oracle
//          Support Services.

Oracle官方关于ORA-00742的主要bug有:
ORA-742-BUG-1
ORA-742-BUG-2
由于redo写丢失已经发生,一般发生这种情况,有备份使用备份进行不完全恢复,没有备份考虑强制拉库,如果是dg库问题,可以考虑从主库把日志重新传过去