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格式存檔
p
、d
和tar
格式適合使用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 備份與恢複