PG数据库备份
安装数据库客户端
# Import the repository signing key:
sudo apt install curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc
# Create the repository configuration file:
sudo sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
# Update the package lists:
sudo apt update
# Install the latest version of PostgreSQL:
# If you want a specific version, use 'postgresql-16' or similar instead of 'postgresql'
sudo apt install postgresql-client-15
网络设置
公网组网/局域网方案
允许备份主机访问
ufw allow from 备份主机ip
ufw reload
公网非组网方案
通过隧道实现,将远程服务器端口映射到本地
autossh -i 秘钥路径 -M 监控端口 -NL *:本地端口:远程IP:远程端口 远程IP -p ssh端口
例子:
autossh -i ./key.pub -M 15432 -NL *:5432:127.0.0.1:5432 192.168.2.2 -p 22
备份脚本
备份主机新建备份目录
mkdir -p /data/backup/postgres
备份脚本
vi /data/backup/postgres.sh
脚本内容
#!/bin/bash
mkdir -p /data/backup/postgres/`date +%Y%m%d`
export PGPASSWORD=数据库密码
pg_dump -h 数据库IP -p 数据库端口 -U 数据库用户名 数据库名 -f /data/backup/postgres/`date +%Y%m%d`/数据库名.sql -n 模式名
cd /data/backup/postgres/
tar zcvf `date +%Y%m%d`.tar.gz `date +%Y%m%d`
rm -rf `date +%Y%m%d`
find /data/backup/postgres/ -xdev -mtime +30 -name "*.tar.gz" -exec rm -f {} \;
完成编辑后赋予可执行权限
chmod +x /data/backup/postgres.sh
定时任务
0 2 * * * flock -xn /tmp/postgres.lock -c "/data/backup/postgres.sh"
MINIO备份
安装和配置命令行客户端
见文章
如果是直连MINIO的9000端口,use_https = False
,通过公网域名https访问则use_https = True
。
备份命令
s3cmd sync s3://桶名称/ /data/backup/minio/桶名称/
定时任务
0 2 * * * flock -xn /tmp/minio.lock -c "s3cmd sync s3://桶名称/ /data/backup/minio/桶名称/"
评论