在搭建容災執行個體之前,您需確保源執行個體(即需進行容災的執行個體)與目標執行個體(災備執行個體,即RDS PostgreSQL執行個體)之間的網路能夠互連。此外,還需在源執行個體中建立容災同步帳號,並配置相關檔案。本文將以源執行個體為ECS自建PostgreSQL執行個體為例,介紹容災執行個體搭建的準備工作。
前提條件
已建立目標RDS PostgreSQL執行個體,且需要滿足如下條件。詳情請參見建立RDS PostgreSQL執行個體。
執行個體大版本與源執行個體相同。
執行個體為主執行個體,唯讀執行個體不支援搭建為災備執行個體。
執行個體計費方式為隨用隨付或訂用帳戶,Serverless執行個體不支援搭建為災備執行個體。
執行個體為空白,無資料,可用儲存空間大於等於自建PostgreSQL中資料大小的總和。
實現網路互連
網路互連方案概覽
源執行個體類型 | 網路互連方式 |
源執行個體類型 | 網路互連方式 |
本地IDC自建 | |
其他雲自建 | |
阿里雲ECS自建 | 如果ECS與目標RDS PostgreSQL執行個體位於同一VPC,則無需進行網路打通。 |
其他雲託管 | |
阿里雲RDS | 如果源RDS PostgreSQL執行個體與目標RDS PostgreSQL執行個體位於同一VPC,則無需進行網路打通。 |
如果源執行個體支援公網訪問,則可以通過公網NAT Gateway實現各類源執行個體與目標執行個體VPC網路之間的互連。本文介紹如何配置目標執行個體(災備執行個體,即RDS PostgreSQL執行個體),以實現通過公網NAT Gateway進行網路互連。
對於不支援公網訪問的源執行個體,您可以使用雲企業網實現網路互連,詳細操作請參見雲企業網配置實現網路互連。
配置目標執行個體的公網NAT Gateway
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列單擊資料庫連接。在資料庫連接頁查看目標執行個體的VPC和VSwitch。
將滑鼠懸浮在VPC ID上,即可查看VSwitch ID。
單擊的VPC ID,進入專用網路控制台。
單擊資源管理頁簽,在公網訪問服務地區的公網NAT Gateway處,單擊立即建立。
在建立公網NAT Gateway頁面,配置以下購買資訊,然後單擊立即購買。
配置
說明
配置
說明
付費模式
預設選擇為隨用隨付,即一種先使用後付費的付費模式。更多資訊,請參見公網NAT Gateway計費。
資源群組
選擇VPC所屬的資源群組。更多資訊,請參見什麼是資源群組。
標籤
標籤鍵:選擇或輸入完整的標籤鍵。
最多支援輸入20個標籤鍵。一個標籤鍵最多支援128個字元,不能以aliyun和acs:開頭,不能包含http://或者https://。
標籤值:選擇或輸入完整的標籤值。
最多支援輸入20個標籤值。一個標籤值最多支援128個字元,不能以aliyun和acs:開頭,不能包含http://或者https://。
所屬地區
選擇目標RDS PostgreSQL執行個體所在地區。
所屬專用網路
選擇目標RDS PostgreSQL執行個體的VPC。
關聯交換器
選擇目標RDS PostgreSQL執行個體的VSwitch。
計費類型
預設選擇為按使用量計費,即按公網NAT Gateway實際使用量收費。更多資訊,請參見公網NAT Gateway計費。
計費周期
預設選擇為按小時,即按使用量計費公網NAT Gateway的計費周期為1小時,不足1小時按1小時計算。
執行個體名稱
設定公網NAT Gateway執行個體的名稱。
執行個體名稱長度為2~128個字元,以英文大小寫字母或中文開頭,可包含數字、底線(_)和短劃線(-)。
訪問模式
選擇VPC全通模式(SNAT):選擇了VPC全通模式,在公網NAT Gateway建立成功後當前VPC內所有執行個體即可通過該公網NAT Gateway訪問公網。
Elastic IP Address
選擇Elastic IP Address地址。如果您還未購買Elastic IP Address地址,請參見VPC全通模式組合購買公網NAT Gateway和Elastic IP Address。
在確認訂單頁面確認公網NAT Gateway的配置資訊,選中服務合約並單擊確認訂單。
當出現恭喜,購買成功!的提示後,說明您建立成功。
配置源執行個體
步驟一:建立容災同步帳號
在搭建容災關係時,需要源執行個體提供用於容災同步的資料庫帳號(下稱為同步帳號)。
串連源PostgreSQL執行個體,建立同步帳號,並設定所需的許可權屬性。例如,建立一個名為replicatoraccount的同步帳號。
CREATE ROLE replicatoraccount CREATEROLE REPLICATION LOGIN PASSWORD 'your_password';
為同步帳號replicatoraccount授予
pg_monitor
許可權。GRANT pg_monitor TO replicatoraccount;
使用建立的同步帳號replicatoraccount串連源PostgreSQL執行個體,執行以下SQL語句,以檢查其是否具備要求的權限。
執行如下SQL語句,建立測試帳號testreplicator並賦予
REPLICATION
許可權。如果建立成功,則表明同步帳號replicatoraccount已具備所需的同步許可權。CREATE USER testreplicator WITH REPLICATION;
如果遇到類似於
must be superuser to create replication users
的報錯,請使用具備SUPERUSER
許可權的帳號串連源執行個體,為同步帳號replicatoraccount授予SUPERUSER
許可權,例如執行命令ALTER USER replicatoraccount WITH SUPERUSER;
。刪除測試帳號testreplicator。
DROP USER IF EXISTS testreplicator;
步驟二:配置ECS安全性群組
登入ECS管理主控台。
在左側導覽列,選擇
。在頂部功能表列左上方處,選擇地區。
找到目標ECS執行個體,單擊執行個體ID。
在安全性群組頁簽,單擊安全性群組名稱。
在安全性群組詳情頁面的訪問規則地區,單擊入方向頁簽中的手動添加按鈕。添加如下安全性群組規則。
需要添加的安全性群組及關鍵參數說明如下:
協議類型
連接埠範圍
授權對象
協議類型
連接埠範圍
授權對象
全部 ICMP(IPv4)
源:-1/-1
目的:-1/-1
配置為實現網路互連步驟中,建立的目標RDS PostgreSQL執行個體公網NAT Gateway的Elastic IP Address。
您可以在目標公網NAT Gateway的綁定的Elastic IP Address頁簽,查看該公網NAT Gateway的Elastic IP Address。
TCP
ECS自建PostgreSQL資料庫的連接埠,可通過
netstat -a | grep PGSQL
命令查看。
步驟三:配置pg_hba.conf檔案
本步驟以CentOS 7系統安裝PostgreSQL 13為例進行配置。
登入自建PostgreSQL資料庫所在的ECS。詳細操作請參見遠端連線ECS。
擷取pg_hba.conf檔案位置。
該命令需要切換至root使用者執行。
find / -name pg_hba.conf
返回結果:
/var/lib/pgsql/13/data/pg_hba.conf
進入pg_hba.conf檔案目錄。
cd /var/lib/pgsql/13/data/
編輯pg_hba.conf檔案,在末尾添加如下內容。
host all replicatoraccount 121.XX.XX.XX/32 md5 host replication replicatoraccount 121.XX.XX.XX/32 md5
關鍵參數解釋:
replicatoraccount
:已建立的同步帳號。具體請參見步驟一:建立容災同步帳號。121.XX.XX.XX
:實現網路互連時,建立的目標RDS PostgreSQL執行個體公網NAT Gateway的Elastic IP Address。您可以在目標公網NAT Gateway的綁定的Elastic IP Address頁簽,查看該公網NAT Gateway的Elastic IP Address。
串連源PostgreSQL,重新載入配置使其生效。
SELECT pg_reload_conf();
返回結果樣本:
pg_reload_conf ---------------- t (1 row)
步驟四:配置postgresql.conf檔案
詳細操作請參見配置postgresql.conf檔案。
步驟五:設定管理員防火牆
詳細操作請參見設定管理員防火牆。