PostgreSQL 備份與恢複

備份

備份數據庫,需要使用pg_dump指令,它將指定的數據庫所有內容轉儲到一個文件中,在數據庫服務器上運行入下指令

$ pg_dump -U db_user -W -F t db_name > /path/to/your/file/dump_name.tar
# -U 指定哪個用戶將連接到數據庫服務器
# -W 強製pg_dump在連接到服務器之前提示輸入密碼
# -F 用於指定輸出文件的格式,可以是以下之一:
#       p - 純文本SQL腳本
#       c - 自定義格式存檔
#       d - 目錄格式存檔
#       t - tar格式存檔

pdtar格式適合使用pg_restore進行恢複

恢複

數據庫的恢複操作有如下兩種

psql

pg_dump創建出來的純SQL文件中進行恢複

$ psql -U db_user db_name < dump_name.pgsql

db_user數據庫用戶,db_name是數據庫名稱,dump_name.sql是備份文件的名稱

pg_restore

pg_dump創建出來的.tar文件,目錄或使用的自定義格式進行恢複

$ pg_restore -d db_name /path/to/your/file/dump_name.tar -c -U db_user
# 各種選項,例如:
# -c 在重新創建數據庫對象之前刪除它們
# -C 在恢複之前創建數據庫
# -e 如果遇到錯誤則退出
# -F format指定存檔的格式

示例

  • 備份和還原單個數據庫

備份

$ pg_dump -U postgres -d mydb > mydb.pgsql

還原

$ psql -U postgres -d mydb < mydb.pgsql
  • 備份和還原所有數據庫

備份

$ pg_dumpall -U postgres > alldbs.pgsql

還原

$ psql -U postgres < alldbs.pgsql
  • 備份和恢複單表

備份

$ pg_dump -U postgres -d mydb -t mytable > mydb-mytable.pgsql

還原

$ psql -U postgres -d mydb < mydb-mytable.pgsql
  • 壓縮備份和還原數據庫

備份

$ pg_dump -U postgres -d mydb | gzip > mydb.pgsql.gz

從壓縮備份文件直接恢複

$ gunzip -c mydb.pgsql.gz | psql -U postgres -d mydb
  • 一個簡單的備份腳本
file_name="db-`date +%F-%H-%M-%S`.sql"
export PGPASSWORD="xxxxxxxxxx"

pg_dump -h 127.0.0.1 -U db -w -F p db > ~/.backup/$file_name

相關說明:

1、VIP會員無限製任意下載,免積分。立即前往開通>>

2、下載積分可通過日常 簽到綁定郵箱 以及 積分兌換 等途徑獲得!

3、本站資源大多存儲在雲盤,如出現鏈接失效請評論反饋,如有密碼,均為:www.ipipn.com。

4、所有站內資源僅供學習交流使用。未經原版權作者許可,禁止用於任何商業環境,否則後果自負。為尊重作者版權,請購買正版作品。

5、站內資源來源於網絡公開發表文件或網友分享,如侵犯您的權益,請聯係管理員處理。

6、本站提供的源碼、模板、軟件工具等其他資源,都不包含技術服務,請大家諒解!

7、源碼、模板等資源會隨著技術、壞境的升級而存在部分問題,還請慎重選擇。

PS.源碼均收集自網絡,如有侵犯閣下權益,請發信件至: admin@ipipn.com .


源站網 » PostgreSQL 備份與恢複

發表評論

讚助本站發展 維持服務器消耗

全站源碼免費下載 立刻讚助