PostgreSQL 備份與恢復


PostgreSQL自帶一個客戶端pgAdmin,里面有個備份,恢復選項,也能對數據庫進行備份 恢復(還原),
 
其實PostgreSQL內置不少的工具,尋找的備份恢復方案就在其中:pg_dump,psql。
 在數據庫的安裝目錄下,如:C:\Program Files\PostgreSQL\bin文件夾,會看到不少的exe文件,這就是PostgreSQL內置的工具了。里面會找到 pg_dump.exe,psql.exe兩個文件。我們怎么用他們?
用法:
備份數據庫,指令如下:
pg_dump -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
開始-運行-cmd 彈出dos控制台;然后 在控制台里,進入PostgreSQL安裝目錄bin下:
cd C:\Program Files\PostgreSQL\9.0\bin
最后執行備份指令:  
pg_dump -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
 
 
恢復數據庫
例:c:\pgsql\bin  pg_restore -h localhost -p 5432 -U postgres -d yy_ly -Fc "f:\yy_ly.dump"
 -h 服務器地址
-p 端口號
-U 用戶號
-d 數據庫名字 database
-F, --format=c|d|t       備份文件格式(應該自動進行)  
     其中--format=c|d|t    c 代表定制custor   d 代表目錄 t 代表 tar 壓縮文件
========================================================
 
D:\Program Files\pgsql\bin>pg_restore --help
pg_restore 從一個歸檔中恢復一個由 pg_dump 創建的 PostgreSQL 數據庫.
 
用法:
  pg_restore [選項]... [文件名]
 
一般選項:
  -d, --dbname=名字        連接數據庫名字
  -f, --file=文件名       輸出文件名(- 對於stdout)
  -F, --format=c|d|t       備份文件格式(應該自動進行)
  -l, --list               打印歸檔文件的 TOC 概述
  -v, --verbose            詳細模式
  -V, --version            輸出版本信息, 然后退出
  -?, --help               顯示此幫助, 然后退出
 
恢復控制選項:
  -a, --data-only              只恢復數據, 不包括模式
  -c, --clean                  在重新創建之前,先清除(刪除)數據庫對象
  -C, --create                 創建目標數據庫
  -e, --exit-on-error          發生錯誤退出, 默認為繼續
  -I, --index=NAME             恢復指定名稱的索引
  -j, --jobs=NUM               執行多個並行任務進行恢復工作
  -L, --use-list=FILENAME      從這個文件中使用指定的內容表排序
                               輸出
  -n, --schema=NAME            在這個模式中只恢復對象
  -N, --exclude-schema=NAME    不恢復此模式中的對象
  -O, --no-owner               不恢復對象所屬者
  -P, --function=NAME(args)    恢復指定名字的函數
  -s, --schema-only            只恢復模式, 不包括數據
  -S, --superuser=NAME         使用指定的超級用戶來禁用觸發器
  -t, --table=NAME             恢復命名關系(表、視圖等)
  -T, --trigger=NAME           恢復指定名字的觸發器
  -x, --no-privileges          跳過處理權限的恢復 (grant/revoke)
  -1, --single-transaction     作為單個事務恢復
  --disable-triggers           在只恢復數據的過程中禁用觸發器
  --enable-row-security        啟用行安全性
  --if-exists                  當刪除對象時使用IF EXISTS
  --no-comments                不恢復注釋
  --no-data-for-failed-tables  對那些無法創建的表不進行
                               數據恢復
  --no-publications            不恢復發行
  --no-security-labels         不恢復安全標簽信息
  --no-subscriptions           不恢復訂閱
  --no-tablespaces             不恢復表空間的分配信息
  --section=SECTION            恢復命名節 (數據前、數據及數據后)
  --strict-names               要求每個表和(或)schema包括模式以匹配至少一個實體
  --use-set-session-authorization
                               使用 SESSION AUTHORIZATION 命令代替
                               ALTER OWNER 命令來設置所有權
 
聯接選項:
  -h, --host=主機名        數據庫服務器的主機名或套接字目錄
  -p, --port=端口號        數據庫服務器的端口號
  -U, --username=名字      以指定的數據庫用戶聯接
  -w, --no-password        永遠不提示輸入口令
  -W, --password           強制口令提示 (自動)
  --role=ROLENAME          在恢復前執行SET ROLE操作
 
選項 -I, -n, -N, -P, -t, -T, 以及 --section 可以組合使用和指定
多次用於選擇多個對象.
 
示例:
D:\Program Files\pgsql\bin>pg_restore -h localhost -p 5432 -U postgres -d yy_ly -Fc "f:\yy_ly.dump"
 
   一、 備份:
 
導出命令:pg_dump [OPTION]… [DBNAME]
查看使用幫助:pg_dump –help
主要參數解釋:
 
關鍵字    說明(默認值)
-h, –host=HOSTNAME    數據庫服務器IP
-p, –port=PORT    數據庫服務器端口號
-U, –username=NAME    用戶名
-W, –password    密碼
-F, –format=c|t|p    輸出文件格式(custom,tar,plain text)
-v, –verbose    詳細信息模式,會顯示備份時的信息
-f, –file=FILENAME    輸出文件名
-b, –blobs    在dump文件中包含大對象
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM