达梦数据库如何做定时备份和删除过期备份?

达梦数据库如何做定时备份和删除过期备份?

  数据库维护过程中,备份和恢复是重中之重的事情。尽管很多时候数据库运行缓慢,但对数据库丢失数据而言,后者是致命的。所以,DBA要尽一切可能的做好数据库的备份工作。我们都知道数据库备份可以手工执行命令来备份,但是数据库备份一般都是在业务低峰期做的,人为的执行容易遗忘备份,并且不方便,所以我们可以把备份任务做为定时任务来执行。那么达梦数据库是怎么实现定时备份的呢?

  达梦数据库的定时备份有两种实现方式:

一、通过建立数据库job对象来定时备份

二、通过编辑备份脚本,结合操作系统的定时任务来实现

  下面分别讲讲这两种方式,怎么一步步实现:

 

方法1 创建定时备份job

  启动达梦自带的客户端管理工具,可以很方便创建定时备份的job。

Ø   首先需要创建代理环境

《达梦数据库如何做定时备份和删除过期备份?》

对应的sql是:SP_INIT_JOB_SYS(1);

 

 

 

 

 

 

 

Ø   新建定时全备的job,比如DB_FULL_BAK

《达梦数据库如何做定时备份和删除过期备份?》

Ø   添加作业步骤

《达梦数据库如何做定时备份和删除过期备份?》

步骤类型有:备份数据库和基于备份集备份数据库。

第一种方式是比较旧的方式,不依赖dmap服务;

第二种方式是备份集的方式,依赖dmap服务,建议使用这种方式。

备份路径:最好是和数据库文件不同的路径。

备份并行数:根据实际的机器核数和负载来设置。

备份方式:选择完全备份,一定要压缩,备份日志。

 

 

 

 

 

Ø   新建作业调度

  比如设置每周六晚22:00:00做一次全备,具体时间请根据项目实际情况。

《达梦数据库如何做定时备份和删除过期备份?》

  最后点击保存,一个定时全库备份的job就做好了

通过查看该job的属性,可以看到具体的DDL:

《达梦数据库如何做定时备份和删除过期备份?》

call SP_CREATE_JOB ( ‘DB_FULL_BAK’ , 1 , 0 , , 0 , 0 , , 0 , 定时全库备份 );

call SP_JOB_CONFIG_START ( ‘DB_FULL_BAK’ );

call SP_ADD_JOB_STEP ( ‘DB_FULL_BAK’ , ‘S1’ , 6 , ‘01040000/dm/backup’ , 1 , 2 , 0 , 0 , NULL , 0 );

 

call SP_ADD_JOB_SCHEDULE ( ‘DB_FULL_BAK’ , ‘S2’ , 1 , 2 , 1 , 64 , 0 , ’22:00:00′ , NULL , ‘2019-10-23 07:00:00’ , NULL , 每周六晚 22:00:00 做一次全备 );

call SP_JOB_CONFIG_COMMIT ( ‘DB_FULL_BAK’ );

 

  因为磁盘空间有限,所以生成的备份文件也需要定时去清理,包括不断产生的归档日志文件。

创建定时删除全备job

Ø   创建定时删除全备文件的job,比如:只保留30天的备份,具体请根据实际情况设置

《达梦数据库如何做定时备份和删除过期备份?》

Ø   新建作业步骤

 

  《达梦数据库如何做定时备份和删除过期备份?》

 

 

 

 

Ø   新增调度,比如每周六凌晨1点执行

《达梦数据库如何做定时备份和删除过期备份?》

Ø   查看DDL

 

call SP_CREATE_JOB ( ‘DEL_DB_FULL_BAK’ , 1 , 0 , , 0 , 0 , , 0 , 定时删除全库备份 );

call SP_JOB_CONFIG_START ( ‘DEL_DB_FULL_BAK’ );

call SP_ADD_JOB_STEP ( ‘DEL_DB_FULL_BAK’ , ‘S1’ , 0 , SP_DB_BAKSET_REMOVE_BATCH(NULL,SYSDATE-30); , 1 , 2 , 0 , 0 , NULL , 0 );

call SP_ADD_JOB_SCHEDULE ( ‘DEL_DB_FULL_BAK’ , ‘S2’ , 1 , 2 , 1 , 64 , 0 , ’01:00:00′ , NULL , ‘2019-10-23 15:14:18’ , NULL , );

call SP_JOB_CONFIG_COMMIT ( ‘DEL_DB_FULL_BAK’ );

 

 

 

 

 

 

 

 

 

创建定时删除归档日志文件的job

Ø   虽然dmarch.ini可以限制归档文件的最大空间,但是还是做定时任务去清理更稳妥一点。

《达梦数据库如何做定时备份和删除过期备份?》

Ø   添加作业步骤

 

 

  《达梦数据库如何做定时备份和删除过期备份?》

 

 

 

 

 

 

 

 

Ø   新增调度,比如删除30天前的归档日志文件

《达梦数据库如何做定时备份和删除过期备份?》

Ø   查看DDL

 

call SP_CREATE_JOB ( ‘DEL_ARCH’ , 1 , 0 , , 0 , 0 , , 0 , 定时删除归档 );

call SP_JOB_CONFIG_START ( ‘DEL_ARCH’ );

call SP_ADD_JOB_STEP ( ‘DEL_ARCH’ , ‘S1’ , 0 , SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE – 30); , 1 , 2 , 0 , 0 , NULL , 0 );

call SP_ADD_JOB_SCHEDULE ( ‘DEL_ARCH’ , ‘S2’ , 1 , 2 , 1 , 1 , 0 , ’01:00:00′ , NULL , ‘2019-10-23 15:30:33’ , NULL , );

call SP_JOB_CONFIG_COMMIT ( ‘DEL_ARCH’ );

 

 

 

 

 

 

 

 

 

 

 

 

方法2 编辑备份脚本+crontab 定时执行

Ø   编辑全库备份脚本

vim db_full_bak.sh

#!/bin/bash

i=$(date +%F)

cd /home/dmdba/dmdbms/bin

./disql  SYSDBA/SYSDBA -e “backup database backupset ‘/dm/backup/DB_FULL_$i’ compressed level 1 parallel 8;”

备份结果如下:

《达梦数据库如何做定时备份和删除过期备份?》

Ø   做定时任务

crontab -e

00 22 * * * /usr/bin/nohup /home/dmdba/db_full_bak.sh >>/home/dmdba/dmdbms/log/nohup.out &

    原文作者:yanhengdoudou
    原文地址: http://blog.itpub.net/69949798/viewspace-2661605/
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞