Linux下创建达梦数据库自动备份任务

原文:Linux下创建达梦数据库自动备份任务 - Apull - 博客园

下边是自己修改的版本,主要是链接哪里

说明:

/opt/dmdbms/bin/dexp USERID='SYSDBA/"Elinks@123"@localhost:5236' DIRECTORY=/opt/DB_BACK FILE=ZNLKDB.dmp LOG=ZNLKDB.log SCHEMAS=ZNLKDB

备份脚本保留最后30天记录,以节省硬盘空间,可根据具体情况修改。

达梦数据库备份脚本

DMDBBakSvr.sh

#!/usr/bin/sh
 
echo "=================================="
echo "=        达梦数据库定时备份      ="
echo "=                                ="
echo "=         Apull     2024-04      ="
echo "=================================="
echo
 
PRG=`pwd`
DM_HOME="/opt/dmdbms/bin"    #需要修改为具体达梦路径
BAKPATH="/opt/DB_BACK"        #修改为具体保存备份路径
ERRORLOG="$BAKPATH/error.log"
 
cd $DM_HOME
 
if [ ! -d "$BAKPATH" ]; then
    echo "备份文件夹不存在,正在建立文件夹..."
    mkdir "$BAKPATH"
fi
 
echo "清理30天前的备份文件..."
find "$BAKPATH" -type f -mtime +30 -exec echo "{}" +
echo "清除历史备份完成!"
echo
 
#USERNAME='SYSDBA'    #用户名
#PASSWORD=Elinks@123    #密码
#CONDETION="'SYSDBA/"Elinks@123"@localhost:5236"
 
TIMESTYLE=$(date +"%Y-%m-%d_%H-%M-%S")
 
echo "设置数据库导出文件"
echo
FILEPATH="$USERNAME-$TIMESTYLE.dmp"
LOGPATH="$USERNAME-$TIMESTYLE.log"
 
echo "正在导出数据库备份..."
echo
output=$($DM_HOME/dexp USERID='SYSDBA/"Elinks@123"@localhost:5236' DIRECTORY=/opt/DB_BACK FILE=ZNLKDB.dmp LOG=ZNLKDB.log SCHEMAS=ZNLKDB  2>&1)
 
if [ $? -ne 0 ]; then
    error_output=$(echo "$output" | grep 'error')
    echo "[$(date +"%Y-%m-%d %H:%M:%S")] 数据库备份导出失败!" | tee -a $ERRORLOG
    echo "错误信息:$error_output" | tee -a $ERRORLOG
else
    echo "数据库备份导出成功!目录:$BAKPATH"

fi
 
cd $PRG
 
 

创建定时任务,定时运行达梦备份脚本
DMDBBakSvr-Setup.sh 内容

#!/usr/bin/sh
 
echo "=================================="
echo "=       安装达梦数据库定时备份   ="
echo "=                                ="
echo "=         Apull     2024-04      ="
echo "=================================="
echo
 
BINPATH=~/opt/dmdbms/bin
 
if [ -f DMDBBakSvr.sh ]; then
 
    if [ ! -d $BINPATH ]; then
        mkdir -p $BINPATH
    fi
 
    cp -f DMDBBakSvr.sh $BINPATH
 
    if [ ! -f $BINPATH/DMDBBakSvr.sh ] || [ ! -x $BINPATH/DMDBBakSvr.sh ]; then
        chmod +x $BINPATH/DMDBBakSvr.sh        
    fi
 
    crontab -l | { cat; echo "0 0 1 * * ? $BINPATH/DMDBBakSvr.sh"; } | crontab - 
    #每晚22:30执行备份数据库操作,根据需要修改
 
    if [ $? -eq 0 ]; then
        echo "数据库备份计划创建成功"
    else
        echo "数据库备份计划创建失败!"
    fi
    
fi
 
#运行结束保留终端窗口
exec /bin/bash

用命令chmod +x 给上面2个sh文件执行权限。
双击或在终端运行DMDBBakSvr-Setup.sh建立运行计划。
这个方法比较简单,对单机版来说完全够用,不想折腾达梦的存档模式。

crontab 说明
查看已经创建的计划

crontab -l

清除所有计划

crontab -r

编辑定时任务

crontab -e

 

posted @ 2026-01-29 10:05  南風未起  阅读(23)  评论(0)    收藏  举报