当达梦数据库由于断电或其他原因导致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修复完成。