使用 pgBackRest 還原 AlloyDB Omni 叢集

選取文件版本:

本頁面說明如何使用 pgBackRest 建立的備份檔,還原 AlloyDB Omni 叢集。pgBackRest 是 AlloyDB Omni Docker 容器隨附的開放原始碼備份解決方案。

由於 AlloyDB Omni 與 PostgreSQL 相容,因此pgBackRest 手冊中說明的資料還原指令和技術也適用於 AlloyDB Omni。本頁面將示範常見的復原工作,並提供相關指令的範例。

如要進一步瞭解如何設定 pgBackRest 來搭配 AlloyDB Omni 使用,請參閱「為 AlloyDB Omni 設定 pgBackRest」。

事前準備

如要設定 AlloyDB Omni 與 pgBackrest 搭配運作,您必須先在受控伺服器上安裝並執行 AlloyDB Omni

  • 目標資料庫伺服器,執行與來源資料庫伺服器相同的主要 AlloyDB Omni 版本。如要進一步瞭解如何安裝 AlloyDB Omni,請參閱「安裝 AlloyDB Omni」。

    目標伺服器可以與來源伺服器是同一部機器。

  • pgBackRest 備份存放區,內含至少一個來源 AlloyDB Omni 資料庫的備份。

  • 目標伺服器有足夠的可用磁碟空間,可存放還原的資料庫。

總覽

如要使用 pgBackRest 執行 AlloyDB Omni 還原作業,請執行pgbackrest restore 指令。您提供給指令的引數會因情況而異。

一般來說,您會使用加上旗標的 pgbackrest restore 指令,提供下列資訊:

  • pgbackrest.conf 檔案的位置。
  • 要還原的 pgBackRest 備份存放區名稱。這些存放區會在 pgbackest.conf 檔案中命名及定義。
  • 本機檔案系統中要寫入還原資料的位置。
  • 要還原的特定備份或時間點的 ID。

執行容器化 pgbackrest restore 指令時,請記得使用容器角度的檔案系統路徑。舉例來說,無論 AlloyDB Omni 資料目錄位於主機伺服器上的哪個位置,路徑一律為 /mnt/disks/pgsql。詳情請參閱「檔案系統路徑注意事項」。

執行時間點還原

這個範例會從 pgBackRest 存放區還原資料,並指定要從哪個時間點還原。如果您在目標環境的 pgbackrest.conf 檔案中定義多個存放區,pgBackRest 會根據可用性、預期速度和其他因素,選擇要從哪個存放區還原。

本範例假設:

  • 目標 AlloyDB Omni 資料目錄的頂層有 pgbackrest.conf 檔案。這會讓容器化 pgbackrest/mnt/disks/pgsql/pgbackrest.conf 的形式存取檔案。

  • 您已透過 pgBackRest 設定啟用持續備份

  1. 在目標環境中執行 PITR 還原,並指定要從哪個時間戳記還原:

    sudo docker exec pg-service pgbackrest \
      --config-path=/mnt/disks/pgsql \
      --stanza=STANZA \
      --type=time \
      --pg1-path=/mnt/disks/pgsql/data-RESTORED \
      --target="TIMESTAMP" \
      restore

    更改下列內容:

    • STANZA:由 pgbackrest.conf 檔案定義的設定節,用於套用至這項還原作業,例如 omni

    • TIMESTAMP:要從哪個時間點還原,例如 2024-02-22 19:50:00

  2. 在目標環境中停止資料庫伺服器:

    sudo alloydb database-server stop
  3. 為確保安全,請重新命名資料目錄的 data 子目錄:

    cd DATA_DIR
    sudo mv data data-OLD

    DATA_DIR 替換為 AlloyDB Omni 資料目錄的檔案系統路徑。

  4. 將還原的資料移回原位,並清理「postgresql.auto.conf」:

    sudo mv data-RESTORED data
    sudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.conf
  5. 啟動資料庫伺服器:

    sudo alloydb database-server start

您現在可以使用 psql 連線至資料庫,並確認資料已如預期還原。如果是,您可以刪除先前建立的 data-OLD 子目錄副本data

如要進一步瞭解 pgBackRest 中的 PITR,請參閱「時間點復原」。如要進一步瞭解如何準備 pgbackrest.conf 檔案以搭配 AlloyDB Omni 使用,請參閱「為 AlloyDB Omni 設定 pgBackRest」。

其他選項

pgbackrest restore 指令非常靈活,可透過傳入不同的指令列選項,控制各種選項和功能。其中包括:

  • 僅復原變更的檔案。
  • 只還原選取的資料庫。

如需使用 pgBackRest 執行還原的完整指南,請參閱「還原」。