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




