pg_dumpbinary v2.7

發佈於 2022-03-15,作者:Gilles Darold
相關的開源專案

瑞士蘇黎世 - 2022 年 3 月 14 日

pg_dumpbinary

pg_dumpbinary 是一個程式,用於以二進制格式傾印資料的 PostgreSQL 資料庫。 產生的傾印檔必須使用此工具提供的 pg_restorebinary 進行還原。

pg_dumpbinary 2.7 今天發布,這個新版本為 pg_restorebinary 新增了兩個選項

  • -E, --exclude-ext EXTNAME 要排除還原的擴充套件名稱,可以使用多次。
  • --schema-exists 將 IF NOT EXISTS 子句新增至 CREATE SCHEMA

它們可用於修復擴充套件的依賴關係,例如在建立順序已變更時。它們可以手動建立並從還原中排除,擴充套件的配置表資料仍然會還原,這只會移除擴充套件的建立語句。如果 schema 在還原之前已存在,則 --schema-exists 將通過附加 IF NOT EXISTS 子句來防止命令在 schema 建立時失敗。

pg_dumpbinary 2.6 上週發布,並新增了一個新的命令行選項 --load-via-partition-root 到 pg_dumpbinary,以僅通過分割表(partitioned table)的根目錄傾印/還原資料,而不是像預設行為那樣每個分區都進行。 它使 COPY 語句的目標指向分割層級的根,而不是分區,這在重新載入資料到伺服器上,且伺服器上的行不總是落入與原始伺服器上相同的分區時可能很有用。 這等效於 pg_dump 選項。

pg_dumpbinary 在某些情況下很有用

  • 您有 bytea 無法透過 pg_dump 匯出,因為 escape/hex 輸出的總大小超過 1Gb。
  • 您有自定義類型,在 bytea 中於內部儲存 \0,但資料作為 char/varchar/text 返回,這會截斷 '\0' 之後的資料。 在這種情況下,pg_dump 將以輸出類型匯出資料,這將導致資料遺失。
  • 任何其他二進制格式可能有用的情況。

如果您遇到這種情況,pg_dumpbinary 將透過以二進制格式傾印 PostgreSQL 資料庫來幫助您。 在所有其他情況下,您必須使用 PostgreSQL 隨附的 pg_dump/pg_restore 命令。

有關功能的完整說明,請參閱文件。

連結 & 鳴謝

pg_dumpbinary 是來自 LzLabs GmbH 的一個開放專案。 歡迎任何為構建更好的工具做出的貢獻。 您只需使用 GitHub 工具發送您的想法、功能請求或補丁即可。

連結