整理了一下pg_dump邏輯備份還原,pg啥時候推出一個庫級別的物理備份還原就好,邏輯備份能行但操作大庫效率太低,就像MySQL/MSSQL一樣,跨實例做庫級別還原的需求太多了 pg_dump備份 pg_dump備份 -F format 參數,備份文件的格式。format可以是下列之一: p pla ...
整理了一下pg_dump邏輯備份還原,pg啥時候推出一個庫級別的物理備份還原就好,邏輯備份能行但操作大庫效率太低,就像MySQL/MSSQL一樣,跨實例做庫級別還原的需求太多了
pg_dump備份
pg_dump備份 -F format 參數,備份文件的格式。format可以是下列之一: p plain 輸出一個純文本形式的SQL腳本文件(預設值)。 c custom 輸出一個適合於作為pg_restore輸入的自定義格式歸檔。和目錄輸出格式一起,這是最靈活的輸出格式,它允許在恢復時手動選擇和排序已歸檔的項。這種格式在預設情況還會被壓縮。 d directory 輸出一個適合作為pg_restore輸入的目錄格式歸檔。這將創建一個目錄,其中每個被轉儲的表和大對象都有一個文件 t tar 輸出一個適合於輸入到pg_restore中的tar-格式歸檔。tar 格式可以相容目錄格式,抽取一個 tar 格式的歸檔會產生一個合法的目錄格式歸檔。不過,tar 格式不支持壓縮。 還有,在使用 tar 格式時,表數據項的相對順序不能在恢復過程中被更改。 --plain格式備份 pg_dump -v -h 127.0.0.14 -p 9100 -U postgres -Fp -f /usr/local/pgbackup/plain_formart_dump.sql db02 導出的格式為txt格式的平面文件,可執行的sql文本 --custom格式備份 pg_dump -v -h 127.0.0.14 -p 9100 -U postgres -Fc -f /usr/local/pgbackup/custom_formart_dump.sql db02 導出custom格式備份,無法以文本格式打開,不可讀 --directory格式備份,指定一個路徑而不是文件名,另,該格式允許使用-j選項進行表級別並行備份 pg_dump -v -h 127.0.0.14 -p 9100 -U postgres -Fd -f /usr/local/pgbackup/db02dirbak db02 --tar格式備份,指定一個不存在的文件名 pg_dump -v -h 127.0.0.14 -p 9100 -U postgres -Ft -f /usr/local/pgbackup/db02tarbak.tar db02
pg_restore還原
pg_restore還原 pg_restore還原命令從pg_dump創建的備份文件中恢復PostgreSQL資料庫: 1,pg_restore會自動判斷格式,可以不用指定文件格式 2,指定備份文件的格式。因為pg_restore會自動判斷格式, 所以如果一定要指定的話, 它可以是下麵之一: c custom 備份的格式是來自pg_dump的自定義格式。 d directory 備份是一個目錄歸檔。 t tar 備份是一個tar歸檔。 3,-Fc:指定備份文件格式,pg_restore會自動判斷格式,可以不用指定文件格式 4,-c:此選項為恢復指定“clean”模式。它告訴 pg_restore 在重新創建資料庫對象(表、函數等)之前刪除它們。這可以確保恢復的資料庫處於乾凈狀態,並與備份文件的結構相匹配。 --plain格式備份無法通過pg_restore還原,只能通過psql命令導入 psql -h 127.0.0.1 -p 9100 -U postgres db03 < /usr/local/pgbackup/plain_formart_dump.sql --custom格式備份還原 pg_restore -v -h 127.0.0.14 -p 9100 -U postgres -Fc -c -d db05 /usr/local/pgbackup/custom_formart_dump.sql 1,將custom_formart_dump.sql備份恢復到db05資料庫中,db05必須已經存在 --directory格式備份還原 pg_restore -v -h 127.0.0.1 -p 9100 -U postgres -Fd -c -d db04 /usr/local/pgbackup/db02dirbak --tar格式備份還原 pg_restore -v -h 127.0.0.1 -p 9100 -U postgres -Ft -c -d db04 /usr/local/pgbackup/db02tarbak.tar