温馨提示×

Debian上pgAdmin的备份恢复步骤

小樊
60
2025-10-04 00:48:31
栏目: 智能运维

Debian系统上pgAdmin数据库备份与恢复步骤

一、备份操作

1. 图形界面(pgAdmin)备份

适用场景:适合不熟悉命令行的用户,操作直观。
步骤

  • 打开pgAdmin并连接到PostgreSQL服务器。
  • 在左侧导航栏展开“Servers”→“Databases”,右键点击目标数据库。
  • 选择TasksBack Up…,弹出备份配置窗口。
  • 配置选项
    • General:设置备份文件保存路径(如/var/backups/pgadmin/)和文件名(如mydb_backup.dump)。
    • Format:选择Custom(支持压缩,推荐)或Plain(SQL格式,可跨版本迁移)。
    • Options:勾选“Include CREATE DATABASE statement”(若需重建数据库)。
  • 点击OK开始备份,完成后可在指定路径查看备份文件。

2. 命令行(pg_dump)备份

适用场景:适合自动化备份(如通过cron定时任务),效率高。
常用命令

  • 逻辑备份(SQL格式,可读性强)
    pg_dump -U postgres -h localhost -p 5432 -F p -f /var/backups/pgadmin/mydb_backup.sql mydb
    
    参数说明:-U(用户名)、-h(主机)、-p(端口)、-F p(plain格式)、-f(输出文件)、mydb(数据库名)。
  • 逻辑备份(自定义格式,支持压缩)
    pg_dump -U postgres -h localhost -p 5432 -F c -f /var/backups/pgadmin/mydb_backup.dump mydb
    
  • 全系统备份(包括所有数据库、角色、表空间)
    pg_dumpall -U postgres -h localhost -p 5432 -f /var/backups/pgadmin/all_databases_backup.sql
    
    注意:pg_dumpall仅支持plain格式,需用psql恢复。

二、恢复操作

1. 图形界面(pgAdmin)恢复

适用场景:适合手动恢复少量数据,操作便捷。
步骤

  • 打开pgAdmin并连接到PostgreSQL服务器。
  • 右键点击目标数据库(需提前创建,若恢复全系统则无需创建),选择TasksRestore…
  • 配置选项
    • General:选择备份文件(如/var/backups/pgadmin/mydb_backup.dump)。
    • Format:根据备份文件类型选择(Custom/Plain)。
    • Options:勾选“Clean”(清空目标数据库,避免冲突)、“Create”(创建数据库,若未提前创建)。
  • 点击OK开始恢复,完成后可刷新数据库查看数据。

2. 命令行恢复

适用场景:适合自动化恢复或大规模数据恢复,效率高。
常用命令

  • 恢复逻辑备份(SQL格式)
    psql -U postgres -h localhost -p 5432 -d mydb -f /var/backups/pgadmin/mydb_backup.sql
    
    参数说明:-d(目标数据库)、-f(备份文件)。
  • 恢复逻辑备份(自定义格式)
    pg_restore -U postgres -h localhost -p 5432 -d mydb /var/backups/pgadmin/mydb_backup.dump
    
  • 恢复全系统备份
    psql -U postgres -h localhost -p 5432 -f /var/backups/pgadmin/all_databases_backup.sql
    
    注意:恢复全系统备份前,需确保PostgreSQL服务已停止(避免数据冲突),恢复后重启服务。

三、注意事项

  1. 权限要求:备份/恢复操作需以超级用户(如postgres)身份执行,或赋予对应用户足够权限(如CREATEDBSUPERUSER)。
  2. 备份存储:备份文件应存放在安全位置(如外部硬盘、云存储),避免与数据库文件在同一磁盘(防止磁盘故障导致数据丢失)。
  3. 测试恢复:定期在测试环境中验证备份文件的完整性(如尝试恢复到临时数据库),确保备份有效。
  4. 自动化备份:可通过crontab设置定时任务(如每天凌晨2点执行备份),示例:
    crontab -e
    
    添加以下内容:
    0 2 * * * /usr/bin/pg_dump -U postgres -h localhost -p 5432 -F c -f /var/backups/pgadmin/daily_backup_$(date +\%Y-\%m-\%d).dump mydb
    
  5. pgAdmin配置备份:若需备份pgAdmin自身的配置(如用户设置、书签),可备份~/.pgadmin/目录(默认存储路径),示例:
    tar -czvf pgadmin_config_backup.tar.gz ~/.pgadmin
    

0