达梦数据库(DM V7.6.0.161)redo日志损坏且无法修复时的方法

操作环境

Linux version 3.10.0-693.el7.x86_64
DM Database Server x64 V7.6.0.161-Build(2019.05.23-107264)ENT

数据库启动报错

在这里插入图片描述

修改dm.ini参数PSEG_RECV

在这里插入图片描述
将参数PSEG_RECV修改为0,跳过回滚活动事务和 PURGE 已经提交事务的步骤。

查看数据库的参数

根据数据库文件夹下dminit+日期时间.log(例如:dminit20200329210629.log)的文件查看数据库的各个参数,然后新初始化相同参数的数据库;
在这里插入图片描述将新初始化的数据库的redo日志拷贝到要修复数据库文件夹下**(拷贝前对要修复数据库的原redo日志做好备份)**

替换db_magic值

利用dmmdf 修改redo日志的db_magic的值,否则启动会报如下错:

在这里插入图片描述

通过dmmdf查看原库的db_magic值,并记录:

[dmdba@localhost bin]$ ./dmmdf /opt/dmdbms/data/NDRC/SYSTEM.DBF ./dmmdf TYPE=1 FILE=/opt/dmdbms/data/DAMENG/SYSTEM.DBF
dmmdf V7.6.0.161-Build(2019.05.23-107264)ENT


1 db_magic=92055302
2 next_trxid=1159
3 pemnt_magic=-803547167


Please input which parameter you want to change(1-3), q to quit: q

通过dmmdf修改DAMENG01.log和DDAMENG02.log的db_magic

[dmdba@localhost bin]$ ./dmmdf TYPE=2 FILE=/opt/dmdbms/data/DAMENG/DAMENG01.log
dmmdf V7.6.0.161-Build(2019.05.23-107264)ENT


1 sig = DMRLOG
2 ver = 7004
3 chksum = 0
4 dbversion = 0x7000a
5 sta = 1
6 n_magic = 7
7 db_magic = -458434922
8 clsn_fil = 0
10 next_seq = 15179
11 arch_seq = 0
12 len = 268435456
13 free = 7775744
14 clsn = 40093
15 clsn_off = 7775744
16 arch_lsn = 0
17 pemnt_magic = -451811967
18 fil_id = 0
19 crc_check = 1


You can only reset sta(5) or db_magic (7) or clsn (14) or pemnt_magic(17) or fil_id(18).
Please input the num which one you want to change, q to quit: 7
Input the new value: 92055302


1 sig = DMRLOG
2 ver = 7004
3 chksum = 0
4 dbversion = 0x7000a
5 sta = 1
6 n_magic = 7
7 db_magic = 92055302
8 clsn_fil = 0
10 next_seq = 15179
11 arch_seq = 0
12 len = 268435456
13 free = 7775744
14 clsn = 40093
15 clsn_off = 7775744
16 arch_lsn = 0
17 pemnt_magic = -451811967
18 fil_id = 0
19 crc_check = 1


Do you want to quit and save the change to file (y/n): y
Save to file success!

然后用相同方法修改DAMENG02.log的db_magic值

启动数据库

此情况重启的数据库可能无法进行正常的写操作,所以必须重新建新库,尽快将数据迁移到新库中再使用。

*** 注:在实际生产库中如果碰到,此方法在万不得已的时候,不要使用,尽可能的想办法修复redo日志。如果使用这种办法启动了数据库,需重新建库迁移数据,再去使用新库作为生产库。***

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值