Kingbase V8R6 数据库自动(逻辑)备份、删除脚本-Linux

脚本说明

1.该脚本为Linux环境下自动备份、删除Kingbase数据库备份脚本(逻辑备份);
2.执行脚本前,请先对脚本进行修改后,再使用。

脚本效果

1.执行脚本时,若备份目录不存在,则自动创建备份目录;
2.当备份文件数量少于设置的保存文件数量时,只做备份不做删除;
3.当备份文件数量等于保存文件数量时,先做逻辑备份,再删除最早备份的文件。

在这里插入图片描述
在这里插入图片描述

脚本文件
kingbase_backup.sh

#!/bin/bash

# ------------------按需修改以下内容------------------
dbInstallPath="/data/Kingbase/ES/V8/"
backupDir="/data/Kingbase/dmp_bak"
dbIP="127.0.0.1"
dbPort="54321"
dbName="v7user"
dbUser="v7user"

# 保留最近几个备份文件
reservedNum=3
# ------------------按需修改以上内容------------------

# 数据库备份目录
if [ ! -d ${backupDir} ]; then
  mkdir -p ${backupDir}
fi

# 数据库备份
sysDumpPwd="$(find ${dbInstallPath} -name sys_dump | head -n 1)"
nowDate=$(date +%Y%m%d_%H%M%S)
${sysDumpPwd} -h ${dbIP} -p ${dbPort} -U ${dbUser} -d ${dbName} -Fc > ${backupDir}/${dbName}_${nowDate}.sql

# 备份文件删除
sqlFileNum="$(ls -l  ${backupDir}/${dbName}*.sql |grep ^- |wc -l)"
nowNum=${sqlFileNum}
if((${nowNum} > reservedNum));then
	while(( sqlFileNum > reservedNum))
		do
			OldFile="$(ls -rt ${backupDir}/${dbName}*.sql | head -1)"
			rm -f $OldFile
			let "sqlFileNum--"
		done
else
	echo "当前备份文件数:${nowNum}小于需保留文件数:${reservedNum},不执行删除操作!"
fi

# 还原
# 注意:还原时候操作逻辑为先删除原始数据库,再恢复
# /data/Kingbase/ES/V8/Server/bin/sys_restore  -h 127.0.0.1 -p 54321 -U v7user -d v7user -c /data/Kingbase/dmp_bak/v7user_20241211_114909.sql

内容由Windows环境复制过去,在Linux执行时候会报错,如“kingbase_backup.sh:行37: 未预期的符号 `$‘\r’’ 附近有语法错误”,可在Linux上,使用命令:dos2unix kingbase_backup.sh修改脚本编码。
定时任务

crontab -e
# 每天凌晨2点执行一次
# 演示中:脚本放置目录为:/data/Kingbase/
0 2 * * * cd /data/Kingbase/ && bash kingbase_backup.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值