注册
DM达梦数据库误删除 DAMENG01.log 怎么办
专栏/技术分享/ 文章详情 /

DM达梦数据库误删除 DAMENG01.log 怎么办

Mercy 2025/12/05 12 0 0
摘要

分以下两种情况:

如果有备份文件

如果有备份文件,可以重新初始化一个新的数据库(初始化参数要和原库一样,比如页大小、大小写敏感、字符集等,这些可以在 DM 数据库安装路径,…/data/DAMENG 目录下以 dminit+日期时间.log 命名的文件中查询),然后将备份文件和归档日志文件拷贝到新的环境,然后再进行备份+归档的还原操作。

如果没有备份文件

如果没有备份,可以通过修改永久魔术值的方式来恢复,但是这种情况下有可能丢失数据。方法如下:

重新初始化一个新的数据库,(初始化参数要和原库一样,比如页大小、大小写敏感、字符集等,这些可以在 DM 数据库安装路径,…/data/DAMENG 目录下以 dminit+日期时间.log 命名的文件中查询)。
将步骤 (1) 中重新初始化的数据库中 DAMENG01.log、DAMENG02.log 文件拷贝到当前丢失 redo 日志的库目录下。
使用 dmmdf 工具获取 SYSTEM.DBF 的 db_magic,并记录下来。

[root@dmyanshi2 bin]# ./dmmdf /data/DAMENG/SYSTEM.DBF 1
1 db_magic=1394176795
2 next_trxid=34742179
Please input which parameter you want to change(1-2), q to quit: q

使用 dmmdf 工具设置 DAMENG01.log 文件的 db_magic,设置为步骤 (3) 中记录的值。

[root@dmyanshi2 bin]# ./dmmdf /data/DAMENG/DAMENG01.log 2
1 sig = DMRLOG
2 ver = 7001
3 chksum = 0
4 dbversion = 0x70008
5 sta = 1
6 n_magic = 7
7 db_magic = 1411700695
8 clsn_fil = 0
9 cur_fil_id = 0
10 next_seq = 0
11 arch_seq = 0
12 len = 67108864
13 free = 4096
14 clsn = 0
15 clsn_off = 4096
16 arch_lsn = 0

You can only reset sta(5) or db_magic (7) or clsn (14).
Please input the num which one you want to change, q to quit: 7
Input the new value: 1394176795
1 sig = DMRLOG
2 ver = 7001
3 chksum = 0
4 dbversion = 0x70008
5 sta = 1
6 n_magic = 7
7 db_magic = 1394176795
8 clsn_fil = 0
9 cur_fil_id = 0
10 next_seq = 0
11 arch_seq = 0
12 len = 67108864
13 free = 4096
14 clsn = 0
15 clsn_off = 4096
16 arch_lsn = 0

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

重新启动数据库即可。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服