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文件中包含大對象