SELECT ARCH_MODE FROM V$DATABASE;
如果未开启归档,可以通过命令行或者图形化操作开启:
1.2配置归档
命1. 令行:
先启动到mount状态
alter database mount;
#开启归档模式
alter database archivelog;
#设置归档目录和大小,最大40G
alter database add archivelog 'type=local, dest=/dmdata/arch, file_size=1024, space_limit=10240';
注:归档 配置中file_size为单个备份大小,单位M,有效范围64~2048;space_limit为本地归档文件空间限制(归档日志总上限),0 表示无空间限制,取值范围 1024~2147483647。
dest所在目录需要配置为数据库安装用户,并具有写入权限
#打开数据库
alter database open;
进行以上操作,即可开启数据库归档模式。通过以下命令可以查询归档状态,确认状态为Y:
SELECT ARCH_MODE FROM V$DATABASE;
1.3创建备份路径
使用命令创建备份目录,这里示例以/dmdata/BAK为备份位置,/dmdata/BAK/FULL为全量备份路径,/dmdata/BAK/INC为增量备份路径。
[root@localhost ~]# mkdir -p /dmdata/BAK/FULL
[root@localhost ~]# mkdir -p /dmdata/BAK/INC
[root@localhost ~]# chown -R dmdba. /dmdata/BAK
注意:备份路径需要配置为数据库安装用户,并确认具有写入权限
1.4确认备份管道进程dmap
达梦数据库物理备份需要依赖备份管道进程dmap,在配置定时备份之前,需要确认dmap进程存在。数据库安装以后会自动注册服务DmAPService,位于$DM_HOME/bin下。
2.定时任务配置
2.1 定时备份配置
定时备份为物理备份,分为全量备份、差异增量备份、累计增量备份,可以根据需要进行组合配置,常用策略为“周六/周日全量备份+周内6天差异增量备份”;定时备份配置可以通过工具图形化,以及命令行方式进行配置。这里分别对这两种操作进行介绍。
2.1.1 图形化配置
①创建代理环境
定时作业需要依赖代理环境。首先通过工具配置代理环境:
成功后提示如下:
②配置定时全量备份
在“代理-“作业上点击右键,选择“新建作业”
在“新建作业”“-常规”标签下填入作业名
选择“新建作业”-“作业步骤”标签,点击“添加”:
在弹出的“新建作业步骤”下,填入“步骤名称”;选择步骤类型“备份数据库”,并分别填入备份路径、备份并行数;备份方式选择“完全备份”;勾选“压缩等级”中的“压缩”选项,并填入压缩等级。一般情况下选择等级1即可。配置好后点击确认。
选择“新建作业”-“作业调度”标签,点击“新建”:
在弹出的“新建作业调度”中,填入名称,调度类型选择“反复执行”;发生频率可选天/周/月为单位,通常选择周,“每一周”,日期通常选择周六/周日,时间避开业务时间以及批量作业时间。这里以每周日22点作为作业开始时间。根据需要配置作业的开始时间。完成后点击确认。
点击“新建作业”下的确认,完成定时全量备份配置。可在工具栏中“代理”-“作业”下看到新建的全量定时作业。
③配置定时增量备份
在“代理-“作业上点击右键,选择“新建作业”
在“新建作业”“-常规”标签下填入作业名
选择“新建作业”-“作业步骤”标签,点击“添加”:
在弹出的“新建作业步骤”下,填入“步骤名称”;选择步骤类型“备份数据库”,并分别填入备份路径、备份并行数;备份方式选择“差异增量备份”;勾选“压缩等级”中的“压缩”选项,并填入压缩等级。一般情况下选择等级1即可;在“基备份目录”下点击“添加”,并之前配置的全量备份的路径。配置好后点击确认。
选择“新建作业”-“作业调度”标签,点击“新建”:
在弹出的“新建作业调度”中,填入名称,调度类型选择“反复执行”;发生频率设置每周一~周六22点作为作业开始时间,注意不要勾选全量备份的日期。根据需要配置作业的开始时间。完成后点击确认。
点击“新建作业”下的确认,完成定时增量备份配置。可在工具栏中“代理”-“作业”下看到新建的全量定时作业。
2.1.2 命令行配置
对于没有客户端环境的用户,可以使用命令行的方式,实现相同的备份策略配置。以2.1.1中策略为例,创建代理环境,以及配置全量/增量备份命令如下:
创建代理环境:
SQL>SP_INIT_JOB_SYS(1);
定时全量备份:
SQL>call SP_CREATE_JOB('BAK_FULL',1,0,'',0,0,'',0,'');
SQL>call SP_JOB_CONFIG_START('BAK_FULL');
SQL>call SP_ADD_JOB_STEP_EX('BAK_FULL', 'BAK_FULL_JOB', 6, '01010000/dmdata/BAK/FULL', 0, 0, 0, 0, NULL, 0, '');
SQL>call SP_ADD_JOB_SCHEDULE('BAK_FULL', 'BAK_FULL_WEEEKLY', 1, 2, 1, 1, 0, '22:00:00', NULL, '2026-04-16 21:33:55', NULL, '');
SQL>call SP_JOB_CONFIG_COMMIT('BAK_FULL');
SQL>call SP_JOB_SET_SCHEMA('BAK_FULL', 'SYSDBA');
定时增量备份:
SQL>call SP_CREATE_JOB('BAK_INC',1,0,'',0,0,'',0,'');
SQL>call SP_JOB_CONFIG_START('BAK_INC');
SQL>call SP_ADD_JOB_STEP_EX('BAK_INC', 'BAK_INC_JOB', 6, '11010000/dmdata/BAK/FULL|/dmdata/BAK/INC', 0, 0, 0, 0, NULL, 0, '');
SQL>call SP_ADD_JOB_SCHEDULE('BAK_INC', 'BAK_INC_DAILY', 1, 2, 1, 126, 0, '22:00:00', NULL, '2026-04-16 21:48:14', NULL, '');
SQL>call SP_JOB_CONFIG_COMMIT('BAK_INC');
SQL>call SP_JOB_SET_SCHEMA('BAK_INC', 'SYSDBA');
2.2 定时清理作业配置
用户除了通过手动、脚本、备份软件迁移等方式进行备份的清理,也可以通过达梦的定时作业来配置定时清理备份。清理方式为先添加备份路径,然后执行系统函数完成对指定日期之前备份的清理。
2.2.1 图形化配置
在“代理-“作业上点击右键,选择“新建作业”
在“新建作业”“-常规”标签下填入作业名
选择“新建作业”-“作业步骤”标签,点击“添加”。在弹出的“新建作业步骤”下,填入“步骤名称”;选择步骤类型“SQL脚本”,并在“脚本语句”框中输入以下SQL:
CALL SF_BAKSET_BACKUP_DIR_ADD('DISK','/dmdata/BAK/FULL');
CALL SF_BAKSET_BACKUP_DIR_ADD('DISK','/dmdata/BAK/INC');
CALL SP_DB_BAKSET_REMOVE_BATCH('DISK', sysdate-15);
示例中第三句SQL中“sysdate-15”为清理15天之前的备份,可以根据实际需求,对“15”进行调整.配置好后点击确认。
选择“新建作业”-“作业调度”标签,点击“新建”。在弹出的“新建作业调度”中,填入名称,调度类型选择“反复执行”;发生频率可选天/周/月为单位,通常选择周,“每一周”,日期通常选择周六/周日,根据需要配置作业的开始时间,时间建议选择在全量备份当日,备份执行前。完成后点击确认。
点击“新建作业”下的确认,完成定时全量备份配置。可在工具栏中“代理”-“作业”下看到新建的全量定时作业。
2.2.2 命令行配置
对于没有客户端环境的用户,可以使用命令行的方式,实现相同的备份清理策略配置。以2.2.1中策略为例,配置定时清理备份命令如下:
定时备份清理:
SQL>call SP_CREATE_JOB('BAK_DEL',1,0,'',0,0,'',0,'');
SQL>call SP_JOB_CONFIG_START('BAK_DEL');
SQL>call SP_ADD_JOB_STEP_EX('BAK_DEL', 'BAK_DEL_JOB', 0, 'CALL SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmdata/BAK/FULL'');
CALL SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmdata/BAK/INC'');
CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'', sysdate-15);', 0, 0, 0, 0, NULL, 0, '');
SQL>call SP_ADD_JOB_SCHEDULE('BAK_DEL', 'BAK_DEL_WEEKLY', 1, 2, 1, 1, 0, '21:30:00', NULL, '2026-04-16 22:16:39', NULL, '');
SQL>call SP_JOB_CONFIG_COMMIT('BAK_DEL');
SQL>call SP_JOB_SET_SCHEMA('BAK_DEL', 'SYSDBA');
3.定时作业记录查看
对于定时作业的查看,同样分为图形化和命令行两种方式:
2.2.1 图形化工具查看
选择要查看的作业,右键-“查看作业历史信息”
右侧新创建的会话窗口中,即可看到作业执行的情况,是否存在报错等信息:
2.2.2 命令行查看
使用DISQL命令行,查询系统表SYSJOB.SYSJOBHISTORIES2,可以查询到定时作业的执行情况:
select * from SYSJOB.SYSJOBHISTORIES2;
文章
阅读量
获赞
