达梦数据库中初始化实例以后,必须配置数据库的定期备份任务来保障数据安全。备份之前需要开启数据库归档《达梦数据库的归档模式管理(全攻略实操)》,文本主要进行实操如何在DM的作业系统中配置数据备份任务。
01
—
配置【全量备份+定期删除备份】策略
此备份策略适用于数据量小于100G的场景下。注意开启数据库归档,确定备份路径读写权限正常。
例如:设置每天23:00全量备份、删除7天前的全量备份。备份路径为 /opt/dmbak。 (/opt/dmbak目录权限必须允许dmdba用户有读写权限不然备份会失败)
新建两个定时任务 一个是全量备份的任务 另一个是定期删除备份任务。
在选择数据备份的执行时间时,需尽量避免与应用系统的夜间跑批任务同时运行。
1)图形化的方式创建备份作业
1. 在左侧导航栏中,找到代理选项,点击代理的下拉菜单,找到作业选项,右键新建作业,配置好作业名和作业描述。
2. 添加备份规则。在作业步骤点击添加后,在步骤类型中选择备份数据库,备份方式选择“完全备份”并添加备份路径。
3. 点击新建作业步骤中左侧的高级选项,当成功时 选择 报告执行成功并结束作业,失败时选择报告执行失败并结束作业。
ps:在高级选项中的配置是因为作业异常失败后会在视图中记录信息,便于后续的问题排查
4. 配置作业调度规则。此配置项中,可以配置调度类型,每天的全量备份的话,调度类型选择反复执行,频率为每天,执行时间为每天的 23 点,配置好后,点击确认即可。
ps:具体备份执行时间,需保障与应用系统中跑批的任务时间点不冲突
5. 新建定时删除的备份任务。在左侧导航栏中,找到代理选项,点击代理的下拉菜单,找到作业选项,右键新建作业,配置好作业名和作业描述。
6. 添加备份规则。在作业步骤点击添加后,在步骤类型中选择SQL脚本
SQL语句内容如下。
call SF_BAKSET_BACKUP_DIR_ADD(DISK,/opt/dmbak);call SP_DB_BAKSET_REMOVE_BATCH(null,sysdate-7);DM的备份定时删除是通过SQL语句的形式完成,其中
/opt/dmbak表示备份扫描的目录,需要与全备的目录保持一致
sysdate-7表示删除7天之前的备份
7. 点击新建作业步骤中左侧的高级选项,当成功时 选择 报告执行成功并结束作业,失败时选择报告执行失败并结束作业。
ps:在高级选项中的配置是因为作业异常失败后会在视图中记录信息,便于后续的问题排查
8. 配置作业调度规则。此配置项中,可以配置调度类型,因为每天是全量备份,所以SQL语句需要每天都执行一遍。调度类型选择反复执行,频率为每天,执行时间为每天的 22:30,配置好后,点击确认即可。
ps:比备份任务早或者晚半个小时即可,避免备份与删除备份调度同时进行
2)SQL语句的形式
备份任务已经在图形化界面配置完成,那么我们只需要把备份任务以及删除备份的SQL语句拷贝出来即可。
步骤如下:在左侧导航栏中,找到代理选项,点击代理的下拉菜单,找到作业选项,右键属性,弹窗选择DDL 就可以拿到SQL语句
那么我们分别拿到全备定时任务和定时删除备份的作业,SQL如下
— 全备的sql语句call SP_CREATE_JOB(bak_full,1,0,,0,0,,0,每天 23:00 全量备份);call SP_JOB_CONFIG_START(bak_full);call SP_JOB_SET_EP_SEQNO(bak_full, 0);call SP_ADD_JOB_STEP(bak_full, bak_full, 6, 00020000/opt/dmbak, 1, 1, 0, 0, NULL, 0);call SP_ADD_JOB_SCHEDULE(bak_full, bak_full, 1, 1, 1, 0, 0, 23:00:00, NULL, 2025-02-26 07:13:06, NULL, );call SP_JOB_CONFIG_COMMIT(bak_full);–定时删除备份的sql语句call SP_CREATE_JOB(del_bak,1,0,,0,0,,0,删除备份作业);call SP_JOB_CONFIG_START(del_bak);call SP_JOB_SET_EP_SEQNO(del_bak, 0);call SP_ADD_JOB_STEP(del_bak, del_bak, 0, call SF_BAKSET_BACKUP_DIR_ADD(DISK,/opt/dmbak);call SP_DB_BAKSET_REMOVE_BATCH(null,sysdate-7);, 1, 1, 0, 0, NULL, 0);call SP_ADD_JOB_SCHEDULE(del_bak, del_bak, 1, 1, 1, 0, 0, 22:30:00, NULL, 2025-02-26 07:40:17, NULL, );call SP_JOB_CONFIG_COMMIT(del_bak);当制定好规则以后,就不需要每搭建一套数据库系统就配置一遍,可以直接执行SQL语句便于规范批量化部署。
02
—
如何验证定时任务配置是否正常?
我们可以使用sql语句触发一次定时任务
SP_DBMS_JOB_RUN((select id from “SYSJOB”.“SYSJOBS” where name=bak_full))然后到全备目录下检查,发现生成了DB_DAMENG_FULL_2025_02_26_23_06_13目录。
ps:如果没有生成的话,就点击任务,右键查看作业历史信息查看原因
相关文章
— END —
特别说明:本文所述内容仅代表作者个人在现阶段技术认知下的观点,受限于DM8(2024Q4)版本,未来可能随版本技术迭代而调整更新,期待未来能与大家探讨更优解!为防走失,也请各位顺手关注一下公众号“”
👇订阅下方合集,获取每日推送