达梦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);

 

 

posted @ 2026-10-13 11:36  安培昌浩  阅读(11)  评论(0)    收藏  举报