使用 Barman 還原 AlloyDB Omni 叢集

選取說明文件版本:

本頁說明如何使用 Barman (開放原始碼資料庫備份伺服器) 建立的備份,還原 AlloyDB Omni 叢集。

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

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

事前準備

還原 AlloyDB Omni 資料前,請準備下列項目:

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

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

  • 目標伺服器上安裝的 rsync 公用程式。

  • Barman 備份伺服器,且至少有一個來源 AlloyDB Omni 資料庫的有效 Barman 備份。

  • Barman 備份伺服器與目標伺服器之間的 SSH 連線。

  • 設定 SSH 金鑰,允許 Barman 伺服器上的 barman 使用者以目標伺服器上的 postgres 使用者身分進行驗證,不必輸入密碼。

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

使用特定備份檔還原

  1. 在目標伺服器上停止 AlloyDB Omni。

    Docker

     docker stop CONTAINER_NAME

    CONTAINER_NAME 替換為您在安裝 AlloyDB Omni 容器時指派的名稱,例如 my-omni

    Podman

     podman stop CONTAINER_NAME

    CONTAINER_NAME 替換為您在安裝 AlloyDB Omni 容器時指派的名稱,例如 my-omni

  2. 在 Barman 伺服器上,選擇要還原的備份。如要查看可用的備份,請執行barman list-backups 指令。 如要查看特定備份的詳細資料,請執行barman show-backup 指令

  3. 如要將所選備份檔復原至目標 AlloyDB Omni 伺服器,請執行 barman recover 指令

    執行指令時,請一併提供下列資訊:

    • 使用遠端復原選項
    • 將目標伺服器的資料目錄指定為目的地目錄。

    下列指令示範如何搭配使用 barman recover 與 AlloyDB Omni:

    barman recover --remote-ssh-command "ssh postgres@TARGET_IP" TARGET_LABEL BACKUP_ID DATA_PATH

    更改下列內容:

    • TARGET_IP:目標伺服器的 IP 位址。

    • TARGET_LABEL:您在 Barman 的設定檔中指派給伺服器的標籤。

    • BACKUP_ID:要還原的備份 ID,在先前的步驟中已識別,例如 20230810T210200

    • DATA_PATH:目標伺服器資料目錄的 data 子目錄路徑,例如 /home/your-username/alloydb-data/data

  4. 在 AlloyDB Omni 目標資料庫伺服器上,啟動服務:

    Docker

    docker start CONTAINER_NAME

    Podman

    podman start CONTAINER_NAME

服務重新啟動後,請連線至 AlloyDB Omni 伺服器。 您應該會看到已還原的資料庫和資料。

復原至特定時間點

如要執行時間點復原,請按照上一節列出的相同步驟操作,但要進行一項修改。執行 barman recover 指令時,您也必須指定其中一個 Barman 時間點還原選項

下列指令示範如何搭配使用 barman recover 和 AlloyDB Omni,並使用時間點復原選項:

barman recover --remote-ssh-command "ssh postgres@TARGET_IP" TARGET_LABEL BACKUP_ID --target-time="RESTORE_TIMESTAMP" DATA_PATH

更改下列內容:

  • TARGET_IP:目標伺服器的 IP 位址。

  • TARGET_LABEL:您在 Barman 的設定檔中指派給伺服器的標籤。

  • BACKUP_ID:要還原的備份 ID,在先前的步驟中已識別,例如 20230810T210200

  • TARGET_TIMESTAMP:要還原的時間,格式為任何 PostgreSQL timestamp 格式,且必須指定日期和時間,例如 2024-02-06 00:00:00

  • DATA_PATH:目標伺服器資料目錄的 data 子目錄路徑,例如 /home/your-username/alloydb-data/data