附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 其使用 Oracle Cloud Infrastructure 證明資料、租用戶以及區間的範例值。完成實驗室時,請將這些值替代為雲端環境特定的值。
使用實體待命複寫在 VM 上導入 PostgreSQL 資料庫的跨區域災害復原
簡介
pg_basebackup
是 PostgreSQL 提供的命令行公用程式,用於執行執行中 PostgreSQL 資料庫叢集的完整備份。其設計目的是為資料庫叢集建立二進位複本,以用於複製或復原。
pg_basebackup
是 PostgreSQL 提供的命令行公用程式,用於執行執行中 PostgreSQL 資料庫叢集的完整備份。其設計目的是為資料庫叢集建立二進位複本,以用於複製或復原。
pg_basebackup
公用程式的其中一個主要優點是,它不需存取資料庫所在的檔案系統即可運作。相反地,它會使用串流複製通訊協定連線至 PostgreSQL 伺服器,即使伺服器在執行時也能安全且方便地使用。
通常與預寫記錄 (WAL) 封存搭配使用,pg_basebackup
公用程式在設定串流複製及確保虛擬機器 (VM) 上執行之 PostgreSQL 環境的高可用性和災害復原方面扮演著關鍵角色。
主要特點:
-
容易用於設定待命伺服器。
-
支援平行備份,以提升效能。
-
允許備份壓縮。
-
可以包含用於時間點復原的 WAL 檔案。
本教學課程概述在運算 VM 上代管的兩個 PostgreSQL 資料庫之間設定跨區域串流複製的作業。
目標
- 在 VM 上設定 PostgreSQL 資料庫的跨區域災害復原 (DR),並在 DR 區域中設定實體待命資料庫。
必要條件
建立整個區域的 VCN 對等互連。若要跨區域連線至運算 VM,必須設定 VCN 對等互連。請參閱下列主題以取得詳細資訊:
-
導入 VCN 對等:使用動態路由閘道在不同區域對等互連 OCI VCN 。
-
管理動態路由網關 (DRG):動態路由網關。
請確定已正確設定 VCN 對等互連,以便在不同區域的資料庫之間建立無縫連線。
工作 1:設定主要 PostgreSQL 資料庫
-
在主要 PostgreSQL 資料庫中建立名為
replicator
的使用者。CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD '*********';
-
驗證角色 / 使用者。
postgres=# \du List of roles Role name | Attributes | Member of ----------------+------------------------------------------------------------+----------- admin | Superuser | {} guest | | {} mytestdb | | {} postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} replicator | Replication
-
以下列詳細資訊更新
postgresql.conf
檔案。listen_addresses = '*'
-
更新
pg_hba.conf
檔案。使用待命資料庫 IP 位址。host replication replicator Standby_DB_IP/32 md5
-
重新啟動 PostgreSQL 服務。
sudo systemctl restart PostgreSQL
工作 2:設定待命 PostgreSQL 資料庫
-
停止 PostgreSQL 服務。
sudo systemctl stop PostgreSQL
-
移除現有的二進位檔。
cp -R /var/lib/postgresql/13/main /var/lib/postgresql/13/main_old rm -rf /var/lib/postgresql/13/main
-
執行
pg_basebackup
命令以設定串流複製。pg_basebackup -h PrimaryDB_IP -D /var/lib/postgresql/13/main -U replicator -P -v -R -X stream -C -S slaveslot1
-
啟動 PostgreSQL 服務。
sudo systemctl start PostgreSQL
工作 3:驗證主要 PostgreSQL 資料庫上的串流複製
在主要 PostgreSQL 資料庫上執行下列命令,以收集主要資料庫與 DR 資料庫之間的同步狀態。
SELECT * FROM pg_replication_slots;
SELECT * FROM pg_stat_replication;
確認
- 作者 - Snehaa Patnaik (提升導入專家 - 資料庫)
其他學習資源
在 docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Implement Cross Region Disaster Recovery for PostgreSQL Databases on VM Using Physical Standby Replication
G35554-01
Copyright ©2025, Oracle and/or its affiliates.