如何备份Ubuntu上的pgAdmin数据库
导读:Ubuntu 上备份 pgAdmin 管理的 PostgreSQL 数据库 一 备份方式总览 使用 pgAdmin 4 图形界面执行备份,适合临时或一次性操作,支持导出为多种格式。 使用 pg_dump/pg_restore 命令行,适合...
Ubuntu 上备份 pgAdmin 管理的 PostgreSQL 数据库
一 备份方式总览
- 使用 pgAdmin 4 图形界面执行备份,适合临时或一次性操作,支持导出为多种格式。
- 使用 pg_dump/pg_restore 命令行,适合脚本化和自动化,便于纳入 Cron 定时任务与保留策略管理。
- 备份 pgAdmin 4 配置与服务器清单(不是业务数据):配置文件位于用户主目录 ~/.pgadmin4/,可定期打包留存,便于迁移或重装后快速恢复连接信息。
二 使用 pgAdmin 4 图形界面备份
- 连接目标服务器后,在左侧对象树中右键目标数据库 → Backup…。
- 关键选项建议:
- Format:优先选择 Custom(.backup) 便于后续选择性恢复;需要跨平台或便于查看时用 Plain(.sql);超大数据可考虑 Directory(并行)。
- 勾选 Blobs 以包含大对象(如二进制数据)。
- 指定输出目录与文件名,点击 Backup 开始。完成后在界面 Processes 可查看完整执行的 pg_dump 命令与日志,便于排错与沉淀脚本。
三 使用命令行备份与自动化
- 常用命令模板
- 自定义格式(推荐):
pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f /backups/mydb_$(date +%F).dump mydb - 纯文本 SQL 脚本:
pg_dump -h localhost -p 5432 -U postgres -F p -f /backups/mydb_$(date +%F).sql mydb - 还原对应:
- 自定义/Tar:pg_restore -h localhost -p 5432 -U postgres -d mydb /backups/mydb_2025-12-16.dump
- 纯文本:createdb -h localhost -p 5432 -U postgres mydb & & psql -h localhost -p 5432 -U postgres -d mydb -f /backups/mydb_2025-12-16.sql
- 自定义格式(推荐):
- 自动化脚本与定时任务
- 示例脚本 /usr/local/bin/pg_backup.sh(使用自定义格式与保留策略):
#!/usr/bin/env bash set -Eeuo pipefail source /data/backup_config.env # DB_HOST, DB_PORT, DB_USER, DB_NAME, BACKUP_DIR, RETENTION_DAYS, LOG_FILE TIMESTAMP=$(date +%Y%m%d_%H%M%S) BACKUP_FILE="${ BACKUP_DIR} /${ DB_NAME} _${ TIMESTAMP} .dump" mkdir -p "$BACKUP_DIR" export PGPASSWORD="${ DB_PASSWORD:-} " pg_dump --host="$DB_HOST" --port="$DB_PORT" --username="$DB_USER" \ --format=c --blobs --verbose --file="$BACKUP_FILE" "$DB_NAME" echo "[$(date)] Backup completed: $BACKUP_FILE (size: $(stat -c%s "$BACKUP_FILE"))" > > "$LOG_FILE" # 清理旧备份 find "$BACKUP_DIR" -name "${ DB_NAME} _*.dump" -mtime +"$RETENTION_DAYS" -delete - 定时任务(每天 02:00 执行):
0 2 * * * /usr/local/bin/pg_backup.sh > > /var/log/pg_cron.log 2> & 1
- 示例脚本 /usr/local/bin/pg_backup.sh(使用自定义格式与保留策略):
- 大型库优化
- 使用 Directory 格式(–format=d) 并配合 –jobs=N 并行导出/导入,显著提升速度与恢复效率(pg_restore 同样支持 --jobs)。
四 还原与验证
- 自定义/Tar 备份用 pg_restore;纯文本备份用 psql 执行 SQL 脚本。
- 还原前准备:目标库需存在(pg_restore 可用 –create 创建库),必要时先停止应用以避免写入冲突。
- 定期恢复演练(示例):
- createdb -h localhost -p 5432 -U postgres test_restore
- pg_restore -h localhost -p 5432 -U postgres -d test_restore --verbose /backups/mydb_*.dump
- psql -h localhost -p 5432 -U postgres -d test_restore -c “SELECT COUNT(*) FROM important_table; ”
- dropdb -h localhost -p 5432 -U postgres test_restore
- 若备份包含文件系统附件(如某些应用将文件存在数据目录),需另行备份相应目录并在恢复后校验权限与归属。
五 备份策略与运维建议
- 保留策略:按业务重要性设置保留天数(如 7/30 天),脚本中自动清理过期备份。
- 安全与合规:备份文件含敏感数据,建议 加密 并存放于 离线或云存储;限制访问权限,传输使用 SCP/SFTP/TLS。
- 监控与告警:记录 日志 与 备份大小,异常缩小或失败触发 邮件/企业微信/钉钉 告警。
- 时间点恢复(进阶):启用 WAL 归档 与 pg_basebackup,实现 PITR(时间点恢复),与日常逻辑备份互为补充。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何备份Ubuntu上的pgAdmin数据库
本文地址: https://pptw.com/jishu/772729.html
