DM7 数据库redo日志损坏,如何进行修复

当达梦数据库由于断电或其他原因导致redo日志损坏该怎么办?

[dmdba@localhost bin]$./dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini
version info: enterprise
Use normal os_malloc instead of HugeTLB
Use normal os_malloc instead of HugeTLB
DM Database Server x64 V7.6.0.89-Build(2018.08.14-95838)ENT  startup...
rfil grp log file error in (db_magic, permanent_magic), 
	log file /home/dmdba/dmdbms/data/DAMENG/DAMENG01.log is (1261862494, -367232714), 
	dbfile is(-1007297724, 2003918941).
sys halt 0

一、直接使用备份进行恢复,这里不做详细说明

二、修复redo日志文件

1.将原数据库目录重命名

mv /home/dmdba/dmdbms/data/DAMENG /home/dmdba/dmdbms/data/DAMENG_BAK

2.初始化一个新实例

[dmdba@localhost bin]$./dminit PATH=/home/dmdba/dmdbms/data DB_NAME=DAMENG EXTENT_SIZE=32 PAGE_SIZE=32 CHARSET=1
initdb V7.6.0.89-Build(2018.08.14-95838)ENT 
db version: 0x7000a

 log file path: /home/dmdba/dmdbms/data/DAMENG/DAMENG01.log

 log file path: /home/dmdba/dmdbms/data/DAMENG/DAMENG02.log

write to dir [/home/dmdba/dmdbms/data/DAMENG].
create dm database success. 2021-03-04 07:37:32

3.查看数据库的SYSTEM.DBF文件的db_magic

./dmmdf TYPE=1 FILE=/home/dmdba/dmdbms/data/DAMENG_BAK/SYSTEM.DBF 
dmmdf V7.6.0.89-Build(2018.08.14-95838)ENT 
**********************************************************
1 db_magic=-1007297724
2 next_trxid=5675531666
3 pemnt_magic=2003918941
**********************************************************
Please input which parameter you want to change(1-3), q to quit: q

4.修改新实例redo日志文件的db_magic

[dmdba@localhost bin]$./dmmdf TYPE=2 FILE=/home/dmdba/dmdbms/data/DAMENG/DAMENG01.log 
dmmdf V7.6.0.89-Build(2018.08.14-95838)ENT 
**********************************************************
1 sig = DMRLOG
2 ver = 7004
3 chksum = 0
4 dbversion = 0x7000a
5 sta = 1
6 n_magic = 7
7 db_magic = 1261862494
8 clsn_fil = 0
10 next_seq = 0
11 arch_seq = 0
12 len = 268435456
13 free = 4096
14 clsn = 0
15 clsn_off = 4096
16 arch_lsn = 0
17 pemnt_magic = -367232714
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: -1007297724
**********************************************************
1 sig = DMRLOG
2 ver = 7004
3 chksum = 0
4 dbversion = 0x7000a
5 sta = 1
6 n_magic = 7
7 db_magic = -1007297724
8 clsn_fil = 0
10 next_seq = 0
11 arch_seq = 0
12 len = 268435456
13 free = 4096
14 clsn = 0
15 clsn_off = 4096
16 arch_lsn = 0
17 pemnt_magic = -367232714
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!

[dmdba@localhost bin]$./dmmdf TYPE=2 FILE=/home/dmdba/dmdbms/data/DAMENG/DAMENG02.log 
dmmdf V7.6.0.89-Build(2018.08.14-95838)ENT 
**********************************************************
1 sig = DMRLOG
2 ver = 7004
3 chksum = 0
4 dbversion = 0x7000a
5 sta = 0
6 n_magic = 7
7 db_magic = 1261862494
8 clsn_fil = 0
10 next_seq = 0
11 arch_seq = 0
12 len = 268435456
13 free = 4096
14 clsn = 0
15 clsn_off = 0
16 arch_lsn = 0
17 pemnt_magic = -367232714
18 fil_id = 1
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: -1007297724
**********************************************************
1 sig = DMRLOG
2 ver = 7004
3 chksum = 0
4 dbversion = 0x7000a
5 sta = 0
6 n_magic = 7
7 db_magic = -1007297724
8 clsn_fil = 0
10 next_seq = 0
11 arch_seq = 0
12 len = 268435456
13 free = 4096
14 clsn = 0
15 clsn_off = 0
16 arch_lsn = 0
17 pemnt_magic = -367232714
18 fil_id = 1
19 crc_check = 1
**********************************************************
Do you want to quit and save the change to file (y/n): y
Save to file success!

5.把新实例的redo日志拷贝到原库

cp /home/dmdba/dmdbms/data/DAMENG/DAMENG01.log /home/dmdba/dmdbms/data/DAMENG_BAK/DAMENG01.log
cp /home/dmdba/dmdbms/data/DAMENG/DAMENG02.log /home/dmdba/dmdbms/data/DAMENG_BAK/DAMENG02.log

6.删除新实例目录

rm -rf /home/dmdba/dmdbms/data/DAMENG

7.把原库目录改回原来的名称

mv /home/dmdba/dmdbms/data/DAMENG_BAK /home/dmdba/dmdbms/data/DAMENG

8.启动数据库

[dmdba@localhost bin]$./dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini
version info: enterprise
Use normal os_malloc instead of HugeTLB
Use normal os_malloc instead of HugeTLB
DM Database Server x64 V7.6.0.89-Build(2018.08.14-95838)ENT  startup...
ckpt lsn: 42793
ndct db load finished
ndct fill fast pool finished
set EP[0]'s pseg state to inactive
iid page's trxid = 5675531666
NEXT TRX ID = 5675531667
pseg recv finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info success.
nsvr_process_before_open begizzzzn.
nsvr_process_before_open success.
SYSTEM IS READY.

redo修复完成。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值