标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-01595 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (103)
- 数据库 (1,753)
- DB2 (22)
- MySQL (76)
- Oracle (1,596)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (162)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (68)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (586)
- Oracle安装升级 (96)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (84)
- PostgreSQL (30)
- pdu工具 (6)
- PostgreSQL恢复 (9)
- SQL Server (31)
- SQL Server恢复 (12)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (38)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (21)
-
最近发表
- dm.ctl文件异常恢复
- Oracle Recovery Tools修复ORA-00742、ORA-600 ktbair2: illegal inheritance故障
- 可能是 tempdb 空间用尽或某个系统表不一致故障处理
- 11.2.0.4库中遇到ORA-600 kcratr_nab_less_than_odr报错
- [MY-013183] [InnoDB] Assertion failure故障处理
- Oracle 19c 202504补丁(RUs+OJVM)-19.27
- Oracle Recovery Tools修复ORA-600 6101/kdxlin:psno out of range故障
- pdu完美支持金仓数据库恢复(KingbaseES)
- 虚拟机故障引起ORA-00310 ORA-00334故障处理
- pg创建gbk字符集库
- PostgreSQL运行日志管理
- ora-600 kdsgrp1 错误描述
- GAM、SGAM 或 PFS 页上存在页错误处理
- ORA-600 krhpfh_03-1208
- VMware勒索加密恢复(vmdk勒索恢复)
- ORA-39773: parse of metadata stream failed故障处理
- sql数据库备份失败—失败: 23(数据错误(循环冗余检查)
- vmdk文件被加密恢复(虚拟机文件加密)
- 差点被误操作的ORA-600 kcratr_nab_less_than_odr故障
- win平台19c 打patch遭遇2个小问题汇总
分类目录归档:达梦恢复
dm.ctl文件异常恢复
达梦数据库中也有类似oracle的控制文件(control0x.ctl),在达梦数据库中一般叫做dm.ctl,具体是有dm.ini(达梦默认参数文件名)中的CTL_PATH参数确定.在某些情况下,由于参数文件损坏或者丢失,导致数据库异常,这里dm.ctl文件丢失故障恢复
创建表空间和表并插入数据
SQL> create tablespace tbs_xff datafile 'tbs_xff01.dbf' size 128; 操作已执行 已用时间: 52.996(毫秒). 执行号:1303. SQL> create table t_xff tablespace tbs_xff as 2 select * from dba_objects; 操作已执行 已用时间: 71.055(毫秒). 执行号:1304. SQL> insert into t_xff select * from dba_objects; 影响行数 1094 已用时间: 28.759(毫秒). 执行号:1305. SQL> insert into t_xff select * from dba_objects; 影响行数 1094 已用时间: 13.395(毫秒). 执行号:1306. SQL> insert into t_xff select * from dba_objects; 影响行数 1094 已用时间: 13.867(毫秒). 执行号:1307. SQL> insert into t_xff select * from dba_objects; 影响行数 1094 已用时间: 13.838(毫秒). 执行号:1308. SQL> insert into t_xff select * from t_xff; 影响行数 5470 已用时间: 5.677(毫秒). 执行号:1309. SQL> select count(1) from t_xff; 行号 COUNT(1) ---------- -------------------- 1 10940 已用时间: 1.949(毫秒). 执行号:1310. SQL> insert into t_xff select * from t_xff; 影响行数 10940 已用时间: 35.035(毫秒). 执行号:1311. SQL> insert into t_xff select * from t_xff; 影响行数 21880 已用时间: 38.489(毫秒). 执行号:1312. SQL> insert into t_xff select * from t_xff; 影响行数 43760 已用时间: 86.242(毫秒). 执行号:1313. SQL> insert into t_xff select * from t_xff; 影响行数 87520 已用时间: 272.804(毫秒). 执行号:1314. SQL> insert into t_xff select * from t_xff; 影响行数 175040 已用时间: 529.733(毫秒). 执行号:1315. SQL> insert into t_xff select * from t_xff; 影响行数 350080 已用时间: 00:00:01.090. 执行号:1316. SQL> select count(1) from t_xff; 行号 COUNT(1) ---------- -------------------- 1 700160 已用时间: 0.352(毫秒). 执行号:1317.
kill达梦进程并删除dm.ctl文件
[dmdba@localhost ctl_bak]$ ps -ef|grep dmserver dmdba 2216 1963 1 21:25 pts/1 00:00:10 dmserver /home/dmdba/dmdbms/data/htdb/dm.ini dmdba 2401 1963 0 21:40 pts/1 00:00:00 grep --color=auto dmserver [dmdba@localhost ctl_bak]$ kill -9 2216 [dmdba@localhost ctl_bak]$ [1]+ 已杀死 nohup dmserver /home/dmdba/dmdbms/data/htdb/dm.ini(工作目录:~/dmdbms/log) (当前工作目录:~/dmdbms/data/htdb/ctl_bak) [dmdba@localhost htdb]$ [dmdba@localhost htdb]$ rm -rf dm.ctl [dmdba@localhost htdb]$
启动达梦数据库报错
[dmdba@localhost htdb]$ dmserver /home/dmdba/dmdbms/data/htdb/dm.ini file dm.key not found, use default license! Read ini error, name:CTL_PATH, value:/home/dmdba/dmdbms/data/htdb/dm.ctl dmserver startup failed, code = -803 [Invalid ini config value] nsvr_ini_file_read failed, 1 [dmdba@localhost htdb]$
使用备份ctl文件直接启动库
备份文件在dm.ini中的CTL_BAK_PATH参数控制备份控制文件路径(一般在达梦数据库目录的ctl_bak中),CTL_BAK_NUM控制备份文件数量
[dmdba@localhost htdb]$ cd ctl_bak/ [dmdba@localhost ctl_bak]$ ls -lhtra 总用量 96K -rw-r--r--. 1 dmdba dmsys 5.5K 4月 26 21:25 dm_20250426212532_981690.ctl -rw-r--r--. 1 dmdba dmsys 5.5K 4月 26 21:36 dm_20250426213636_596321.ctl -rw-r--r--. 1 dmdba dmsys 5.5K 4月 26 21:36 dm_20250426213636_599137.ctl -rw-r--r--. 1 dmdba dmsys 6.0K 4月 26 21:36 dm_20250426213636_604672.ctl -rw-r--r--. 1 dmdba dmsys 6.0K 4月 26 21:36 dm_20250426213636_607133.ctl -rw-r--r--. 1 dmdba dmsys 6.0K 4月 26 21:36 dm_20250426213636_610925.ctl drwxr-xr-x. 2 dmdba dmsys 4.0K 4月 26 21:36 . -rw-r--r--. 1 dmdba dmsys 6.0K 4月 26 21:36 dm_20250426213636_630282.ctl drwxr-xr-x. 6 dmdba dmsys 4.0K 4月 26 21:41 .. -rw-r--r--. 1 dmdba dmsys 5.5K 4月 27 2025 dm_20250427034852_563000.ctl -rw-r--r--. 1 dmdba dmsys 5.5K 4月 27 2025 dm_20250427034905_993889.ctl -rw-r--r--. 1 dmdba dmsys 5.5K 4月 27 2025 dm_20250427035646_961400.ctl -rw-r--r--. 1 dmdba dmsys 5.5K 4月 27 2025 dm_20250427041036_574397.ctl [dmdba@localhost ctl_bak]$ [dmdba@localhost ctl_bak]$ cp dm_20250427041036_574397.ctl ../dm.ctl [dmdba@localhost ctl_bak]$ dmserver /home/dmdba/dmdbms/data/htdb/dm.ini file dm.key not found, use default license! version info: develop csek2_vm_t = 1440 nsql_vm_t = 328 prjt2_vm_t = 176 ltid_vm_t = 216 nins2_vm_t = 1120 nset2_vm_t = 272 ndlck_vm_t = 192 ndel2_vm_t = 768 slct2_vm_t = 352 nli2_vm_t = 200 aagr2_vm_t = 304 pscn_vm_t = 376 dist_vm_t = 960 DM Database Server 64 V8 03134284336-20250117-257733-20132 startup... Normal of FAST Normal of DEFAULT Normal of RECYCLE Normal of KEEP Normal of ROLL Database mode = 0, oguid = 0 License will expire on 2026-01-17 begin redo pwr log collect, last ckpt lsn: 46175 ... redo pwr log collect finished main rfil[/home/dmdba/dmdbms/data/htdb/htdb01.log]'s grp collect 0 valid pwr record, discard 1135 invalid pwr record EP[0]'s cur_lsn[61627], file_lsn[61627] begin redo log recover, last ckpt lsn: 46175 ... redo log recover finished 0 ndct db load finished, code:0 ndct second level fill fast pool finished ndct third level fill fast pool finished ndct second level fill fast pool finished ndct third level fill fast pool finished ndct fill fast pool finished pseg_set_gtv_trxid_low next_trxid in mem:[26039] pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 to_release_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 to_release_pages, 0 mgr pages, 0 mgr recs! next_trxid in mem:[28041] next_trxid = 30043. pseg recv finished nsvr_startup end. uthr_pipe_create, create pipe[read:10, write:11] uthr_pipe_create, create pipe[read:12, write:13] uthr_pipe_create, create pipe[read:14, write:15] uthr_pipe_create, create pipe[read:16, write:17] uthr_pipe_create, create pipe[read:18, write:19] uthr_pipe_create, create pipe[read:20, write:21] uthr_pipe_create, create pipe[read:22, write:23] uthr_pipe_create, create pipe[read:24, write:25] uthr_pipe_create, create pipe[read:26, write:27] uthr_pipe_create, create pipe[read:28, write:29] uthr_pipe_create, create pipe[read:30, write:31] uthr_pipe_create, create pipe[read:32, write:33] uthr_pipe_create, create pipe[read:34, write:35] uthr_pipe_create, create pipe[read:36, write:37] uthr_pipe_create, create pipe[read:38, write:39] uthr_pipe_create, create pipe[read:40, write:41] aud sys init success. aud rt sys init success. systables desc init success. ndct_db_load_info finished, code:0. nsvr_process_before_open begin. nsvr_process_before_open success. SYSTEM IS READY. purg2_crash_cmt_trx end, total 0 trx, 0 pages purged
启动数据库成功,查询相关信息
SQL> select TABLESPACE_NAME from dba_tablespaces; 行号 TABLESPACE_NAME ---------- --------------- 1 SYSTEM 2 ROLL 3 TEMP 4 MAIN 5 TBS_XFF 6 MAIN 6 rows got 已用时间: 4.257(毫秒). 执行号:602. SQL> select count(*) from t_xff; 行号 COUNT(*) ---------- -------------------- 1 700160 已用时间: 2.893(毫秒). 执行号:603.
使用重建ctl文件方式恢复
1. 使用dmctlcvt把备份ctl转换为txt文件
[dmdba@localhost htdb]$ dmctlcvt help DMCTLCVT V8 version: 03134284336-20250117-257733-20132 格式: ./dmctlcvt KEYWORD=value 注意: 控制文件名称必须指定为dm.ctl、dmmpp.ctl、dss.ctl 关键字 说明 -------------------------------------------------------------------------------- TYPE 1 转换控制文件为文本文件(源文件路径中控制文件名称必须是dm.ctl或dmmpp.ctl或dss.ctl) 2 转换文本文件为控制文件(目标文件路径中控制文件名称必须是dm.ctl或dmmpp.ctl或dss.ctl) SRC 源文件路径 DEST 目标文件路径 DCR_INI dmdcr.ini文件路径 HELP 打印帮助信息 示例: ./dmctlcvt TYPE=1 SRC=/opt/dmdbms/data/dameng/dm.ctl DEST=/opt/dmdbms/data/dameng/dmctl.txt ./dmctlcvt TYPE=2 SRC=/opt/dmdbms/data/dameng/dmctl.txt DEST=/opt/dmdbms/data/dameng/dm.ctl [dmdba@localhost htdb]$ dmctlcvt TYPE=1 SRC=dm_20250426213636_630282.ctl DEST=/tmp/ctl.txt DMCTLCVT V8 convert ctl to txt success!
2. 查看ctl.txt文件中是的表空间和数据文件信息是否正确,如果确实可以参考达梦日志中相关创建信息参考其他表空间信息进行完善,并注意修改next_ts_id=6值
2025-04-26 21:36:36.600 [INFO] database P0000002216 T0000000000000002387 ifun_add_file_low initialize file[0] of ts[5], file_path[/home/dmdba/dmdbms/data/htdb/tbs_xff01.dbf]!
3. 利用该txt文件重建ctl文件
[dmdba@localhost ctl_bak]$ dmctlcvt TYPE=2 SRC=/tmp/ctl.txt DEST=/home/dmdba/dmdbms/data/htdb/dm.ctl DMCTLCVT V8 convert txt to ctl success!
4. 启动数据库并进行验证
[dmdba@localhost ~]$ dmserver path=/home/dmdba/dmdbms/data/htdb/dm.ini file dm.key not found, use default license! version info: develop csek2_vm_t = 1440 nsql_vm_t = 328 prjt2_vm_t = 176 ltid_vm_t = 216 nins2_vm_t = 1120 nset2_vm_t = 272 ………… aud sys init success. aud rt sys init success. systables desc init success. ndct_db_load_info finished, code:0. nsvr_process_before_open begin. nsvr_process_before_open success. SYSTEM IS READY. purg2_crash_cmt_trx end, total 0 trx, 0 pages purged
[dmdba@localhost ctl_bak]$ disql disql V8 用户名:sysdba 密码: [-2501]:用户名或密码错误. 用户名:sysdba 密码: 服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间 : 4.624(ms) SQL> select tablespace_name from dba_tablespaces; 行号 TABLESPACE_NAME ---------- --------------- 1 SYSTEM 2 ROLL 3 TEMP 4 MAIN 5 TBS_XFF 6 MAIN 6 rows got 已用时间: 9.326(毫秒). 执行号:701. SQL> select count(1) from t_xff; 行号 COUNT(1) ---------- -------------------- 1 700160 已用时间: 2.916(毫秒). 执行号:702. SQL>
基于此,对于dm的control损坏/丢失一般可以通过以上两种方法实现恢复,这里可以明显感觉到dm的control相对于oracle的control文件中少了相关的一致性检测