标签云
asm恢复 bbed bootstrap$ dul kcbzib_kcrsds_1 kccpb_sanity_check_2 kcratr_nab_less_than_odr MySQL恢复 ORA-00312 ORA-00704 ORA-00742 ORA-01110 ORA-01200 ORA-01555 ORA-01578 ORA-01595 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-600 kcratr_nab_less_than_odr ORA-600 kdsgrp1 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)
- 操作系统 (110)
- 数据库 (1,827)
- DB2 (22)
- MySQL (80)
- Oracle (1,656)
- Data Guard (53)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (168)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (69)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (624)
- Oracle安装升级 (103)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (86)
- PostgreSQL (37)
- pdu工具 (7)
- PostgreSQL恢复 (13)
- SQL Server (34)
- SQL Server恢复 (14)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (45)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (28)
-
最近发表
- ORA-600 kcratr_nab_less_than_odr和ORA-600 4193故障处理
- aix环境10g由于控制器异常导致ORA-600 4000故障处理
- ORA-600 3716故障处理
- 不当恢复truncate数据导致数据库不能open处理
- 注意:PostgreSQL库出现readme_to_recover勒索
- Oracle 19c 202601补丁(RUs+OJVM)-19.30
- Patch_SCN快速解决ORA-600 2663故障
- 在生产环境错误执行dd命令破坏asm磁盘故障恢复
- obet实现对数据文件坏块检测功能
- oracle linux 8.10注意pmlogger导致空间被大量占用
- obet快速修改scn/resetlogs恢复数据库(缺少归档,ORA-00308)
- 使用DBMS_PDB.RECOVER抢救单个pdb
- aix环境写入大文件设置combehin提高效率
- 记录一次国产数据库被rm -rf /*删除的救援过程
- 数据库启动报 maximum number of processes () exceeded分析
- ORA-600 [ksunfy : too few sessions]
- 由于数据块scn大于数据库scn导致ORA-600 kcbzib_kcrsds_1错误
- ORA-600 ktbair2: illegal inheritance恢复
- 一键恢复ORA-00704 ORA-00702故障—202512
- PostgreSQL查询一个表相关的所有oid
标签归档:达梦恢复
达梦数据库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文件中少了相关的一致性检测

加我微信(17813235971)
加我QQ(107644445)

