溫馨提示×

Linux版pgAdmin如何備份數據

小樊
51
2025-09-22 12:57:31
欄目: 智能運維

Linux版pgAdmin備份數據方法

一、通過pgAdmin圖形界面備份

  1. 打開pgAdmin并連接服務器
    啟動pgAdmin應用程序,在左側“服務器”窗格中展開服務器節點,輸入連接信息(如主機名、端口、用戶名、密碼)連接到目標PostgreSQL服務器。

  2. 選擇目標數據庫
    在左側導航欄的“Databases”目錄下,找到需要備份的數據庫,右鍵單擊該數據庫圖標。

  3. 啟動備份流程
    在右鍵菜單中選擇“備份…”選項,彈出“備份數據庫”對話框。

  4. 配置備份選項

    • 常規設置:在“General”標簽頁中,點擊“Filename”右側的“…”按鈕,選擇備份文件的保存路徑(如/home/user/pg_backups/)并輸入文件名(如mydb_backup.backup)。
    • 格式選擇:在“Format”下拉菜單中,選擇備份格式:
      • Custom/ Tarball(推薦):支持壓縮和并行恢復,適用于大多數場景(對應命令行-Fc參數);
      • Plain SQL:生成純文本SQL文件,可用于跨版本遷移(對應命令行-Fp參數)。
    • 對象范圍:默認備份整個數據庫,如需備份特定表,可切換至“Objects”標簽頁,勾選“Tables”并選擇目標表。
  5. 開始備份
    點擊“Backup”按鈕,pgAdmin將執行備份操作。完成后,彈出提示框顯示“Backup completed successfully”(備份成功),點擊“OK”關閉對話框。

二、通過命令行工具(pg_dump/pg_dumpall)備份

若需自動化備份(如定時任務),可使用pgAdmin內置的命令行工具pg_dump(備份單個數據庫)或pg_dumpall(備份整個集群)。

  1. 備份單個數據庫(邏輯備份)
    打開終端,執行以下命令:

    pg_dump -h localhost -U postgres -Fc -f /path/to/backup_file.backup database_name
    

    參數說明:

    • -h:數據庫服務器地址(本地為localhost);
    • -U:數據庫用戶名(如postgres);
    • -Fc:指定自定義格式(支持壓縮);
    • -f:備份文件輸出路徑;
    • database_name:需備份的數據庫名稱。
      執行后,系統會提示輸入用戶密碼,輸入正確密碼即可開始備份。
  2. 備份整個集群(包括角色、表空間)
    若需備份PostgreSQL集群的所有數據庫(包括用戶角色、表空間等),使用pg_dumpall命令:

    pg_dumpall -U postgres -Fc -f /path/to/all_databases_backup.backup
    

    參數說明與pg_dump類似,備份文件包含所有數據庫的創建腳本和全局對象信息。

  3. 物理備份(可選,需停機)
    若需備份數據庫文件系統(如數據目錄),可在數據庫停機狀態下使用tar命令:

    tar -czvf /path/to/physical_backup.tar.gz /var/lib/pgsql/data/
    

    注意:物理備份需停止PostgreSQL服務(systemctl stop postgresql),恢復時需替換數據目錄并重啟服務,適用于災難恢復場景。

三、備份注意事項

  • 權限設置:確保執行備份的用戶(如postgres)具有目標數據庫的READ權限,備份目錄具有寫入權限(可通過chmod命令設置)。
  • 備份存儲:將備份文件存儲在安全位置(如外部存儲設備、云存儲),避免與數據庫文件存放在同一磁盤(防止磁盤故障導致數據丟失)。
  • 定期驗證:定期測試備份文件的完整性(如使用pg_restore嘗試恢復到測試數據庫),確保備份可用。
  • 自動化備份:可將備份命令寫入Shell腳本(如backup_pg.sh),使用crontab設置定時任務(如每天凌晨2點執行):
    # 編輯crontab
    crontab -e
    # 添加以下內容(每天凌晨2點執行備份腳本)
    0 2 * * * /path/to/backup_pg.sh
    
    腳本示例(backup_pg.sh):
    #!/bin/bash
    export PGPASSWORD="your_password"
    pg_dump -h localhost -U postgres -Fc -f /pg_backups/$(date +%Y%m%d).dump mydatabase
    

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女