目录
- 前言
- 环境说明
- 1、创建脚本
- 2、用pgAgent设置定时任务
- 结语
前言
本文主要研究下PostgreSQL如何实现定期备份。
环境说明
我们需要第一在主机上创建一个文件夹用来存放保存好的文件(容器和本机都需要) 且本机的文件需要赋予权限
chmod o+W /你的文件地址
需要在容器中安装openssh-client、和sshpass
apt install openssh-client
apt-get install sshpass
1、创建脚本
先查询下pg_dumpall工具位置:
find / -name pg_dumpall
在容器的一个文件中创建sh脚本
cd /home
mkdir script
touch save.sh
脚本内容为(根据实际情况修改):
#!/bin/bash
# Description:备份 PostgreSQL 数据库并压缩成 gz 文件,最后删除 3 天前的备份文件。
echo \”开始执行 PostgreSQL 数据库的备份…\”
echo \”backup ing…\”
today=$(date +%Y-%m-%d) # 今天的日期
nowtime=$(date +%F+%T) # 当前时间点
yestoday=$(date -d \’-3 day\’ +%Y-%m-%d) # 3天前的日期
host_ip=127.0.0.1 # 本机 IP 地址
backup_ip=你的远端地址 # 远端备份服务器 IP
port_id=5432 # 端口号,PostgreSQL默认的端口号是5432
username=postgres # 数据库用户
export PGPASSWORD=\’你的密码\’ # 数据库密码
dmpDir=\’你的目录\’ # 本地备份目录
destination=\’你的目录\’ # 远端备份目录
echo \”时间:\” $nowtime
set timeout 600
# /usr/bin/ 为 pg_dump 备份工具安装路径,根据实际情况更新此路径。
/usr/bin/pg_dumpall –file \”$dmpDir/pg_backup_$today.sql\” –host \”$host_ip\” –port \”$port_id\” –username \”$username\”
#–verbose –role \”postgres\” –format=c –blobs –encoding \”UTF8\” 备份转换扩展配置
echo \”PostgreSQL 数据库备份完成!\”
echo \”当天备份文件压缩中…\”
gzip \”$dmpDir/pg_backup_$today.sql\”
echo \”3 天前的 PostgreSQL 数据库备份文件已删除!\”
echo \”开始远端备份…\”
export SSHPASS=your_password
sshpass -e scp -r \”$dmpDir/pg_backup_$today.sql.gz\” (你的登录名)@$backup_ip:$destination
echo \”远端备份完毕,感谢您使用此脚本!\”
exit;
给脚本增加可执行权限
chmod +x save.sh
2、用pgAgent设置定时任务
点击创建
输入名称
点击步骤创建
点击编辑——添加运行代码
创建计划任务:
最后在重复中:添加每日执行时间
最后记得保存!
结语
我们借用pgAgent完成了数据库的日常2个定时任务,清理数据、保存数据库。
以上就是PostgreSQL实现定期备份的方法的详细内容,更多关于PostgreSQL定时备份的资料请关注悠久资源其它相关文章!