由於 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 設定啟用持續備份。
在目標環境中執行 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
。
在目標環境中停止資料庫伺服器:
sudo alloydb database-server stop
為確保安全,請重新命名資料目錄的
data
子目錄:cd DATA_DIR
sudo mv data data-OLD
將
DATA_DIR
替換為 AlloyDB Omni 資料目錄的檔案系統路徑。將還原的資料移回原位,並清理「
postgresql.auto.conf
」:sudo mv data-RESTORED data
sudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.conf
啟動資料庫伺服器:
sudo alloydb database-server start
您現在可以使用 psql
連線至資料庫,並確認資料已如預期還原。如果是,您可以刪除先前建立的 data-OLD
子目錄副本data
。
如要進一步瞭解 pgBackRest 中的 PITR,請參閱「時間點復原」。如要進一步瞭解如何準備 pgbackrest.conf
檔案以搭配 AlloyDB Omni 使用,請參閱「為 AlloyDB Omni 設定 pgBackRest」。
其他選項
pgbackrest restore
指令非常靈活,可透過傳入不同的指令列選項,控制各種選項和功能。其中包括:
- 僅復原變更的檔案。
- 只還原選取的資料庫。
如需使用 pgBackRest 執行還原的完整指南,請參閱「還原」。