由於 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使用者身分進行驗證,不必輸入密碼。目標伺服器有足夠的可用磁碟空間,可存放還原的資料庫。
使用特定備份檔還原
在目標伺服器上停止 AlloyDB Omni。
Docker
docker stop CONTAINER_NAME將
CONTAINER_NAME替換為您在安裝 AlloyDB Omni 容器時指派的名稱,例如my-omni。Podman
podman stop CONTAINER_NAME將
CONTAINER_NAME替換為您在安裝 AlloyDB Omni 容器時指派的名稱,例如my-omni。在 Barman 伺服器上,選擇要還原的備份。如要查看可用的備份,請執行
barman list-backups指令。 如要查看特定備份的詳細資料,請執行barman show-backup指令。如要將所選備份檔復原至目標 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。
在 AlloyDB Omni 目標資料庫伺服器上,啟動服務:
Docker
docker start CONTAINER_NAMEPodman
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:要還原的時間,格式為任何 PostgreSQLtimestamp格式,且必須指定日期和時間,例如2024-02-06 00:00:00。DATA_PATH:目標伺服器資料目錄的data子目錄路徑,例如/home/your-username/alloydb-data/data。