由於 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_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
:要還原的時間,格式為任何 PostgreSQLtimestamp
格式,且必須指定日期和時間,例如2024-02-06 00:00:00
。DATA_PATH
:目標伺服器資料目錄的data
子目錄路徑,例如/home/your-username/alloydb-data/data
。