Provided by: manpages-zh_1.5.2-1_all bug

NAME

       pg_dumpall - 抽出一個 PostgreSQL 數據庫集群到稿本檔案中

SYNOPSIS

       pg_dumpall [ option... ]

DESCRIPTION 描述
       pg_dumpall   是一個用於寫出("轉儲")一個數據庫集群裏的所有  PostgreSQL
       數據庫到一個稿本檔案的工具。     該稿本檔案包含可以用於作為     psql(1)
       的輸入恢復數據庫的SQL命令。        它通過對數據庫集群裏的每個數據庫調用
       pg_dump(1) 實現這個功能。 pg_dumpall 還轉儲出所有數據庫公用的全局對象。
       (pg_dump(1)                                       並不保存這些對象。)
       這些信息目前包括數據庫使用者和組,以及適用於整個數據庫的訪問權限。

        因此,pg_dumpall                    是備份你的數據庫的一體化解決方案。
       但是請注意它的局限性:它無法轉儲"大對象",因為                  pg_dump
       無法把這樣的對象轉儲到純純文字檔中。如果你的數據庫裏有大對象,
       那麼你應該使用 pg_dump 的非文本輸出格式之一轉儲它們。

        因為                 pg_dumpall                 從所有數據庫中讀取表,
       所以你很可能需要以數據庫超級使用者的身份聯接,這樣才能生成完整的轉儲。
       同樣,你也需要超級使用者的權限執行保存下來的稿本,這些才能增加使用者和組,
       以及創建數據庫。

       SQL稿本將寫出到標準輸出。你應該使用合適的                         shell
       操作符把它重定向到檔案。

       pg_dumpall                       需要和                      PostgreSQL
       伺服器連接多次,可能每次都問你口令。這種情況下寫一個      $HOME/.pgpass
       可能會比較方便。

OPTIONS 選項
        下列命令行參數用於控制輸出格式:

       -a

       --data-only
               只轉儲數據,不轉儲模式(數據定義)。

       -c

       --clean
               包括那些重建之前清理(刪除)數據庫對象的SQL命令。

       -d

       --inserts
               把數據當作                INSERT               命令輸出(而不是
              COPY)。這樣將令恢復過程非常緩慢,  但是會令輸出更容易移植到其他
              SQL 數據庫包中。

       -D

       --column-inserts

       --attribute-inserts
               把數據以某種帶著明確字段名(INSERT  INTO  table   (column, ...)
              VALUES         ...)的         INSERT         命令形式轉儲出來。
              這樣會令恢復非常慢,但是如果需要重排字段順序就是必須的。

       -g

       --globals-only
               只轉儲全局對象(使用者和組),而不轉儲數據庫。

       -i

       --ignore-version
               忽略 pg_dumpall 和數據庫伺服器之間的版本差別。

              pg_dumpall           可以處理來自以前版本的           PostgreSQL
              的數據庫,但是太老的數據庫就不再支持了(目前到           7.0)。
              如果你需要覆蓋版本檢查,那麼可以使用這個選項(如果    pg_dumpall
              失敗了,可別說我們沒警告你。)

       -o

       --oids
               為每個表轉儲對象標識符(OID)。    如果你的應用在某種角度引用了
              OID                                       字段,那麼使用這個選項
              (比如,在外鍵約束裏)。否則,不應該使用這個選項。

       -s

       --schema-only
               只轉儲模式(數據定義),不轉儲數據。

       -v

       --verbose
               聲明冗餘模式。這樣將令 pg_dumpall  向標準錯誤列印進度信息。

       -x

       --no-privileges

       --no-acl
               避免轉儲訪問權限(授權/撤銷命令)。

        下面的命令行參數控制數據庫連接參數。

       -h host
               聲明數據庫伺服器所運行的機器的主機名。
              如果數值以斜扛開頭,那麼就把它用做     Unix     域套接字的目錄。
              預設是從 PGHOST 環境變量裏拿來的(如果設置了),  否則使用  Unix
              域套接字。

       -p port
               聲明伺服器監聽的  TCP 端口號或者 Unix 域套接字檔案擴展。 預設是
              PGPORT 環境變量(如果設置了), 或者是編譯時的預設。

       -U username
               以給定使用者身分聯接。

       -W
               強制口令提示。如果伺服器需要口令認証,那麼這個動作應該自動發生。

ENVIRONMENT 環境
       PGHOST

       PGPORT

       PGUSER
               預設連接參數。

NOTES 注意
        因為    pg_dumpall   內部調用   pg_dump,所以,一些診斷信息   可以參考
       pg_dump。

        恢復完之後,我們建議在每個已恢復的對象上運行                 ANALYZE。
       這樣優化器就可以得到有用的統計。     你也可以用    vacuumdb    -a    -z
       清理所有數據庫。

EXAMPLES 例子
        轉儲所有數據庫:

       $ pg_dumpall > db.out

        重新載入這個數據庫:

       $ psql -f db.out template1

        (在這裏你和哪個數據庫聯接並不重要,因為                    pg_dumpall
       創建的稿本檔案將包含合適的命令用於創建和聯接保存的數據庫。)

SEE ALSO 參見
       pg_dump(1). Check there for details on possible error conditions.

譯者
       Postgresql 中文網站 何偉平 <laser@pgsqldb.org>