一、备份策略概述
SQLAdmin备份策略是保障数据安全的重要措施。
二、安装SQLAdmin
sudo apt update
sudo apt install pgadmin4 -y
三、全量备份
3.1 pg_dump全量备份
# 全量备份数据库
pg_dump -U postgres -Fc mydb > backup_full.dump
# 备份所有数据库
pg_dumpall -U postgres > backup_all.sql
3.2 备份脚本
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/var/backups/postgres"
mkdir -p $BACKUP_DIR
pg_dumpall -U postgres > $BACKUP_DIR/full_$DATE.sql
四、增量备份
4.1 配置WAL归档
# 编辑postgresql.conf
sudo nano /etc/postgresql/15/main/postgresql.conf
# WAL归档配置
wal_level = replica
max_wal_senders = 3
archive_mode = on
archive_command = 'cp %p /var/backups/wal/%f'
4.2 定时备份
# 添加crontab
crontab -e
# 每天凌晨2点备份
0 2 * * * /opt/scripts/backup.sh
五、备份恢复
5.1 全量恢复
# 恢复全量备份
pg_restore -U postgres -d mydb backup_full.dump
5.2 Point-in-Time恢复
# 基于时间点恢复
pg_restore -U postgres --point-in-time="2026-01-01 00:00:00" backup_full.dump
六、备份验证
6.1 验证脚本
#!/bin/bash
# 验证备份完整性
pg_restore --list backup_full.dump > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "Backup is valid"
else
echo "Backup is corrupted"
fi
6.2 定期测试
# 恢复测试环境
pg_restore -U postgres -d test_db backup_full.dump
七、存储管理
7.1 备份压缩
# 压缩备份
pg_dumpall -U postgres | gzip > backup_$(date +%Y%m%d).sql.gz
7.2 远程备份
# 远程备份
rsync -avz $BACKUP_DIR user@remote:/backup/postgres/
八、常见问题
Q1:备份失败怎么办?
检查磁盘空间和权限设置。
Q2:如何优化备份速度?
使用并行备份和压缩。
九、总结
制定完善的备份策略,确保数据安全。
注:本文基于2026年Ubuntu 22.04编写