DM8 redo日志损坏临时启动库

写在前面:该方法为非常规手段,在数据库启动以后(此时数据库并非正常状态),需要马上把数据迁移到新环境上保留数据;

环境信息:
数据库:DM8
操作系统:redhat 7.5

1、 删除redo日志,数据库启动失败

将数据文件删除或者移动到其他位置,执行启动命令
启动失败,报错找不到redo日志

[dmdba@localhost bin]$ ./DmServiceDMSERVER start
Starting DmServiceDMSERVER:                                [ FAILED ]
file dm.key not found, use default license!
version info: develop
Use normal os_malloc instead of HugeTLB
Use normal os_malloc instead of HugeTLB
DM Database Server x64 V8 1-1-88-20.06.24-123627-ENT  startup...
Database mode = 0, oguid = 0
/opt/dmdbms/data/DAMENG/DAMENG01.log not exist, can not startup

2、恢复

1、重新初始化一个实例,将新实例的DAMENG01.log,DAMENG02.log复制到redo日志被损坏的实例原本的路径下

[dmdba@localhost bin]$ cp /opt/dmdbms/data2/DAMENG/DAMENG0* /opt/dmdbms/data/DAMENG/

2、查看dmmdf命令帮助

[dmdba@localhost bin]$ pwd
/opt/dmdbms/bin
[dmdba@localhost bin]$ ./dmmdf help
格式: ./dmmdf KEYWORD=value

例程: ./dmmdf TYPE=1 FILE=/opt/data/DAMENG/SYSTEM.DBF

关键字              说明
--------------------------------------------------------------------------------
TYPE                类型
                    1表示dbf
                    2表示rlog
                    3表示original bak
                    4表示bakset meta
                    5表示bakset bkp
                    6表示bakset
                    7表示数据库降级(仅支持0x0007000A降级到0x00070009)
                    8表示联机日志降级(仅支持0x7006降级到0x7005)
FILE                文件路径
DCR_INI             dmdcr.ini路径
DFS_INI             dmdfs.ini路径
HELP                打印帮助信息

--------------------------------------------------
示例:    ./dmmdf TYPE=1 FILE=/opt/data/DAMENG/SYSTEM.dbf
         ./dmmdf TYPE=2 FILE=/opt/data/DAMENG/DAMENG01.log
         ./dmmdf TYPE=3 FILE=/opt/data/DAMENG/bak/dmdb.bak
         ./dmmdf TYPE=4 FILE=/opt/data/DAMENG/bak/bset/nbak.meta
         ./dmmdf TYPE=5 FILE=/opt/data/DAMENG/bak/bset/nbak.bak
         ./dmmdf TYPE=6 FILE=/opt/data/DAMENG/bak/bset
         ./dmmdf TYPE=7 FILE=/opt/data/DAMENG/dm.ctl
         ./dmmdf TYPE=8 FILE=/opt/data/DAMENG/dm.ini

3、查看SYSTEM.DBF数据文件,获取原数据库的魔数值1,3

[dmdba@localhost bin]$ ./dmmdf TYPE=1 FILE=/opt/dmdbms/data/DAMENG/SYSTEM.DBF
dmmdf V8
**********************************************************
1 db_magic=1248761068
2 next_trxid=25240
3 pemnt_magic=686069732
**********************************************************
Please input which parameter you want to change(1-3), q to quit:

4、将SYSTEM.DBF数据文件中查看到的1、3的值记录下来修改redo中对应的值
如下:redo日志中6对应SYSTEM.DBF中的1,12对应SYSTEM.DBF中的3

[dmdba@localhost bin]$ ./dmmdf TYPE=2 FILE=/opt/dmdbms/data/DAMENG/DAMENG01.log
dmmdf V8
**********************************************************
1 sig = DMRLOG
2 ver = 7006
3 chksum = -1442835396
4 sta = 1
5 n_magic = 7
6 db_magic = 196653422
7 len = 268435456
8 free = 4096
9 clsn = 0
10 clsn_fil = 0
11 clsn_off = 4096
12 pemnt_magic = 436788831
13 fil_id = 0
15 next_seq = 2457
16 g_next_seq = 2457
17 arch_lsn = 0
18 arch_seq = 0
19 dbversion = 0x7000a
20 min_exec_version = V8.1.1.1
21 min_dct_version  = 4
22 p_db_magic = 0
23 n_apply_ep = 0
24 apply_info_lsn = 0
   pkg_seq_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
   apply_lsn_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
25 recv_p_db_magic = 0
26 recv_n_apply_ep = 0
   recv_pkg_seq_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
   recv_apply_lsn_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
**********************************************************




--此处输入对应项修改魔数
You can only reset sta(4) or db_magic (6) or clsn (9) or clsn_fil(10) or clsn_off(11) or pemnt_magic(12) or fil_id(13) or g_next_seq(16) or p_db_magic(20) or n_apply_ep(21).
Please input the num which one you want to change, q to quit: 6
Input the new value: 1248761068
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=/opt/dmdbms/data/DAMENG/DAMENG01.log
dmmdf V8
**********************************************************
1 sig = DMRLOG
2 ver = 7006
3 chksum = -338284098
4 sta = 1
5 n_magic = 7
6 db_magic = 1248761068
7 len = 268435456
8 free = 4096
9 clsn = 0
10 clsn_fil = 0
11 clsn_off = 4096
12 pemnt_magic = 436788831
13 fil_id = 0
15 next_seq = 2457
16 g_next_seq = 2457
17 arch_lsn = 0
18 arch_seq = 0
19 dbversion = 0x7000a
20 min_exec_version = V8.1.1.1
21 min_dct_version  = 4
22 p_db_magic = 0
23 n_apply_ep = 0
24 apply_info_lsn = 0
   pkg_seq_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
   apply_lsn_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
25 recv_p_db_magic = 0
26 recv_n_apply_ep = 0
   recv_pkg_seq_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
   recv_apply_lsn_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
**********************************************************



--此处输入对应项修改魔数
You can only reset sta(4) or db_magic (6) or clsn (9) or clsn_fil(10) or clsn_off(11) or pemnt_magic(12) or fil_id(13) or g_next_seq(16) or p_db_magic(20) or n_apply_ep(21).
Please input the num which one you want to change, q to quit: 12
Input the new value: 686069732
Do you want to quit and save the change to file (y/n): y
Save to file success!

5、另一个redo文件也按照类似的方法修改对应魔数即可

6、启动数据库

[dmdba@localhost bin]$ ./DmServiceDMSERVER start
Starting DmServiceDMSERVER:                                [ OK ]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值