【DM版本】:DM Database Server 64 V8
DB Version: 0x7000c
03134284294-20241225-255012-20119
Msg Version: 21
【操作系统】:Red Hat Enterprise Linux Server 7.9 (Maipo)
【CPU】:Intel
【问题描述】:按照文档 DM8备份与还原 的 3.3.5.2.2.4 多次故障恢复后使用不同数据库归档恢复章节进行实验,走到倒数第2部指定 DB_METRIC 恢复出现DM-718。
【具体实验过程】
mkdir -p /home/dmdba/dm8/{data,arch,dm_bak}
dminit path=/home/dmdba/dm8/data SYSDBA_PWD=DMdba_123 SYSAUDITOR_PWD=DMauditor_123
# 启动 D1
dmserver /home/dmdba/dm8/data/DAMENG/dm.ini
-- 开启归档
ALTER DATABASE MOUNT;
ALTER DATABASE NORMAL;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST = /home/dmdba/dm8/arch, TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 2048';
ALTER DATABASE OPEN;
-- 创建测试表并插入数据
DROP TABLE TAB_FOR_RECOVER;
CREATE TABLE TAB_FOR_RECOVER(C1 INT);
BEGIN
FOR I IN 1..100000 LOOP
INSERT INTO TAB_FOR_RECOVER VALUES(I);
COMMIT;
END LOOP;
END;
/
-- 全量备份 B1
BACKUP DATABASE FULL TO B1 BACKUPSET '/home/dmdba/dm8/dm_bak/B1' DEVICE TYPE DISK BACKUPINFO 'DAMENG FULL BACKUP ONLINE' MAXPIECESIZE 2048;
# 继续插入数据一段时间后,Ctrl+C 杀掉 dmserver 进程模拟故障
# 此时产生的归档记为 A1
dminit path=/home/dmdba/dm8/data db_name=DAMENG_FOR_RES SYSDBA_PWD=DMdba_123 SYSAUDITOR_PWD=DMauditor_123
配置 dm.ini 开启归档 (ARCH_INI = 1),并配置 dmarch.ini:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
# 使用 dmrman 恢复 D2
dmrman
RESTORE DATABASE '/home/dmdba/dm8/data/DAMENG_FOR_RES/dm.ini' FROM BACKUPSET '/home/dmdba/dm8/dm_bak/B1';
RECOVER DATABASE '/home/dmdba/dm8/data/DAMENG_FOR_RES/dm.ini' WITH ARCHIVEDIR '/home/dmdba/dm8/arch';
RECOVER DATABASE '/home/dmdba/dm8/data/DAMENG_FOR_RES/dm.ini' UPDATE DB_MAGIC;
# 启动 D2 并继续插入数据
dmserver /home/dmdba/dm8/data/DAMENG_FOR_RES/dm.ini
# 一段时间后关闭实例,模拟第二次故障(产生归档 A2)
dmrman
RESTORE DATABASE '/home/dmdba/dm8/data/DAMENG_FOR_RES/dm.ini' FROM BACKUPSET '/home/dmdba/dm8/dm_bak/B1';
RECOVER DATABASE '/home/dmdba/dm8/data/DAMENG_FOR_RES/dm.ini' WITH ARCHIVEDIR '/home/dmdba/dm8/arch';
# 尝试指定第一次恢复后的 DB_MAGIC 进行恢复
RECOVER DATABASE '/home/dmdba/dm8/data/DAMENG_FOR_RES/dm.ini' WITH ARCHIVEDIR '/home/dmdba/dm8/arch' USE DB_MAGIC 226662883;
RMAN> RECOVER DATABASE '/home/dmdba/dm8/data/DAMENG_FOR_RES/dm.ini' WITH ARCHIVEDIR '/home/dmdba/dm8/arch' USE DB_MAGIC 226662883; ==============================Error Stack============================== DM-718: =======================================================================
2026-07-28 10:32:28.359 [ERROR] dmrman P0000003750 T0000000000000003750 rafil_collect_by_dsc_seqno failed, EP[0] rfil(/home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0xD8299E3_EP0_2026-07-28_10-18-17.log)->arch_seq(103288) > begin_seq(103287), buf4_restore(65535), return -718. 2026-07-28 10:32:28.359 [ERROR] dmrman P0000003750 T0000000000000003750 rarch_sync_process, rafil_collect_by_dsc_seqno failed, code=-718
使用 dmrachk 检查了归档目录下的文件信息
[dmdba@dm135 arch]$ ls ARCHIVE_LOCAL1_0x6278FD00_EP0_2026-07-28_10-11-32.log ARCHIVE_LOCAL1_0xD8299E3_EP0_2026-07-28_10-18-17.log ARCHIVE_LOCAL1_0xD8299E3_EP0_2026-07-28_10-30-22.log ARCHIVE_LOCAL1_0xD8299E3_EP0_2026-07-28_10-31-01.log [dmdba@dm135 arch]$ dmrachk f_type=1 f_path=/home/dmdba/dm8/arch rachk V8 the database pmnt_magic: 1821156463 Please, select one db_magic collected from /home/dmdba/dm8/arch. As follow: No.1 : 1652096256 The first file name: /home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0x6278FD00_EP0_2026-07-28_10-11-32.log, arch_lsn: 46435. The last file name: /home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0x6278FD00_EP0_2026-07-28_10-11-32.log, clsn: 547060. No.2 : 226662883 The first file name: /home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0xD8299E3_EP0_2026-07-28_10-18-17.log, arch_lsn: 547061. The last file name: /home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0xD8299E3_EP0_2026-07-28_10-31-01.log, clsn: 989480. select sequence number[1..N] or (Q)uit: 1 the database db_magic: 1652096256 /*******************************************************************/ 归档文件/home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0x6278FD00_EP0_2026-07-28_10-11-32.log明细. version : 0x7007 status : INACTIVE enc_flag : FALSE n_rpkgs : 100119 pmnt_magic : 1821156463 db_magic : 1652096256 src_db_magic : 1652096256 arch_lsn : 46435 arch_seq : 3169 clsn : 547060 next_seq : 103287 g_next_seq : 103287 file len : 410136576 file free : 410136576 dsc seqno : 0 dsc node : 1 create time : 2026-07-28 10:11:32.489342 time_zone:+08:00 close time : 2026-07-28 10:14:18.616814 time_zone:+08:00 llog first time : 1900-01-01 00:00:00.000000 time_zone:+08:00 llog last time : 1900-01-01 00:00:00.000000 time_zone:+08:00 /*******************************************************************/ 概要(节点[0]): 总计: 1 个文件 正确: 1 个文件 错误: 0 个文件 重复: 0 个文件 the rachk tool running cost 15542.813 ms, code:0 [dmdba@dm135 arch]$ dmrachk f_type=1 f_path=/home/dmdba/dm8/arch rachk V8 the database pmnt_magic: 1821156463 Please, select one db_magic collected from /home/dmdba/dm8/arch. As follow: No.1 : 1652096256 The first file name: /home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0x6278FD00_EP0_2026-07-28_10-11-32.log, arch_lsn: 46435. The last file name: /home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0x6278FD00_EP0_2026-07-28_10-11-32.log, clsn: 547060. No.2 : 226662883 The first file name: /home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0xD8299E3_EP0_2026-07-28_10-18-17.log, arch_lsn: 547061. The last file name: /home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0xD8299E3_EP0_2026-07-28_10-31-01.log, clsn: 989480. select sequence number[1..N] or (Q)uit: 2 the database db_magic: 226662883 /*******************************************************************/ 归档文件/home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0xD8299E3_EP0_2026-07-28_10-18-17.log明细. version : 0x7007 status : INACTIVE enc_flag : FALSE n_rpkgs : 32721 pmnt_magic : 1821156463 db_magic : 226662883 src_db_magic : 226662883 arch_lsn : 547061 arch_seq : 103288 clsn : 710661 next_seq : 136008 g_next_seq : 136008 file len : 134037504 file free : 134037504 dsc seqno : 0 dsc node : 1 create time : 2026-07-28 10:18:17.042133 time_zone:+08:00 close time : 2026-07-28 10:30:22.250285 time_zone:+08:00 llog first time : 1900-01-01 00:00:00.000000 time_zone:+08:00 llog last time : 1900-01-01 00:00:00.000000 time_zone:+08:00 /*******************************************************************/ /*******************************************************************/ 归档文件/home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0xD8299E3_EP0_2026-07-28_10-30-22.log明细. version : 0x7007 status : INACTIVE enc_flag : FALSE n_rpkgs : 32701 pmnt_magic : 1821156463 db_magic : 226662883 src_db_magic : 226662883 arch_lsn : 710662 arch_seq : 136009 clsn : 873993 next_seq : 168709 g_next_seq : 168709 file len : 133959680 file free : 133959680 dsc seqno : 0 dsc node : 1 create time : 2026-07-28 10:30:22.251274 time_zone:+08:00 close time : 2026-07-28 10:31:01.154399 time_zone:+08:00 llog first time : 1900-01-01 00:00:00.000000 time_zone:+08:00 llog last time : 1900-01-01 00:00:00.000000 time_zone:+08:00 /*******************************************************************/ /*******************************************************************/ 归档文件/home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0xD8299E3_EP0_2026-07-28_10-31-01.log明细. version : 0x7007 status : INACTIVE enc_flag : FALSE n_rpkgs : 23113 pmnt_magic : 1821156463 db_magic : 226662883 src_db_magic : 226662883 arch_lsn : 873994 arch_seq : 168710 clsn : 989480 next_seq : 191822 g_next_seq : 191822 file len : 94679040 file free : 94679040 dsc seqno : 0 dsc node : 1 create time : 2026-07-28 10:31:01.155466 time_zone:+08:00 close time : 2026-07-28 10:31:32.764437 time_zone:+08:00 llog first time : 1900-01-01 00:00:00.000000 time_zone:+08:00 llog last time : 1900-01-01 00:00:00.000000 time_zone:+08:00 /*******************************************************************/ 概要(节点[0]): 总计: 3 个文件 正确: 3 个文件 错误: 0 个文件 重复: 0 个文件 the rachk tool running cost 1006.203 ms, code:0 [dmdba@dm135 arch]$
疑问:
本来是两台机器在实验出现这个问题,然后就安装官方文档步骤走了一遍,还是这个错误,求大佬指点。

给下自己的解决方案
通过 dmmdf工具修改A2归档日志的魔数改成A1,恢复就不用再指定魔数了,解决这个问题。
eg:
[dmdba@dm135 arch]$ dmmdf TYPE=2 FILE=/home/dmdba/dm8/arch/ARCHIVE_LOCAL1_0xD8299E3_EP0_2026-07-28_10-31-01.log dmmdf V8 ********************************************************** 1 sig = DMALOG 2 ver = 7007 3 chksum = 3602694825 4 sta = 1 5 n_magic = 0 6 db_magic = 226662883 7 len = 94679040 8 free = 94679040 9 clsn = 989480 10 clsn_fil = 0 11 clsn_off = 4096 12 pemnt_magic = 1821156463 13 fil_id = 0 15 next_seq = 191822 16 g_next_seq = 191822 17 arch_lsn = 873994 18 arch_seq = 168710 19 dbversion = 0x7000c 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) 27 l_term_id = 0 28 term_id = 0 29 c_seqno = 0 30 c_lsn = 0 31 rpkg_crc_stand = 1 ********************************************************** 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 next_seq(15) or g_next_seq(16) or p_db_magic(22) or n_apply_ep(23). Please input the num which one you want to change, q to quit: 6 Input the new value: 1652096256 ********************************************************** 1 sig = DMALOG 2 ver = 7007 3 chksum = 3108415050 4 sta = 1 5 n_magic = 0 6 db_magic = 1652096256 7 len = 94679040 8 free = 94679040 9 clsn = 989480 10 clsn_fil = 0 11 clsn_off = 4096 12 pemnt_magic = 1821156463 13 fil_id = 0 15 next_seq = 191822 16 g_next_seq = 191822 17 arch_lsn = 873994 18 arch_seq = 168710 19 dbversion = 0x7000c 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) 27 l_term_id = 0 28 term_id = 0 29 c_seqno = 0 30 c_lsn = 0 31 rpkg_crc_stand = 1 ********************************************************** Do you want to quit and save the change to file (y/n): y Save to file success!但是按这个技术文档做不通,我看了下数据库安装带的文档也是和现在官网一致的,还是很好奇为什么arch_seq(103288) > begin_seq(103287),不应该从103288开始吗。我还做了个实验,D1脱机归档,完全备份生成B1,然后打开D1生成归档后A1再关机。把最后一个归档日志传输到Host2,在host2 上先通过B1还原,然后通过A1还原,也是报一样的错误,需要再复制上一个归档(我这里实际操作图方便全部复制过去了),然后再恢复就成功,感觉是一样的问题,有人按官方实验做成功了吗?