暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DM8数据库回滚文件损坏后的恢复处理

原创 bxf3000 2022-06-20
1863


1、打开数据库的跟踪日志。

[dmdba@server01 dmdata]$ disql sysdba/SYSDBA@192.168.118.101:5235

服务器[192.168.118.101:5235]:处于普通打开状态

登录使用时间 : 3.766(ms)

disql V8

SQL> select para_name,para_value,para_type from v$dm_ini where para_name ='SVR_LOG';

行号 PARA_NAME PARA_VALUE PARA_TYPE

---------- --------- ---------- ---------

1 SVR_LOG 0 SYS

0,说明跟踪日志关闭。

SQL> SP_SET_PARA_VALUE(1, 'SVR_LOG', 1);

DMSQL 过程已成功完成

已用时间: 49.441(毫秒). 执行号:503.

SQL> select para_name,para_value,para_type from v$dm_ini where para_name ='SVR_LOG';

行号 PARA_NAME PARA_VALUE PARA_TYPE

---------- --------- ---------- ---------

1 SVR_LOG 1 SYS

已用时间: 19.077(毫秒). 执行号:504.

现在跟踪日志已经打开,日志路径:/opt/dmdbms/log


2、关闭数据库,模拟ROLL.DBF文件故障。

[dmdba@server01 DM2]$ ls --block-size=K -lh|grep ROLL

-rw-r--r--. 1 dmdba dinstall 128M May 26 21:20 ROLL.DBF

[dmdba@server01 DM2]$ rm ROLL.DBF -rf

[dmdba@server01 DM2]$ dd if=/dev/zero of=ROLL.DBF bs=1M count=128

128+0 records in

128+0 records out

134217728 bytes (134 MB) copied, 0.212642 s, 631 MB/s

[dmdba@server01 DM2]$ ls --block-size=K -lh|grep ROLL

-rw-r--r--. 1 dmdba dinstall 128M May 26 21:26 ROLL.DBF


3、启动数据库,并观察此时日志情况。

[dmdba@server01 log]$ tail dm_DM2_202205.log -F

……

2022-05-26 21:28:40.791 [INFO] database P0000018072 T0000000000000018072 ndct db load finished

2022-05-26 21:28:40.799 [INFO] database P0000018072 T0000000000000018072 hpc_dw_apply_info_check_make, p_db_magic(0), n_apply_ep(0), apply_pkg_seq([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]), db_magic(1032940018), n_ep(1), apply_info_lsn(33304), pkg_seq_arr([4446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), file_lsn([33304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

2022-05-26 21:28:40.801 [INFO] database P0000018072 T0000000000000018072 ohis_ctl_add success, ctl info: rguid:DM2_7, sys_mode:NORMAL, p_iname:DM2, c_iname:DM2, p_db_magic:1032940018, c_db_magic:1032940018, n_ep:1, pkg_seqno:[4446], lsn_arr:[33304]

2022-05-26 21:28:40.802 [INFO] database P0000018072 T0000000000000018072 rlog4_apply_info_clear, arr_clear:0, file_path:/dmdata/DM2/DM201.log

2022-05-26 21:28:40.802 [INFO] database P0000018072 T0000000000000018072 rlog4_apply_info_clear reset p_db_magic[0], n_apply_ep[0], apply_info_lsn[0], apply_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]!

2022-05-26 21:28:40.840 [INFO] database P0000018072 T0000000000000018072 ndct fill fast pool finished

2022-05-26 21:28:40.856 [WARNING] database P0000018072 T0000000000000018072 fail to load libgssapi_krb5.so, /opt/dmdbms/bin/libgssapi_krb5.so: cannot open shared object file: No such file or directory

2022-05-26 21:28:40.858 [WARNING] database P0000018072 T0000000000000018072 ts monitor: [fil_ts_free_extents_calc], ts_id:[1] fil_id:[0] free_pageno:[0], old_page_size:16384 is larger than new_page_size:0, size_bytes:134217728

2022-05-26 21:28:40.859 [INFO] database P0000018072 T0000000000000018072 iid_set_new_next_trxid_if_necessary, next_trxid: 13075

2022-05-26 21:28:40.859 [INFO] database P0000018072 T0000000000000018072 iid_set_new_next_trxid_if_necessary, next_trxid: 13075

2022-05-26 21:28:40.859 [INFO] database P0000018072 T0000000000000018072 iid page's trxid[13075]

2022-05-26 21:28:40.860 [INFO] database P0000018072 T0000000000000018072 pseg_sys_recv start, startup_flag:1

2022-05-26 21:28:40.860 [INFO] database P0000018072 T0000000000000018072 pseg_sys_recv begin...

2022-05-26 21:28:40.860 [INFO] database P0000018072 T0000000000000018072 EP[0] pseg_state is 0, set pseg state to 2

2022-05-26 21:28:40.860 [INFO] database P0000018072 T0000000000000018072 EP[1] pseg_state is 2, set pseg state to 2

2022-05-26 21:28:40.860 [INFO] database P0000018072 T0000000000000018072 EP[1] pseg collect items begin, mgr_state=1

2022-05-26 21:28:40.861 [FATAL] database P0000018072 T0000000000000018072 fil_io try to R file(1, 0) beyond size. path:/dmdata/DM2/ROLL.DBF size:16384 offset:4294967232

2022-05-26 21:28:40.862 [FATAL] database P0000018072 T0000000000000018072 code = -2, dm_sys_halt now!!!

2022-05-26 21:28:40.862 [INFO] database P0000018072 T0000000000000018072 total 2 rfil opened!

2022-05-26 21:28:40.862 [FATAL] database P0000018072 T0000000000000018072 sigterm_handler receive signal 8

[dmdba@server01 dmdata]$ DmServiceDM2 status

DmServiceDM2 dead but pid file exists

[dmdba@server01 dmdata]$ disql sysdba/SYSDBA@192.168.118.101:5235

[-70028]:创建SOCKET连接失败.

disql V8

用户名:

通过启动日志以及查询数据库服务状态,说明数据库已经故障,无法启动。


4、初始化一个新的数据库。参数与前面的数据库一致。

[dmdba@server01 ~]$ dminit path=/dmdata

initdb V8

db version: 0x7000c

file dm.key not found, use default license!

License will expire on 2022-09-24

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

log file path: /dmdata/DAMENG/DAMENG01.log

log file path: /dmdata/DAMENG/DAMENG02.log

write to dir [/dmdata/DAMENG].

create dm database success. 2022-05-26 21:36:32

[dmdba@server01 ~]$ ls /dmdata/DAMENG/dm.ini

/dmdata/DAMENG/dm.ini


5、对新库做一次启停操作。

[root@server01 root]# ./dm_service_installer.sh -t dmserver -p DM3 -dm_ini /dmdata/DAMENG/dm.ini

Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDM3.service to /usr/lib/systemd/system/DmServiceDM3.service.

创建服务(DmServiceDM3)完成

[dmdba@server01 ~]$ DmServiceDM3 start

Starting DmServiceDM3: [ OK ]

[dmdba@server01 ~]$ DmServiceDM3 stop

Stopping DmServiceDM3: [ OK ]


6、拷贝新数据库的ROLL.DBF文件到原来的旧库。

[dmdba@server01 DAMENG]$ cp ROLL.DBF /dmdata/DM2/


7、重新启动旧库。

[dmdba@server01 DAMENG]$ DmServiceDM2 start

Starting DmServiceDM2: [ OK ]

[dmdba@server01 DAMENG]$ disql sysdba/SYSDBA@192.168.118.101:5235

服务器[192.168.118.101:5235]:处于普通打开状态

登录使用时间 : 3.820(ms)

disql V8

SQL> select name,status$ from v$instance;

行号 NAME STATUS$

---------- ---- -------

1 DM2 OPEN

已用时间: 5.902(毫秒). 执行号:500.

启动成功。



社区地址:https://eco.dameng.com

最后修改时间:2022-06-20 17:27:01
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论