Linux人大金仓数据定时备份、删除和还原

脚本编写

  • 先创建脚本文件和备份文件存放的文件夹,并给上权限

    #创建备份、删除脚本文件
    mkdir /home/backup
    cd /home/backup
    touch kingbasesql-backup.sh kingbasesql-delete.sh
    #创建备份脚本存放文件夹
    mkdir /home/db-bak/web-dmp/
    #授权
    chmod +x kingbasesql-backup.sh kingbasesql-delete.sh /home/db-bak/web-dmp/
    
  • 编写脚本内容
    备份脚本

    #!/bin/bash
    #数据库用户的密码 输入到环境变量中
    export PGPASSWORD="数据库密码"
    #日期变量,用户给备份的数据库文件上打上日期戳
    DATE=$(date +%Y%m%d)
    #定义变量:备份文件存放目录
    BACKUP_FILE="/home/db-bak/web-dmp/kingbasesql_${DATE}.dmp"
    #备份 人大金仓的默认安装路径为 /opt/Kingbase/ES/V8
    "人大金仓的sys_dump路径" -h 数据库IP地址 -p 数据库端口号 -U 数据库用户名 -d 数据库名 -n 指定模式(不加就是备份这个数据库下所有的模式数据) -Fc -v -f "${BACKUP_FILE}"
    echo "数据库 数据库名 备份结束!"
    exit;
    

    备份脚本例子

    #!/bin/bash
    #数据库用户的密码 输入到环境变量中
    export PGPASSWORD="test"
    #日期变量,用户给备份的数据库文件上打上日期戳
    DATE=$(date +%Y%m%d)
    #定义变量:备份文件名称
    BACKUP_FILE="/home/db-bak/web-dmp/kingbasesql_${DATE}.dmp"
    #备份
    "/opt/Kingbase/ES/V8/KESRealPro/V008R006C005B0054/ClientTools/bin/sys_dump" -h 127.0.0.1 -p 54321 -U test -d test -n public -Fc -v -f "${BACKUP_FILE}"
    echo "数据库 test 备份结束!"
    exit;
    

    还原脚本
    还原的时候需要将之前的表取个别名或者删除。

    "人大金仓的sys_restore路径" -h 数据库IP地址 -p 数据库端口号 -U 数据库用户名 -d 数据库名 备份脚本文件
    

    还原脚本例子

    /opt/Kingbase/ES/V8/KESRealPro/V008R006C005B0054/ClientTools/bin/sys_restore -h localhost -p 54321 -U test -d test /home/db-bak/web-dmp/kingbasesql_20240402.dmp
    

    删除脚本

    #!/bin/bash
    echo "删除 8 天前的 数据库备份文件!"
    find /home/db-bak/web-dmp/ -name "kingbasesql_*" -mmin +10 -exec rm -rf {} \;
    set timeout 1000
    echo " 8 天前的数据库备份文件删除完毕!"
    exit;
    

    测试

    cd /home/backup
    #通过"." 或者"sh" 运行shell脚本
    ./kingbasesql-backup.sh
    sh kingbasesql-delete.sh
    

添加定时任务

#编写定时任务 cron表达式 脚本的绝对路径
crontab -e
#每天23点进行数据库备份脚本 每天23点半运行删除脚本
30 23 * * * /bin/bash /home/kingbasesql-delete.sh
0 23 * * * /bin/bash /home/kingbasesql-backup.sh
#查看定时任务
crontab -l
#删除定时任务
crontab -r

crond 状态 启动 关停 重启设置

systemctl status crond.service     查看状态
systemctl stop cond.service        关停
systemctl start crond.service      启动
systemctl restart crond.service    重启

参考文章:
Linux版 人大金仓数据库 定时备份

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值