达梦REDO日志文件损坏故障处理
1 背景及解决方案
用户测试环境联机日志文件损坏导致无法启动数据库服务。数据库无备份,现在根据原有参数重新初始化实例,通过修改永久魔术值的方式来恢复,但是这种情况下有可能丢失数据。
2 操作步骤
2.1 数据文件大小及磁盘空间检查
2.2 初始化实例新实例
根据dm.ini 同级目录dminitXXXX.log日志文件里面的参数重新初始化实例
2.3 将dmdb02.log拷贝到当前丢失REDO日志目录下
cp /home/dmdba/data/dmdb/dmdbo2.log /data/dmdb
2.4 用dmmdf工具从SYSTEM.DBF获取以前db_magic值
./dmmdf type=1 file=/data/dmdb/SYSTEM.DBF
2.5 使用 dmmdf 工具修改 dmdb02.log的db_magic值
将上一步从SYSTEM.DBF得到的db_magic值替换dmdb02文件db_magic值,然后保存退出
./dmmdf type=2 file=/data/dmdb/dmdb02.log
2.6 前台方式重启数据库
./dmserver /data/dmdb/dm.ini
2.7 检查key文件及数据库版本
以前应该是没带key的实例,需要将企业版数据转换成安全版
前台方式带upd_lic=1 启动,将企业版数据转成安全版
./dmserver /data/dmdb/dm.ini upd_lic=1
2.8 跳过回滚
修改dm.ini文件里面参数PSEG_RECV值为0,跳过回滚活动事务和PURGE已经提交事务
2.9 以服务方式重启数据库
3 验证数据
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了