达梦8脚本配置自动备份
一、使用disql登录达梦启用归档模式
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/data/dmdba/dmdbms/arch, TYPE=LOCAL, FILE_SIZE=2048, SPACE_LIMIT=40960' ;
ALTER DATABASE OPEN ;
二、启用作业调度,并配置自动备份
我这里需要将备份文件存储到/data/backup/full文件夹下,并且每天0点都执行一次
首先需要创建这个路径,并且修改权限使达梦可以写入
mkdir -p /data/backup/full <br> chown -R dmdba.dinstall /data/backup
然后配置作业任务,脚本如下
-- 初始化作业环境(只做一次;已做过可跳过)
SP_INIT_JOB_SYS(1);
-- 1. 创建作业
CALL SP_CREATE_JOB( 'full_bak' , 1, 0, '' , 0, 0, '' , 0, '全库备份' );
-- 2. 开始配置
CALL SP_JOB_CONFIG_START( 'full_bak' );
-- 3. 添加步骤:type=6 表示“备份还原”,command 前 8 位为备份策略,末位接路径
-- '00000000' = 全量、不压缩、备份日志、不并行、不优化、默认片大小、备份后不删归档、保留位0
CALL SP_ADD_JOB_STEP( 'full_bak' , 'step_full' , 6, '00000000/data/backup/full' , 1, 2, 0, 0, NULL , 0);
-- 4. 添加调度:type=2 按周,freq_interval=1 每 1 周,freq_sub_interval=64 表示周日,00:00 执行
CALL SP_ADD_JOB_SCHEDULE( 'full_bak' , 'sched_full' , 1, 2, 1, 64, 0, '00:00:00' , NULL , SYSDATE, NULL , '' );
-- 5. 提交配置
CALL SP_JOB_CONFIG_COMMIT( 'full_bak' );
创建完成后查看一下最终的作业记录
SELECT * FROM SYSJOB.SYSJOBS; -- 查看作业定义
SELECT * FROM DBA_JOBS; -- 查看作业调度
我的查询结果如下
SQL> SELECT * FROM SYSJOB.SYSJOBS;
行号 ID NAME ENABLE USERNAME CREATETIME MODIFYTIME ENABLE_EMAIL EMAIL_OPERID EMAIL_TYPE ENABLE_NETSEND NETSEND_OPERID NETSEND_TYPE VALID DESCRIBE SYS_FLAG EP_SEQNO
---------- ----------- -------- ----------- -------- ------------------- ---------- ------------ ------------ ----------- -------------- -------------- ------------ ----- ------------ ----------- -----------
RAFT_NAME
---------
1 1791860303 full_bak 1 SYSDBA 2026-10-13 10:58:22 0 -1 0 0 -1 0 Y 全库备份 0 0
NULL
已用时间: 0.713(毫秒). 执行号:18957110.
SQL> SELECT * FROM DBA_JOBS;
行号 JOB LOG_USER PRIV_USER SCHEMA_USER LAST_DATE LAST_SEC THIS_DATE THIS_SEC NEXT_DATE NEXT_SEC TOTAL_TIME BROKEN INTERVAL FAILURES WHAT
---------- ----------- -------- --------- ----------- --------- -------- --------- -------- ---------- -------- ------------------------- ------ ----------- -------------------- -------------------------
NLS_ENV MISC_ENV INSTANCE
------- -------- -----------
1 1791860303 SYSDBA SYSDBA SYSDBA NULL NULL NULL NULL 2026-10-17 00:00:00 NULL N 604800 0 00000000 /data/backup/full
NULL NULL 1
已用时间: 4.427(毫秒). 执行号:18957111.
接着可以立即执行一次作业调度,注意这里需要使用前面查询到的任务id
CALL SP_DBMS_JOB_RUN(1791860303);

浙公网安备 33010602011771号