.\" auto-generated by docbook2man-spec $Revision: 1.1 $ .TH "PG_DUMPALL" "1" "2003-11-02" "Application" "PostgreSQL Client Applications" .SH NAME pg_dumpall \- 抽出一個 PostgreSQL 數據庫集羣到腳本文件中 .SH SYNOPSIS .sp \fBpg_dumpall\fR\fR [ \fR\fB\fIoption\fB\fR...\fB \fR\fR]\fR .SH "DESCRIPTION 描述" .PP \fBpg_dumpall\fR 是一個用於寫出("轉儲")一個數據庫集羣裏的所有 PostgreSQL 數據庫到一個腳本文件的工具。 該腳本文件包含可以用於作爲 \fBpsql\fR(1) 的輸入恢復數據庫的SQL命令。 它通過對數據庫集羣裏的每個數據庫調用 \fBpg_dump\fR(1) 實現這個功能。 \fBpg_dumpall\fR 還轉儲出所有數據庫公用的全局對象。 (\fBpg_dump\fR(1) 並不保存這些對象。) 這些信息目前包括數據庫用戶和組,以及適用於整個數據庫的訪問權限。 .PP 因此,\fBpg_dumpall\fR 是備份你的數據庫的一體化解決方案。 但是請注意它的侷限性:它無法轉儲"大對象",因爲 \fBpg_dump\fR 無法把這樣的對象轉儲到純文本文件中。如果你的數據庫裏有大對象, 那麼你應該使用 \fBpg_dump\fR 的非文本輸出格式之一轉儲它們。 .PP 因爲 pg_dumpall 從所有數據庫中讀取表, 所以你很可能需要以數據庫超級用戶的身份聯接,這樣才能生成完整的轉儲。 同樣,你也需要超級用戶的權限執行保存下來的腳本,這些才能增加用戶和組, 以及創建數據庫。 .PP SQL腳本將寫出到標準輸出。你應該使用合適的 shell 操作符把它重定向到文件。 .PP \fBpg_dumpall\fR 需要和 PostgreSQL 服務器連接多次,可能每次都問你口令。這種情況下寫一個 \fI$HOME/.pgpass\fR 可能會比較方便。 .SH "OPTIONS 選項" .PP 下列命令行參數用於控制輸出格式: .TP \fB-a\fR .TP \fB--data-only\fR 只轉儲數據,不轉儲模式(數據定義)。 .TP \fB-c\fR .TP \fB--clean\fR 包括那些重建之前清理(刪除)數據庫對象的SQL命令。 .TP \fB-d\fR .TP \fB--inserts\fR 把數據當作 INSERT 命令輸出(而不是 COPY)。這樣將令恢復過程非常緩慢, 但是會令輸出更容易移植到其他 SQL 數據庫包中。 .TP \fB-D\fR .TP \fB--column-inserts\fR .TP \fB--attribute-inserts\fR 把數據以某種帶着明確字段名(INSERT INTO \fItable\fR (\fIcolumn\fR, ...) VALUES ...)的 \fBINSERT\fR 命令形式轉儲出來。 這樣會令恢復非常慢,但是如果需要重排字段順序就是必須的。 .TP \fB-g\fR .TP \fB--globals-only\fR 只轉儲全局對象(用戶和組),而不轉儲數據庫。 .TP \fB-i\fR .TP \fB--ignore-version\fR 忽略 pg_dumpall 和數據庫服務器之間的版本差別。 \fBpg_dumpall\fR 可以處理來自以前版本的 PostgreSQL 的數據庫,但是太老的數據庫就不再支持了(目前到 7.0)。 如果你需要覆蓋版本檢查,那麼可以使用這個選項(如果 pg_dumpall 失敗了,可別說我們沒警告你。) .TP \fB-o\fR .TP \fB--oids\fR 爲每個錶轉儲對象標識符(OID)。 如果你的應用在某種角度引用了 OID 字段,那麼使用這個選項 (比如,在外鍵約束裏)。否則,不應該使用這個選項。 .TP \fB-s\fR .TP \fB--schema-only\fR 只轉儲模式(數據定義),不轉儲數據。 .TP \fB-v\fR .TP \fB--verbose\fR 聲明冗餘模式。這樣將令 pg_dumpall 向標準錯誤打印進度信息。 .TP \fB-x\fR .TP \fB--no-privileges\fR .TP \fB--no-acl\fR 避免轉儲訪問權限(授權/撤銷命令)。 .PP .PP 下面的命令行參數控制數據庫連接參數。 .TP \fB-h \fIhost\fB\fR 聲明數據庫服務器所運行的機器的主機名。 如果數值以斜扛開頭,那麼就把它用做 Unix 域套接字的目錄。 缺省是從 PGHOST 環境變量裏拿來的(如果設置了), 否則使用 Unix 域套接字。 .TP \fB-p \fIport\fB\fR 聲明服務器監聽的 TCP 端口號或者 Unix 域套接字文件擴展。 缺省是 PGPORT 環境變量(如果設置了), 或者是編譯時的缺省。 .TP \fB-U \fIusername\fB\fR 以給定用戶身分聯接。 .TP \fB-W\fR 強制口令提示。如果服務器需要口令認證,那麼這個動作應該自動發生。 .PP .SH "ENVIRONMENT 環境" .TP \fBPGHOST\fR .TP \fBPGPORT\fR .TP \fBPGUSER\fR 缺省連接參數。 .SH "NOTES 注意" .PP 因爲 pg_dumpall 內部調用 pg_dump,所以,一些診斷信息 可以參考 pg_dump。 .PP 恢復完之後,我們建議在每個已恢復的對象上運行 \fBANALYZE\fR。 這樣優化器就可以得到有用的統計。 你也可以用 \fBvacuumdb -a -z\fR 清理所有數據庫。 .SH "EXAMPLES 例子" .PP 轉儲所有數據庫: .sp .nf $ \fBpg_dumpall > db.out\fR .sp .fi .PP 重新載入這個數據庫: .sp .nf $ \fBpsql -f db.out template1\fR .sp .fi (在這裏你和哪個數據庫聯接並不重要,因爲 pg_dumpall 創建的腳本文件將包含合適的命令用於創建和聯接保存的數據庫。) .SH "SEE ALSO 參見" .PP \fBpg_dump\fR(1). Check there for details on possible error conditions. .SH "譯者" .B Postgresql 中文網站 .B 何偉平 .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR