ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

达梦数据库-报错-13-[-108]:打开重做日志失败

达梦数据库-报错-13-[-108]:打开重做日志失败 目录一、环境信息二、问题描述三、问题分析1、重做日志权限2、重做日志损坏3、归档容量到达上限自动清理需备份归档被删除四、模拟实验1、归档配置2、备份归档多次3、日志报错4、线程映射5、归档配置修改6、备份归档五、问题解决一、环境信息名称值CPUx86操作系统KylinV10DM版本DM Database Server 64 V8二、问题描述备份归档文件时提示[-108]:打开重做日志失败。三、问题分析1、重做日志权限权限正常。2、重做日志损坏1全备正常开库全备选的是一致性备份会备份数据文件redo日志如果损坏全备应该也会失败。2业务正常增删改需要写redo如果损坏会报错。3、归档容量到达上限自动清理需备份归档被删除备份归档文件时SQL执行线程2407290和异步归档线程2407243会同时工作异步归档线程由于归档容量到达上限清理了归档备份线程需要备份清理的归档没有找到提示失败从返回错误打开重做日志失败确实不直观我们来模拟一下。由于我用的是新版本验证的客户用的是老版本日志的输出信息有一定差异。四、模拟实验1、归档配置[rootdw01:/root]# cat /opt/Dm8/Data/DAMENG/dmarch.ini [ARCHIVE_LOCAL1] ARCH_TYPE LOCAL ARCH_DEST /opt/Dm8/Data/Arch ARCH_FILE_SIZE 256 ARCH_SPACE_LIMIT 1024达梦开启归档的步骤这里就不多说了。2、备份归档多次16:25:11 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_06; 操作已执行 已用时间: 00:00:04.483. 执行号:803. 16:25:19 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_07; 操作已执行 已用时间: 00:00:04.262. 执行号:804. 16:25:27 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_08; 操作已执行 已用时间: 00:00:04.265. 执行号:805. 16:25:33 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_09; BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_09; [-108]:打开重做日志失败. 已用时间: 00:00:03.121. 执行号:0.虚机验证数据库没有任何压力。问题复现。3、日志报错2026-08-07 16:25:37.019 [INFO] database P0000003322 T0000000000000007967 rfil[/opt/Dm8/Data/DAMENG/DAMENG01.log], first local_rpkg_seqno:3312, global_rpkg_seqno:3312, first_startup:0, db_open_id:7, max_lsn:50804 2026-08-07 16:25:38.107 [INFO] database P0000003322 T0000000000000003397 Reach space limit of archive file, delete archive log file, db_magic:1936255792, src_db_magic:1936255792, arch_lsn:50769, arch_seq:3292, clsn:50776, next_seq:3294, file_path: /opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-07.log 2026-08-07 16:25:38.107 [INFO] database P0000003322 T0000000000000003397 rfil_close_low set arch rfil[/opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-07.log]s sta to inactive, l_next_seq 3294, g_next_seq 3294, clsn 50776, handle 20, free16384, len16384 2026-08-07 16:25:38.108 [INFO] database P0000003322 T0000000000000003397 Reach space limit of archive file, delete archive log file, db_magic:1936255792, src_db_magic:1936255792, arch_lsn:50776, arch_seq:3295, clsn:50783, next_seq:3297, file_path: /opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-15.log 2026-08-07 16:25:38.108 [INFO] database P0000003322 T0000000000000003397 rfil_close_low set arch rfil[/opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-15.log]s sta to inactive, l_next_seq 3297, g_next_seq 3297, clsn 50783, handle 20, free16384, len16384 2026-08-07 16:25:38.109 [INFO] database P0000003322 T0000000000000003397 Reach space limit of archive file, delete archive log file, db_magic:1936255792, src_db_magic:1936255792, arch_lsn:50783, arch_seq:3298, clsn:50790, next_seq:3300, file_path: /opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-26.log 2026-08-07 16:25:38.109 [INFO] database P0000003322 T0000000000000003397 rfil_close_low set arch rfil[/opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-26.log]s sta to inactive, l_next_seq 3300, g_next_seq 3300, clsn 50790, handle 20, free16384, len16384 2026-08-07 16:25:38.111 [INFO] database P0000003322 T0000000000000003397 Reach space limit of archive file, delete archive log file, db_magic:1936255792, src_db_magic:1936255792, arch_lsn:50790, arch_seq:3301, clsn:50796, next_seq:3303, file_path: /opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-35.log 2026-08-07 16:25:38.111 [INFO] database P0000003322 T0000000000000003397 rfil_close_low set arch rfil[/opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-35.log]s sta to inactive, l_next_seq 3303, g_next_seq 3303, clsn 50796, handle 20, free16384, len16384 2026-08-07 16:25:38.112 [INFO] database P0000003322 T0000000000000003397 rafil_file_create [/opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_16-25-38.log] start 2026-08-07 16:25:38.114 [INFO] database P0000003322 T0000000000000003397 rfil_close_low set arch rfil[/opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_16-25-38.log]s sta to inactive, l_next_seq 2457, g_next_seq 2457, clsn 0, handle 20, free4096, len268435456 2026-08-07 16:25:38.115 [INFO] database P0000003322 T0000000000000003397 rafil_file_create [/opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_16-25-38.log] success, handle 20 2026-08-07 16:25:38.115 [INFO] database P0000003322 T0000000000000003397 rafil_file_init, rac_seqno:0, create new file and set last_arch_fil:/opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_16-25-38.log! 2026-08-07 16:25:38.117 [INFO] database P0000003322 T0000000000000003397 rafil_close_with_trunc file[/opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_16-25-38.log] to 16384 len, g_next_seq:3323, ret 1! 2026-08-07 16:25:38.117 [INFO] database P0000003322 T0000000000000003397 rfil_close_low set arch rfil[/opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_16-25-38.log]s sta to inactive, l_next_seq 3323, g_next_seq 3323, clsn 50830, handle 20, free16384, len16384 2026-08-07 16:25:39.126 [ERROR] database P0000003322 T0000000000000007967 os_file_open_low_real error! desc: No such file or directory, path: /opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-07.log, code: 2 2026-08-07 16:25:39.126 [ERROR] database P0000003322 T0000000000000007967 os_file_open_low_real error! desc: No such file or directory, path: /opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-07.log, code: 2 2026-08-07 16:25:39.126 [ERROR] database P0000003322 T0000000000000007967 rfil_open [/opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-07.log] failed 2026-08-07 16:25:39.126 [INFO] database P0000003322 T0000000000000007967 arch file(/opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-07.log) open fail, free:4096, len:134217728, arch_seq:0, next_seq:0T0000000000000003397 Reach space limit of archive file, delete archive log file, db_magic:1936255792, src_db_magic:1936255792, arch_lsn:50769, arch_seq:3292, clsn:50776, next_seq:3294, file_path: /opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-07.log异步归档线程发现到达归档文件容量上限清理了日志 /opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-07.log。T0000000000000007967 os_file_open_low_real error! desc: No such file or directory, path: /opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-07.log, code: 2SQL执行线程需日志 /opt/Dm8/Data/Arch/ARCHIVE_LOCAL1_0x7368EB30_EP0_2026-08-07_15-07-07.log由于删除导致打开失败。新版本的日志内容更加容易我们理解但错误内容确实容易使人误解其实提示归档日志打开失败更容易让人理解。4、线程映射16:26:54 SYSDBALOCALHOST:5236 SQL SELECT * FROM V$THREADS WHERE ID IN (7967,3397); ID NAME START_TIME THREAD_DESC SESS_ID PROCESSOR_ID WAIT_SEQ WAIT_STATUS WAIT_TIME -------------------- -------------- -------------------------- ----------------------------- -------------------- ------------ ----------- --------------- ----------- 7967 dm_sql_thd 2026-08-07 16:25:11.000000 User session thread 140675795920120 65535 2 NOTHING TO WAIT -1 3397 dm_rsyswrk_thd 2026-08-07 15:06:52.000000 Asynchronous archiving thread NULL 65535 0 NOTHING TO WAIT -1 已用时间: 3.782(毫秒). 执行号:808.3397是异步归档线程。7967是SQL执行线程。5、归档配置修改[rootdw01:/root]# cat /opt/Dm8/Data/DAMENG/dmarch.ini [ARCHIVE_LOCAL1] ARCH_TYPE LOCAL ARCH_DEST /opt/Dm8/Data/Arch ARCH_FILE_SIZE 1024 ARCH_SPACE_LIMIT 20480将ARCH_FILE_SIZE、ARCH_SPACE_LIMIT适当提高。重启数据库。6、备份归档16:34:41 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_01; 操作已执行 已用时间: 00:00:04.407. 执行号:603. 16:34:49 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_02; 操作已执行 已用时间: 00:00:04.284. 执行号:604. 16:34:55 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_04; 操作已执行 已用时间: 00:00:04.279. 执行号:605. 16:35:02 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_03; 操作已执行 已用时间: 00:00:04.279. 执行号:606. 16:35:10 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_05; 操作已执行 已用时间: 00:00:04.300. 执行号:607. 16:35:16 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_06; 操作已执行 已用时间: 00:00:04.335. 执行号:608. 16:35:23 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_07; 操作已执行 已用时间: 00:00:04.294. 执行号:609. 16:35:30 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_08; 操作已执行 已用时间: 00:00:04.304. 执行号:610. 16:35:37 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_09; 操作已执行 已用时间: 00:00:04.299. 执行号:611. 16:35:44 SYSDBALOCALHOST:5236 SQL BACKUP ARCHIVE LOG ALL BACKUPSET DM_ARCH_BAK_10; 操作已执行 已用时间: 00:00:04.275. 执行号:612.一次没有报错说明解决方法有效。五、问题解决问题的根源在于达梦的联机备份归档机制与自动归档清理策略产生了冲突导致备份所需的归档日志文件丢失将ARCH_SPACE_LIMIT适当提高避免异步归档线程和SQL执行线程冲突的概率。
返回列表