opengauss数据备份(docker中备份)

首先如果想直接在宿主机上进行使用gs_dump备份需要glibc的版本到2.34及以上,查看版本命令为

ldd --version 

在这里插入图片描述

如图所示,本宿主机并不满足要求,所以转向在docker容器中进行备份,
然后进入opengauss容器中,命令为

docker exec -it gausst bash (其中gausst为你新建opengauss数据库名称)

新建的容器是没有cron定时器的,安装命令

apt-get update && apt-get install cron -y

安装完成后,再新建一个目录,比如/home/back

在该目录中,新建一个叫脚本,backups.sh

然后在脚本中插入以下代码

#删除七天之前的数据
find /home/back -mtime +7 -name "*.tar.gz" -exec rm;



#配置备份工具的环境
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opengauss/lib;
export PATH=$PATH:/usr/local/opengauss/bin;


#定义变量时间,端口,打包位置,账号密码
Ymd=$(date +%Y%m%d)
host=你的地址
DBUser=你的账号
DBPassword=你的密码
port=你的端口
filePath=/home/back/
sqlPath1=$filePath"xxx_"$Ymd.dmp



#执行备份
gs_dump -U $DBUser  -W $DBPassword -h $host -f $sqlPath1 -p $port sifa -F c -n 你的模式


#对带备份文件赋予777权限
chmod 777 $sqlPathl
chmod 777 $sqlPath2
chmod 777 $sqlPath3

#打包压缩文件

tar -zcvf $filePath$Ymd.tar.gz $sqlPath1 

#清理剩余的dmp文件
rm $filePath*.dmp

然后新建一个日志文件con.log

在执行

crontab -e

在第一行插入

0 3 * * * /home/back/backups.sh>>/home/back/con.log

这条命令表示每天凌晨三点执行该脚本

保存退出执行,

service cron restart