您可以使用任何與 PostgreSQL 相容的資料庫備份技術,保護 AlloyDB Omni 資料。舉例來說,您可以設定 AlloyDB Omni,允許來自您控管的 Barman 伺服器連線。這樣一來,Barman 伺服器就能持續備份儲存在 AlloyDB Omni 伺服器中的資料。
設定 Barman 和 AlloyDB Omni 伺服器,讓兩者能搭配運作後,您就可以執行 Barman 指令,完成各種資料保護和災害復原工作,包括:
- 建立資料的隨選備份。
- 設定資料變更的同步 WAL 串流至備份伺服器。
- 從特定備份還原。
- 執行時間點還原。
如要進一步瞭解 Barman 的運作方式,請參閱 Barman 手冊。
事前準備
設定 AlloyDB Omni 與 Barman 搭配運作前,請先確認下列事項:
- Barman 安裝在獨立伺服器上。您安裝 Barman 的伺服器必須能透過 TCP 與 AlloyDB Omni 伺服器通訊。 
設定 AlloyDB Omni 以搭配 Barman 使用
如要準備 AlloyDB Omni 伺服器以搭配 Barman 使用,請在安裝 AlloyDB Omni 的伺服器上執行下列指令。
- 建立 - barman資料庫使用者,並授予適當權限:- Docker- docker exec CONTAINER_NAME psql -h localhost -U postgres -c " CREATE USER barman; GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman; GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman; GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman; GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman; GRANT pg_read_all_settings TO barman; GRANT pg_read_all_stats TO barman; CREATE USER streaming_barman WITH REPLICATION; "- 將 - CONTAINER_NAME替換為您在安裝 AlloyDB Omni 時指派給容器的名稱。- Podman- podman exec CONTAINER_NAME psql -h localhost -U postgres -c " CREATE USER barman; GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman; GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman; GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman; GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman; GRANT pg_read_all_settings TO barman; GRANT pg_read_all_stats TO barman; CREATE USER streaming_barman WITH REPLICATION; "- 將 - CONTAINER_NAME替換為您在安裝 AlloyDB Omni 時指派給容器的名稱。
- 在 - DATA_DIR/pg_hba.conf檔案中,於檔案中現有的- host all all all scram-sha-256行之前新增下列幾行:- host all barman BARMAN_IP/32 AUTHN_METHOD host replication streaming_barman BARMAN_IP/32 AUTHN_METHOD- 更改下列內容: - DATA_DIR:用於 AlloyDB Omni 資料目錄的檔案系統路徑。
- BARMAN_IP:Barman 伺服器的 IP 位址。
- :PostgreSQL 驗證方法,AlloyDB for PostgreSQL 伺服器會預期 Barman 伺服器使用此方法。 - AUTHN_METHOD建議使用下列其中一個值:- 如要允許 Barman 伺服器在沒有密碼的情況下進行驗證,請使用 - trust。
- 如要向 Barman 伺服器要求密碼,請使用 - scram-sha-256。
 
 
- 在 - DATA_DIR/postgresql.conf檔案中新增下列幾行內容:- archive_command='/bin/true' archive_mode=on listen_addresses='*' wal_level='replica'
- 重新啟動 AlloyDB Omni 服務: - Docker- docker restart CONTAINER_NAME- Podman- podman restart CONTAINER_NAME- 將 - CONTAINER_NAME替換為您在安裝 AlloyDB Omni 時指派給容器的名稱。
- 執行下列指令,確認所有必要參數都已正確設定: - Docker- docker exec CONTAINER_NAME psql -h localhost -U postgres -c " SELECT name, setting FROM pg_catalog.pg_settings WHERE name IN ('archive_command', 'archive_mode', 'listen_addresses', 'wal_level') ORDER BY name;"- Podman- podman exec CONTAINER_NAME psql -h localhost -U postgres -c " SELECT name, setting FROM pg_catalog.pg_settings WHERE name IN ('archive_command', 'archive_mode', 'listen_addresses', 'wal_level') ORDER BY name;"- 輸出看起來像這樣: - name | setting ------------------|----------- archive_command | /bin/true archive_mode | on listen_addresses | * wal_level | replica (4 rows)
設定 Barman 備份伺服器
如要設定及設定 Barman,使其與 AlloyDB Omni 伺服器搭配運作,請在 Barman 伺服器上執行下列指令。
- 確認串流複製連線是否正常運作: - psql -h DATABASE_IP -U streaming_barman -c "IDENTIFY_SYSTEM" replication=1- 輸出結果會與下列內容相似: - systemid | timeline | xlogpos | dbname ---------------------+----------+------------+-------- 7265722823667040273 | 1 | 0/1F0AFCD0 | (1 row)
- 確認 Barman 可以 - barman資料庫使用者的身分連線至 AlloyDB Omni 伺服器。- psql -t -h DATABASE_IP -U barman -d postgres -c "SELECT 'Connected as: '||current_user"- 將 - DATABASE_IP替換為 AlloyDB Omni 伺服器的 IP 位址。- 輸出結果會與下列內容相似: - Connected as: barman
- 根據需求和偏好設定 Barman 備份伺服器。 - 設定必須包含下列設定: - 設定 conninfo,以barman使用者身分連線至 AlloyDB Omnipostgres資料庫。
- 設定 streaming_conninfo,使用streaming_barman使用者。
- 按照 Barman 說明文件指示,設定啟用 WAL 串流所需的其他指令。
 - 以下這個最簡單但完整的範例,會修改 Barman 文件中的串流設定範例: - [CONFIGURATION_TAG] description = "Backup settings for my AlloyDB Omni server" conninfo = host=DATABASE_IP user=barman dbname=postgres streaming_conninfo = host=DATABASE_IP user=streaming_barman backup_method = postgres streaming_archiver = on slot_name = barman- 更改下列內容: - CONFIGURATION_TAG:執行- barman指令時,用來識別這個伺服器設定的簡短標記,例如- omni。
- DATABASE_IP:AlloyDB Omni 伺服器的 IP 位址。
 
- 設定 
- 切換到 - barman使用者。- sudo su - barman
- 使用 - barman receive-wal指令建立複製運算單元,然後開始從資料庫伺服器接收 WAL 串流:- barman receive-wal --create-slot CONFIGURATION_TAG- barman receive-wal CONFIGURATION_TAG &- 將 - CONFIGURATION_TAG替換為您在上一步選擇的設定代碼。
Barman 現在已設定完成,可與 AlloyDB Omni 伺服器搭配運作。如要檢查複製狀態、建立手動備份及執行其他工作,請參閱一般指令。
舉例來說,如要建立手動備份,請執行barman backup 指令。