达梦数据库配置定期备份任务(全量备份+定时清理)

达梦数据库中初始化实例以后,必须配置数据库的定期备份任务来保障数据安全。备份之前需要开启数据库归档《达梦数据库的归档模式管理(全攻略实操)》,文本主要进行实操如何在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_full0);call SP_ADD_JOB_STEP(bak_fullbak_full600020000/opt/dmbak1100NULL0);call SP_ADD_JOB_SCHEDULE(bak_fullbak_full1110023:00:00NULL2025-02-26 07:13:06NULL, );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_bak0);call SP_ADD_JOB_STEP(del_bakdel_bak0call SF_BAKSET_BACKUP_DIR_ADD(DISK,/opt/dmbak);call SP_DB_BAKSET_REMOVE_BATCH(null,sysdate-7);, 1100NULL0);call SP_ADD_JOB_SCHEDULE(del_bakdel_bak1110022:30:00NULL2025-02-26 07:40:17NULL, );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:如果没有生成的话,就点击任务,右键查看作业历史信息查看原因

相关文章

如何选择达梦数据库的安装介质版本?

达梦数据库新建实例后必须进行参数优化

一文读懂达梦数据库日志:日志目录中关键日志文件格式解读

达梦数据库目录结构介绍

达梦数据库的归档模式管理(全攻略实操)

5分钟搞定!达梦数据库版本查询的那些事儿

— END —

特别说明:本文所述内容仅代表作者个人在现阶段技术认知下的观点,受限于DM8(2024Q4)版本,未来可能随版本技术迭代而调整更新,期待未来能与大家探讨更优解!

为防走失,也请各位顺手关注一下公众号“”

👇订阅下方合集,获取每日推送

# DM数据库优质内容汇总

# DM数据库SQL优化汇总

# DM数据库运维工具汇总

# DM数据库故障处理汇总

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部