Provided by: manpages-zh_1.6.4.3-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>

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh

Application                                        2003-11-02                                      PG_DUMPALL(1)