附註:

使用實體待命複寫在 VM 上導入 PostgreSQL 資料庫的跨區域災害復原

簡介

pg_basebackup 是 PostgreSQL 提供的命令行公用程式,用於執行執行中 PostgreSQL 資料庫叢集的完整備份。其設計目的是為資料庫叢集建立二進位複本,以用於複製或復原。

pg_basebackup 是 PostgreSQL 提供的命令行公用程式,用於執行執行中 PostgreSQL 資料庫叢集的完整備份。其設計目的是為資料庫叢集建立二進位複本,以用於複製或復原。

pg_basebackup 公用程式的其中一個主要優點是,它不需存取資料庫所在的檔案系統即可運作。相反地,它會使用串流複製通訊協定連線至 PostgreSQL 伺服器,即使伺服器在執行時也能安全且方便地使用。

通常與預寫記錄 (WAL) 封存搭配使用,pg_basebackup 公用程式在設定串流複製及確保虛擬機器 (VM) 上執行之 PostgreSQL 環境的高可用性和災害復原方面扮演著關鍵角色。

主要特點:

本教學課程概述在運算 VM 上代管的兩個 PostgreSQL 資料庫之間設定跨區域串流複製的作業。

目標

必要條件

建立整個區域的 VCN 對等互連。若要跨區域連線至運算 VM,必須設定 VCN 對等互連。請參閱下列主題以取得詳細資訊:

請確定已正確設定 VCN 對等互連,以便在不同區域的資料庫之間建立無縫連線。

工作 1:設定主要 PostgreSQL 資料庫

  1. 在主要 PostgreSQL 資料庫中建立名為 replicator 的使用者。

    CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD '*********';
    
  2. 驗證角色 / 使用者。

    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  
    
  3. 以下列詳細資訊更新 postgresql.conf 檔案。

    listen_addresses = '*'
    
  4. 更新 pg_hba.conf 檔案。使用待命資料庫 IP 位址。

    host    replication     replicator      Standby_DB_IP/32       md5
    
  5. 重新啟動 PostgreSQL 服務。

    sudo systemctl restart PostgreSQL
    

工作 2:設定待命 PostgreSQL 資料庫

  1. 停止 PostgreSQL 服務。

    sudo systemctl stop PostgreSQL
    
  2. 移除現有的二進位檔。

    cp -R /var/lib/postgresql/13/main /var/lib/postgresql/13/main_old
    rm -rf /var/lib/postgresql/13/main
    
  3. 執行 pg_basebackup 命令以設定串流複製。

    pg_basebackup -h PrimaryDB_IP -D /var/lib/postgresql/13/main -U replicator -P -v -R -X stream -C -S slaveslot1 
    
  4. 啟動 PostgreSQL 服務。

    sudo systemctl start PostgreSQL
    

工作 3:驗證主要 PostgreSQL 資料庫上的串流複製

在主要 PostgreSQL 資料庫上執行下列命令,以收集主要資料庫與 DR 資料庫之間的同步狀態。

SELECT * FROM pg_replication_slots;
SELECT * FROM pg_stat_replication;

確認

其他學習資源

docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center