背景:
项目中使用为符合信创要求,数据库使用DM8,目前在备份恢复的测试验证阶段,备份目前没问题,需要做恢复验证。
思路:
通过之前的的备份将数据恢复。
1、通过监视器关闭自动拉起的功能,关闭数据库服务。
2、数据库恢复(在有备份文件的节点上操作)。
3、通过监视器打开自动拉起的功能,打开数据库服务。
步骤:
1、登录到监视器服务的节点,进行关闭数据库自动拉起的功能,关闭数据库服务(这里会关闭所有节点的数据库服务)。
为什么关?不关闭数据库自动拉起功能,在服务关闭,被检测到后会自动拉起,恢复就失败了。库级、表空间的还原和恢复不支持联机恢复,只支持脱机还原恢复。
主要命令如下,按实际情况到目录:
cd /data/dmdbms/bin
./dmcssm dmcssm.ini
help
show
set GRP_CSS auto restart off
ep stop GRP_DSC
ps -ef | grep dmserver
[dmdba@dsc1:/data/dmdbms/bin]$ cd /data/dmdbms/bin
[dmdba@dsc1:/data/dmdbms/bin]$ ./dmcssm dmcssm.ini
[monitor] [2025-11-03 14:48:56:902] CSS MONITOR V8
[monitor] [2025-11-03 14:49:04:114] CSS MONITOR SYSTEM IS READY.
[monitor] [2025-11-03 14:49:04:127] Wait CSS Control Node choosed...
[monitor] [2025-11-03 14:49:05:232] Wait CSS Control Node choosed succeed.
help
DMCSSM使用说明:
SHOW命令中可以通过指定group_name获取指定组的信息,如果没有指定,则显示所有组的信息
---------------------------------------------------------------------------------------------
1.help --显示帮助
2.show [group_name] --显示指定的组信息
3.show config --显示配置文件信息
4.show monitor --显示当前连接的监视器信息
5.set group_name auto restart on --打开指定组的自动拉起功能(只修改dmcss内存值)
6.set group_name auto restart off --关闭指定组的自动拉起功能(只修改dmcss内存值)
7.open force group_name --强制OPEN指定的ASM或DB组
8.ep startup group_name --启动指定的ASM或DB组
9.ep stop group_name --停止指定的ASM或DB组
10.ep halt group_name.ep_name --强制退出指定组的指定节点
11.extend node --扩展集群节点
12.ep crash group_name.ep_name --设定指定节点故障
13.check crash over group_name --检查指定组故障处理是否结束
14.transfer one_node/full --转换DSC集群模式
15.relocate dbgroup_name.seqno --在DSC ONE_NODE模式下,重定位旧节点上的数据库服务到指定节点上
16.set asm/db restart_cmd css_name.cmd_str --设置指定CSS的ASM/DB节点的自动拉起命令(只修改dmcss內存值)
17.set asm/db restart_itvl css_name.itvl_num --设置指定CSS的ASM/DB节点的自动拉起时间间隔(只修改dmcss內存值)
17.exit --退出监视器
---------------------------------------------------------------------------------------------
show
monitor current time:2025-11-03 14:49:46, n_group:3
=================== group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 0] ========================================
DSC_MODE = FULL
[CSS1] auto check = TRUE, global info:
[ASM1] auto restart = TRUE
[DSC1] auto restart = TRUE
[CSS2] auto check = TRUE, global info:
[ASM2] auto restart = TRUE
[DSC2] auto restart = TRUE
[CSS3] auto check = TRUE, global info:
[ASM3] auto restart = TRUE
[DSC3] auto restart = TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid pid ts
2025-11-03 14:49:45 CSS1 0 5336 Control Node OPEN WORKING OK TRUE 47433439 151992 47694190
2025-11-03 14:49:45 CSS2 1 5336 Normal Node OPEN WORKING OK TRUE 15080 3821 270834
2025-11-03 14:49:45 CSS3 2 5336 Normal Node OPEN WORKING OK TRUE 49515877 162955 49772275
=================== group[name = GRP_ASM, seq = 1, type = ASM, Control Node = 0] ========================================
n_ok_ep = 3
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)
(2, 2)
sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL
crash process over flag is TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid pid ts
2025-11-03 14:49:45 ASM1 0 5436 Control Node OPEN WORKING OK TRUE 47446913 152050 47707633
2025-11-03 14:49:45 ASM2 1 5436 Normal Node OPEN WORKING OK TRUE 23773 4134 279506
2025-11-03 14:49:45 ASM3 2 5436 Normal Node OPEN WORKING OK TRUE 49529340 163012 49785707
=================== group[name = GRP_DSC, seq = 2, type = DB, Control Node = 0] ========================================
n_ok_ep = 3
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)
(2, 2)
sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL
crash process over flag is TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid pid ts
2025-11-03 14:49:45 DSC1 0 15236 Control Node OPEN WORKING OK TRUE 311758457 292534 311760368
2025-11-03 14:49:45 DSC2 1 15236 Normal Node OPEN WORKING OK TRUE 219017772 50474 219019672
2025-11-03 14:49:45 DSC3 2 15236 Normal Node OPEN WORKING OK TRUE 311902871 309345 311904761
==================================================================================================================
set GRP_CSS auto restart off
[monitor] [2025-11-03 14:50:54:844] CSS类型的组不允许执行SET AUTO RESTART命令
set GRP_DSC auto restart off
[monitor] [2025-11-03 14:51:18:007] 通知CSS(seqno:0)关闭节点(DSC1)的自动拉起功能
[monitor] [2025-11-03 14:51:18:064] 通知CSS(seqno:0)关闭节点(DSC1)的自动拉起功能成功
[monitor] [2025-11-03 14:51:18:066] 通知CSS(seqno:1)关闭节点(DSC2)的自动拉起功能
[monitor] [2025-11-03 14:51:18:118] 通知CSS(seqno:1)关闭节点(DSC2)的自动拉起功能成功
[monitor] [2025-11-03 14:51:18:122] 通知CSS(seqno:2)关闭节点(DSC3)的自动拉起功能
[monitor] [2025-11-03 14:51:18:174] 通知CSS(seqno:2)关闭节点(DSC3)的自动拉起功能成功
[monitor] [2025-11-03 14:51:18:176] 通知当前活动的CSS执行清理操作
[monitor] [2025-11-03 14:51:19:078] 清理CSS(0)请求成功
[monitor] [2025-11-03 14:51:19:132] 清理CSS(1)请求成功
[monitor] [2025-11-03 14:51:19:184] 清理CSS(2)请求成功
[monitor] [2025-11-03 14:51:19:186] 关闭CSS自动拉起功能成功
ep stop GRP_DSC
[monitor] [2025-11-03 14:52:12:678] 组(GRP_DSC)中节点对应的CSS自动拉起标记已经处于关闭状态
[monitor] [2025-11-03 14:52:12:681] 通知CSS(seqno:0)执行EP STOP(GRP_DSC)
[monitor] [2025-11-03 14:52:23:590] 通知当前活动的CSS执行清理操作
[monitor] [2025-11-03 14:52:24:595] 清理CSS(0)请求成功
[monitor] [2025-11-03 14:52:24:647] 清理CSS(1)请求成功
[monitor] [2025-11-03 14:52:24:699] 清理CSS(2)请求成功
[monitor] [2025-11-03 14:52:24:701] 命令EP STOP GRP_DSC执行成功
[dmdba@dsc1:/data/dmdbms/bin]$ ps -ef | grep dmserver
dmdba 297269 296132 0 14:52 pts/0 00:00:00 grep dmserver
[dmdba@dsc1:/data/dmdbms/bin]$
2、数据库恢复(在有备份文件的节点上操作)
主要命令如下,按实际情况到目录:
cd /data/dmdbms/bin
./dmrman DCR_INI=/data/dmdsc/dmdcr.ini
checkpoint(100);
RESTORE DATABASE '/data/dmdsc/dsc3/dm.ini' FROM BACKUPSET '/dmbak/DAMENG/DB_DSC_FULL_2025_11_03_14_41_55';
RECOVER DATABASE '/data/dmdsc/dsc3/dm.ini' FROM BACKUPSET '/dmbak/DAMENG/DB_DSC_FULL_2025_11_03_14_41_55';
#–恢复数据库到指定的时间点2025-11-03 15:12 (二选一)
RECOVER DATABASE '/data/dmdsc/dsc3/dm.ini' with archivedir '/dmbak/dmarch' until time '2025-11-03 15:12';
RECOVER DATABASE '/data/dmdsc/dsc3/dm.ini' UPDATE DB_MAGIC;
[dmdba@dsc3:/dmbak]$ cd /dmbak/DAMENG
[dmdba@dsc3:/dmbak/DAMENG]$ ls -lrt
总用量 36
drwxr-xr-x 2 dmdba dinstall 4096 10月 30 11:32 DB_DSC_FULL_2025_10_30_11_32_17
drwxr-xr-x 2 dmdba dinstall 4096 10月 30 11:36 DB_DSC_FULL_2025_10_30_11_35_57
drwxr-xr-x 2 dmdba dinstall 4096 10月 30 11:53 DB_DSC_FULL_2025_10_30_11_53_42
drwxr-xr-x 2 dmdba dinstall 4096 10月 30 16:37 DB_DSC_FULL_2025_10_30_16_37_47
drwxr-xr-x 2 dmdba dinstall 4096 10月 31 08:53 DB_DSC_INCREMENT_2025_10_31_08_53_21
drwxr-xr-x 2 dmdba dinstall 4096 11月 1 00:31 DB_DSC_FULL_2025_11_01_00_30_54
drwxr-xr-x 2 dmdba dinstall 4096 11月 2 01:01 DB_DSC_INCREMENT_2025_11_02_01_00_55
drwxr-xr-x 2 dmdba dinstall 4096 11月 3 01:01 DB_DSC_INCREMENT_2025_11_03_01_00_57
drwxr-xr-x 2 dmdba dinstall 4096 11月 3 14:42 DB_DSC_FULL_2025_11_03_14_41_55
[dmdba@dsc3:/dmbak/DAMENG]$ cd /data/dmdbms/bin
[dmdba@dsc3:/data/dmdbms/bin]$ ./dmrman DCR_INI=/data/dmdsc/dmdcr.ini
dmrman V8
RMAN> RESTORE DATABASE '/data/dmdsc/dsc3/dm.ini' FROM BACKUPSET '/dmbak/DAMENG/DB_DSC_FULL_2025_11_03_14_41_55';
RESTORE DATABASE '/data/dmdsc/dsc3/dm.ini' FROM BACKUPSET '/dmbak/DAMENG/DB_DSC_FULL_2025_11_03_14_41_55';
file dm.key not found, use default license!
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:04][Remaining:00:00:00]
restore successfully.
time used: 00:00:18.131
#–恢复数据库到最新备份时刻
RMAN> RECOVER DATABASE '/data/dmdsc/dsc3/dm.ini' FROM BACKUPSET '/dmbak/DAMENG/DB_DSC_FULL_2025_11_03_14_41_55';
RECOVER DATABASE '/data/dmdsc/dsc3/dm.ini' FROM BACKUPSET '/dmbak/DAMENG/DB_DSC_FULL_2025_11_03_14_41_55';
[Percent:100.00%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00]
recover successfully!
time used: 00:00:22.230
#–恢复数据库到指定的时间点2025-11-03 15:12(以上二选一)
RMAN> RECOVER DATABASE '/data/dmdsc/dsc3/dm.ini' with archivedir '/dmbak/dmarch' until time '2025-11-03 15:12';
RECOVER DATABASE '/data/dmdsc/dsc3/dm.ini' with archivedir '/dmbak/dmarch' until time '2025-11-03 15:12';
[Percent:100.00%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00]
recover successfully!
time used: 00:00:21.110
RMAN> RECOVER DATABASE '/data/dmdsc/dsc3/dm.ini' UPDATE DB_MAGIC;
RECOVER DATABASE '/data/dmdsc/dsc3/dm.ini' UPDATE DB_MAGIC;
recover successfully!
time used: 00:00:16.219
3、通过监视器打开打开数据库服务。
[dmdba@dsc1:/data/dmdbms/bin]$ ./dmcssm dmcssm.ini
[monitor] [2025-11-03 15:05:02:210] CSS MONITOR V8
[monitor] [2025-11-03 15:05:06:211] CSS MONITOR SYSTEM IS READY.
[monitor] [2025-11-03 15:05:06:225] Wait CSS Control Node choosed...
[monitor] [2025-11-03 15:05:07:327] Wait CSS Control Node choosed succeed.
show
monitor current time:2025-11-03 15:05:12, n_group:3
=================== group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 0] ========================================
DSC_MODE = FULL
[CSS1] auto check = TRUE, global info:
[ASM1] auto restart = TRUE
[DSC1] auto restart = FALSE
[CSS2] auto check = TRUE, global info:
[ASM2] auto restart = TRUE
[DSC2] auto restart = FALSE
[CSS3] auto check = TRUE, global info:
[ASM3] auto restart = TRUE
[DSC3] auto restart = FALSE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid pid ts
2025-11-03 15:05:11 CSS1 0 5336 Control Node OPEN WORKING OK TRUE 47433439 151992 47695114
2025-11-03 15:05:11 CSS2 1 5336 Normal Node OPEN WORKING OK TRUE 15080 3821 271758
2025-11-03 15:05:11 CSS3 2 5336 Normal Node OPEN WORKING OK TRUE 49515877 162955 49773199
=================== group[name = GRP_ASM, seq = 1, type = ASM, Control Node = 0] ========================================
n_ok_ep = 3
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)
(2, 2)
sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL
crash process over flag is TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid pid ts
2025-11-03 15:05:11 ASM1 0 5436 Control Node OPEN WORKING OK TRUE 47446913 152050 47708557
2025-11-03 15:05:11 ASM2 1 5436 Normal Node OPEN WORKING OK TRUE 23773 4134 280430
2025-11-03 15:05:11 ASM3 2 5436 Normal Node OPEN WORKING OK TRUE 49529340 163012 49786631
=================== group[name = GRP_DSC, seq = 2, type = DB, Control Node = 255] ========================================
n_ok_ep = 3
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)
(2, 2)
sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL
crash process over flag is FALSE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid pid ts
2025-11-03 15:05:11 DSC1 0 15236 Normal Node SHUTDOWN SHUTDOWN OK FALSE 311758457 292534 311760525
2025-11-03 15:05:11 DSC2 1 15236 Normal Node SHUTDOWN SHUTDOWN OK FALSE 219017772 50474 219019831
2025-11-03 15:05:11 DSC3 2 15236 Normal Node SHUTDOWN SHUTDOWN OK FALSE 311902871 309345 311904920
==================================================================================================================
help
DMCSSM使用说明:
SHOW命令中可以通过指定group_name获取指定组的信息,如果没有指定,则显示所有组的信息
---------------------------------------------------------------------------------------------
1.help --显示帮助
2.show [group_name] --显示指定的组信息
3.show config --显示配置文件信息
4.show monitor --显示当前连接的监视器信息
5.set group_name auto restart on --打开指定组的自动拉起功能(只修改dmcss内存值)
6.set group_name auto restart off --关闭指定组的自动拉起功能(只修改dmcss内存值)
7.open force group_name --强制OPEN指定的ASM或DB组
8.ep startup group_name --启动指定的ASM或DB组
9.ep stop group_name --停止指定的ASM或DB组
10.ep halt group_name.ep_name --强制退出指定组的指定节点
11.extend node --扩展集群节点
12.ep crash group_name.ep_name --设定指定节点故障
13.check crash over group_name --检查指定组故障处理是否结束
14.transfer one_node/full --转换DSC集群模式
15.relocate dbgroup_name.seqno --在DSC ONE_NODE模式下,重定位旧节点上的数据库服务到指定节点上
16.set asm/db restart_cmd css_name.cmd_str --设置指定CSS的ASM/DB节点的自动拉起命令(只修改dmcss內存值)
17.set asm/db restart_itvl css_name.itvl_num --设置指定CSS的ASM/DB节点的自动拉起时间间隔(只修改dmcss內存值)
17.exit --退出监视器
---------------------------------------------------------------------------------------------
ep startup GRP_DSC
[monitor] [2025-11-03 15:05:40:595] 通知CSS(seqno:0)执行EP STARTUP(DSC1)
[monitor] [2025-11-03 15:05:50:853] 通知CSS(seqno:0)执行EP STARTUP(DSC1)成功
[monitor] [2025-11-03 15:05:50:856] 通知CSS(seqno:1)执行EP STARTUP(DSC2)
[monitor] [2025-11-03 15:06:01:014] 通知CSS(seqno:1)执行EP STARTUP(DSC2)成功
[monitor] [2025-11-03 15:06:01:016] 通知CSS(seqno:2)执行EP STARTUP(DSC3)
[monitor] [2025-11-03 15:06:11:175] 通知CSS(seqno:2)执行EP STARTUP(DSC3)成功
[monitor] [2025-11-03 15:06:11:177] 通知CSS(seqno:0)打开节点(DSC1)的自动拉起功能
[monitor] [2025-11-03 15:06:11:229] 通知CSS(seqno:0)打开节点(DSC1)的自动拉起功能成功
[monitor] [2025-11-03 15:06:11:231] 通知CSS(seqno:1)打开节点(DSC2)的自动拉起功能
[monitor] [2025-11-03 15:06:11:282] 通知CSS(seqno:1)打开节点(DSC2)的自动拉起功能成功
[monitor] [2025-11-03 15:06:11:284] 通知CSS(seqno:2)打开节点(DSC3)的自动拉起功能
[monitor] [2025-11-03 15:06:11:336] 通知CSS(seqno:2)打开节点(DSC3)的自动拉起功能成功
[monitor] [2025-11-03 15:06:11:338] 打开CSS自动拉起功能成功
[monitor] [2025-11-03 15:06:11:340] 通知当前活动的CSS执行清理操作
[monitor] [2025-11-03 15:06:12:243] 清理CSS(0)请求成功
[monitor] [2025-11-03 15:06:12:295] 清理CSS(1)请求成功
[monitor] [2025-11-03 15:06:12:347] 清理CSS(2)请求成功
[monitor] [2025-11-03 15:06:12:349] 命令EP STARTUP GRP_DSC执行成功
[CSS1] [2025-11-03 15:06:13:726] [DB]: 设置EP DSC1[0]为控制节点
[CSS1] [2025-11-03 15:06:13:728] [DB]: 设置命令[START NOTIFY], 目标站点 DSC1[0], 命令序号[438]
[CSS1] [2025-11-03 15:06:14:745] [DB]: 设置命令[DCR_LOAD], 目标站点 DSC1[0], 命令序号[439]
[CSS1] [2025-11-03 15:06:14:746] [DB]: 设置命令[DCR_LOAD], 目标站点 DSC2[1], 命令序号[440]
[CSS1] [2025-11-03 15:06:14:764] [DB]: 设置命令[DCR_LOAD], 目标站点 DSC3[2], 命令序号[441]
[CSS1] [2025-11-03 15:06:14:883] [DB]: 设置命令[NONE], 目标站点 DSC1[0], 命令序号[0]
[CSS1] [2025-11-03 15:06:14:884] [DB]: 设置命令[NONE], 目标站点 DSC2[1], 命令序号[0]
[CSS1] [2025-11-03 15:06:14:902] [DB]: 设置命令[NONE], 目标站点 DSC3[2], 命令序号[0]
[CSS1] [2025-11-03 15:06:14:919] [DB]: 设置命令[EP START], 目标站点 DSC1[0], 命令序号[443]
[CSS1] [2025-11-03 15:06:15:341] [DB]: 设置命令[NONE], 目标站点 DSC1[0], 命令序号[0]
[CSS1] [2025-11-03 15:06:15:444] [DB]: 设置命令[EP START], 目标站点 DSC2[1], 命令序号[445]
[CSS1] [2025-11-03 15:06:15:445] [DB]: 设置命令[EP START], 目标站点 DSC3[2], 命令序号[446]
[CSS1] [2025-11-03 15:06:15:668] [DB]: 设置命令[NONE], 目标站点 DSC2[1], 命令序号[0]
[CSS1] [2025-11-03 15:06:15:669] [DB]: 设置命令[NONE], 目标站点 DSC3[2], 命令序号[0]
[CSS1] [2025-11-03 15:06:15:688] [DB]: 设置命令[EP START2], 目标站点 DSC1[0], 命令序号[449]
[CSS1] [2025-11-03 15:06:16:313] [DB]: 设置命令[NONE], 目标站点 DSC1[0], 命令序号[0]
[CSS1] [2025-11-03 15:06:16:416] [DB]: 设置命令[EP START2], 目标站点 DSC2[1], 命令序号[451]
[CSS1] [2025-11-03 15:06:16:417] [DB]: 设置命令[EP START2], 目标站点 DSC3[2], 命令序号[452]
[CSS1] [2025-11-03 15:06:16:945] [DB]: 设置命令[NONE], 目标站点 DSC2[1], 命令序号[0]
[CSS1] [2025-11-03 15:06:16:946] [DB]: 设置命令[NONE], 目标站点 DSC3[2], 命令序号[0]
[CSS1] [2025-11-03 15:06:17:066] [DB]: 设置命令[EP OPEN], 目标站点 DSC1[0], 命令序号[455]
[CSS1] [2025-11-03 15:06:17:068] [DB]: 设置命令[EP OPEN], 目标站点 DSC2[1], 命令序号[456]
[CSS1] [2025-11-03 15:06:17:086] [DB]: 设置命令[EP OPEN], 目标站点 DSC3[2], 命令序号[457]
[CSS1] [2025-11-03 15:06:17:205] [DB]: 设置命令[NONE], 目标站点 DSC1[0], 命令序号[0]
[CSS1] [2025-11-03 15:06:17:206] [DB]: 设置命令[NONE], 目标站点 DSC2[1], 命令序号[0]
[CSS1] [2025-11-03 15:06:17:224] [DB]: 设置命令[NONE], 目标站点 DSC3[2], 命令序号[0]
[CSS1] [2025-11-03 15:06:17:239] [DB]: 设置命令[EP REAL OPEN], 目标站点 DSC1[0], 命令序号[459]
[CSS1] [2025-11-03 15:06:17:256] [DB]: 设置命令[EP REAL OPEN], 目标站点 DSC2[1], 命令序号[460]
[CSS1] [2025-11-03 15:06:17:273] [DB]: 设置命令[EP REAL OPEN], 目标站点 DSC3[2], 命令序号[461]
[CSS1] [2025-11-03 15:06:17:391] [DB]: 设置命令[NONE], 目标站点 DSC1[0], 命令序号[0]
[CSS1] [2025-11-03 15:06:18:318] [DB]: 设置命令[NONE], 目标站点 DSC2[1], 命令序号[0]
[CSS1] [2025-11-03 15:06:18:320] [DB]: 设置命令[NONE], 目标站点 DSC3[2], 命令序号[0]
验证截图:
备份前操作:
1、新建数据表,并插入数据

2、手动调用备份任务

3、查看备份文件是否在

备份后操作:
1、删除测试的数据表


恢复后验证:
恢复成功截图:



数据恢复,验证成功。

总结
重点注意(归档日志不完整):

解决办法:
checkpoint(100);
在达梦数据库中,
checkpoint(100);命令用于手动触发一次“完全检查点”,其主要作用是将内存缓冲区(Buffer)中所有已修改但尚未写入磁盘的数据页(即“脏页”)强制刷新到数据文件中,并更新检查点LSN(CKPT_LSN)等信息。详细解释
1. 基本作用
- 强制刷新脏页到磁盘:达梦数据库在运行时,很多修改操作不会立即写入数据文件,而是先存在内存中,等特定时机(如自动检查点、手动检查点、数据库关闭等)才批量写入磁盘。
- 确保数据一致性:执行
checkpoint(100)后,内存中的脏页全部落盘,保证数据库在物理上的一致状态。- 更新检查点LSN(CKPT_LSN):CKPT_LSN 记录了已经安全写入磁盘的最新事务点。数据库恢复时,只需重做 CKPT_LSN 之后的日志,从而加快恢复速度,减少日志重做量。
2. “100”参数的含义
100代表执行“完全检查点”,即把所有脏页都写入磁盘。在达梦中,checkpoint 的类型和执行强度可以通过参数控制,100表示强制执行一次完全检查点,确保所有脏页都落盘。3. 典型应用场景
- 解决“归档日志不连续”错误
在联机备份时,如果出现“[-718]:收集到的归档日志不连续”错误,通常是因为归档日志中缺失部分LSN记录,数据库无法保证备份后的数据可以通过日志恢复到一致状态。执行checkpoint(100);会刷新 CKPT_LSN,使数据库从新的检查点开始,不再依赖缺失的日志,从而让备份得以继续执行11113。- 保障备份/恢复安全
联机备份时,为确保数据一致性,系统会检查从 CKPT_LSN 到备份结束时的归档日志是否完整。如果日志不连续,备份将失败。通过执行checkpoint(100);,可以将 CKPT_LSN 推进到最新位置,降低对缺失日志的依赖,从而成功完成备份11。- 手动刷脏页
在需要确保数据持久性、减少故障恢复时间、释放日志空间等场景下,也可手动执行checkpoint(100);。小结
checkpoint(100);是达梦数据库中强制执行完全检查点的命令,用于将所有内存脏页写入磁盘,并推进检查点LSN,保障数据一致性、减少恢复所需日志、解决归档不连续等问题,是备份与恢复中常用的关键操作。

1576

被折叠的 条评论
为什么被折叠?



