注册
达梦redo损坏修复测试
技术分享/ 文章详情 /

达梦redo损坏修复测试

DM_672865 2024/09/06 610 4 1

环境说明:模拟没有备份且实例无法启动的情况进行redo日志修复。
数据库版本:8.1.3.26

1.模拟删除联机日志后数据库服务启动失败

1)将正常状态集群的redo日志修改名字模拟删除

mv DAMENG01.log DAMENG01.log_bak
mv DAMENG02.log DAMENG02.log_bak

2)停止数据库后启动数据库失败。
image.png

2.尝试使用其他实例的联机日志替换修复

–注意需要新初始化一个实例,将实例首次启动到SYSTEM IS READY状态再停止进行替换。
image.png

3.尝试修改db_magic和PSEG_RECV看实例是否可正常启动

1)拷贝完成后查看SYSTEM.DBF中的db_magic
./dmmdf type=1 file=/data/dmdata2/DAMENG/SYSTEM.DBF
image.png
2)将db_magic分别更新到两个新的联机日志中

./dmmdf type=2 file=/data/dmdata2/DAMENG/DAMENG01.log
./dmmdf type=2 file=/data/dmdata2/DAMENG/DAMENG02.log

image.png
image.png
image.png
image.png
3)将dm.ini文件中PSEG_RECV修改为0

vi /data/dmdata2/DAMENG/dm.ini

image.png

4.尝试前台启动实例,报错:浮点数例外。

image.png

5.尝试将pemnt_magic参数在2个新redo中也改成一致的,修改后依然报错

–修改方法一致
image.png
image.png
image.png

6.再次尝试在dm.ini中添加或修改RLOG_CHECK_SPACE = 2,数据库正常启动

image.png
注:数据库正常后可做一个dbcheck检验数据的完整性。
image.png

7.补充

碰到过修改到以上第六步依然报错无法启动的情况,尝试将enable_page_check参数修改为与SYSTEM.DBF中一致,可正常启动。
–修改方式参考上面修改。

8.总结

1)将新redo日志中的db_magic、pemnt_magic、enable_page_check三个参数修改为与SYSTEM.DBF中一致。其中enable_page_check有时不修改也可以启动。
2)在dm.ini文件中修改和添加PSEG_RECV = 0,RLOG_CHECK_SPACE = 2
3)前台启动数据库服务,可正常启动。停库后校验dbchk是否有报错。
4)为防止数据库出现问题,建议将损坏redo实例的数据迁移到新的数据库实例中并进行全库备份。
注意:redo日志作为数据库的重要在线日志谨慎操作,数据库及时做备份策略防止实例损坏后无法进行数据修复,以上测试修改可供参考,生产环境/测试环境谨慎操作。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服