全部產品
Search
文件中心

ApsaraDB RDS:RDS PostgreSQL執行個體間異地容災

更新時間:Dec 14, 2024

為了保障業務的連續性和高可用性,RDS PostgreSQL提供容災功能,支援搭建RDS PostgreSQL跨地區容災執行個體,以實現異地容災能力。本文介紹如何使用容災功能,實現RDS PostgreSQL執行個體間的異地容災。

前提條件

  • 已建立目標RDS PostgreSQL執行個體(災備執行個體),且需要滿足如下條件。詳情請參見建立RDS PostgreSQL執行個體

    • 執行個體大版本與源執行個體(即需進行容災的RDS PostgreSQL執行個體)相同。

    • 執行個體為主執行個體,唯讀執行個體不支援搭建為災備執行個體。

    • 執行個體計費方式為隨用隨付或訂用帳戶,Serverless執行個體不支援搭建為災備執行個體。

    • 執行個體為空白,無資料,可用儲存空間大於等於RDS PostgreSQL源執行個體中資料大小的總和。

  • 已在源RDS PostgreSQL執行個體(即需進行容災的執行個體)中,建立了容災同步帳號。詳細操作請參見建立容災同步帳號

步驟一:實現網路互連

使用雲企業網CEN(Cloud Enterprise Network)實現阿里雲RDS PostgreSQL源執行個體與目標災備執行個體的VPC網路互連。

說明

本文以同一阿里雲帳號下不同地區的RDS PostgreSQL為例,如果您的RDS PostgreSQL源執行個體與目標執行個體位於不同的阿里雲帳號下,請參見跨帳號VPC互連,實現網路互連。

  1. 登入雲企業網管理主控台

  2. 雲企業網執行個體頁面,單擊建立雲企業網執行個體

  3. 建立雲企業網執行個體對話方塊,選擇單獨建立,根據以下資訊配置雲企業網執行個體,然後單擊確認

    說明

    您也可以選擇情境化建立,根據介面提示進行建立。

    參數

    說明

    名稱

    輸入雲企業網執行個體的名稱。

    描述

    輸入雲企業網執行個體的描述。

    資源群組

    選擇雲企業網執行個體所屬的資源群組。

    如果不選擇,雲企業網執行個體建立完成後將歸屬於預設資源群組。

    您可以在資源管理主控台管理雲企業網資源以及其他雲產品資源所屬的資源群組。更多資訊,請參見什麼是資源管理

    標籤

    為雲企業網執行個體添加標籤。

    • 標籤鍵:不允許為空白字串。最多支援64個字元,不能以aliyunacs:開頭,不能包含http://或者https://

    • 標籤值:可以為空白字串。最多支援128個字元,不能以aliyunacs:開頭,不能包含http://或者https://

    支援為雲企業網執行個體添加多個標籤。關於標籤的更多資訊,請參見標籤

  4. 雲企業網執行個體頁面,找到建立的目標雲企業網執行個體,單擊目標執行個體ID。

  5. 基本資料頁簽,單擊VPC後的image,將RDS PostgreSQL源執行個體和目標執行個體的VPC添加到雲企業網執行個體中。

    image

    1. 串連網路執行個體頁面,配置以下主要參數,以設定RDS PostgreSQL源執行個體的資訊。

      參數

      說明

      執行個體類型

      選擇Virtual Private Cloud

      地區

      選擇RDS PostgreSQL源執行個體所在地區。本樣本選擇華北2(北京)

      網路執行個體

      選擇RDS PostgreSQL源執行個體的VPC ID。

      您可以在RDS PostgreSQL執行個體的資料庫連接頁面,查看其VPC ID。

      交換器

      選擇RDS PostgreSQL源執行個體的VSwitch ID,並至少選擇一個其他可用性區域的VSwitch ID,以實現多可用性區域容災。

      您可以在RDS PostgreSQL執行個體的資料庫連接頁面,查看其VSwitch ID。

    2. 單擊確定建立

    3. 單擊繼續建立串連重複上述步驟,設定RDS PostgreSQL目標執行個體的資訊。

  6. 在雲企業網執行個體詳情頁面,選擇基本資料 > 頻寬包管理,單擊購買頻寬包(預付費)

  7. 在購買頁面,根據以下資訊配置頻寬包,然後單擊立即購買並完成支付。

    配置項

    說明

    雲企業網

    選擇需購買頻寬包的雲企業網執行個體。

    完成支付後,頻寬包自動綁定至該雲企業網執行個體。

    地區-A

    選擇參與互連的網路執行個體所在的地區。

    本樣本選擇中國內地

      說明

      頻寬包建立後,不支援修改互連地區。

      頻寬包支援的地區及地區資訊,請參見使用頻寬包

    地區-B

    選擇參與互連的網路執行個體所在的地區。

    本樣本選擇中國內地

    計費方式

    顯示頻寬包的計費方式。預設為按頻寬計費。

    頻寬包計費說明,請參見計費說明

    頻寬值

    請根據實際業務需求選擇頻寬包的頻寬值。單位:Mbps。

    頻寬包名稱

    輸入頻寬包的名稱。

    購買時間長度

    選擇頻寬包的購買時間長度。

    選中到期自動續約可開啟頻寬包自動續約功能。

  8. 基本資料 > 頻寬包管理頁簽,單擊設定跨地區頻寬

  9. 串連網路執行個體頁面,根據以下主要資訊配置跨地區串連,然後單擊確定建立

    配置項

    說明

    執行個體類型

    選擇跨地區串連

    地區

    選擇要互連的地區。本樣本選擇華北2(北京)

    轉寄路由器

    系統自動顯示當前地區下轉寄路由器的執行個體ID。

    串連名稱

    輸入跨地區串連的名稱。

    對端地區

    選擇要互連的對端地區。本樣本選擇華東1(杭州)

    轉寄路由器

    系統自動顯示當前地區下轉寄路由器的執行個體ID。

    頻寬分配方式

    跨地區串連支援以下頻寬分配方式,本樣本選擇從頻寬包分配

    • 從頻寬包分配:從已經購買的頻寬包中分配頻寬。

    • 按流量付費:按照跨地區串連實際使用的流量計費。

    頻寬包執行個體

    選擇雲企業網執行個體已綁定的頻寬包執行個體。

    頻寬

    輸入跨地區串連的頻寬值。單位:Mbps。

    預設鏈路類型

    保持預設值。

    進階配置

    保持預設配置,即選中全部進階配置選項。

    • 自動關聯至轉寄路由器的預設路由表

      開啟本功能後,跨地區串連將與兩個地區的轉寄路由器的預設路由表建立關聯轉寄關係,兩個地區的轉寄路由器將通過查詢預設路由錶轉發跨地區間的流量。

    • 自動傳播系統路由至轉寄路由器的預設路由表

      開啟本功能後,跨地區串連將與兩個地區的轉寄路由器的預設路由表建立路由學習關係。

    • 自動發布路由到對端地區

      開啟本功能後,將允許跨地區串連自動將本端轉寄路由器的路由表(指與跨地區串連建立關聯轉寄關係的路由表)中的路由傳播至對端轉寄路由器的路由表(指與跨地區串連建立路由學習關係的路由表),以實現網路執行個體的跨地區互連。

    配置完成後,在基本資料頁簽,可以看到頻寬包及已指派頻寬的資訊。

    image

  10. 訪問RDS PostgreSQL源執行個體,將目標執行個體的VPC網段添加到其白名單中。詳細操作請參見設定白名單

    您可以在RDS PostgreSQL執行個體的資料庫連接頁面查看其VPC網段,例如:192.168.0.0/16。

步驟二:評估容災可行性

  1. 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體(即災備執行個體)ID。

  2. 在左側導覽列單擊一鍵上雲/容災搭建,選擇可行性評估

  3. 選擇情境容災搭建,源端為阿里雲RDS執行個體。單擊下一步

  4. 確認目標執行個體配置後,單擊下一步

  5. 源執行個體配置步驟,選中全部配置準備項,單擊下一步

  6. 發起遷移評估步驟,配置源執行個體資訊。

    參數

    取值說明

    災備搭建任務名

    系統自動產生,無需修改。

    RDS源執行個體地區

    源執行個體所在地區。本樣本選擇華北2(北京)

    RDS源執行個體名稱

    源執行個體的執行個體ID。

    源執行個體IP或網域名稱

    源執行個體內網串連地址。您可以在RDS PostgreSQL執行個體的資料庫連接頁面查看其內網串連地址。

    使用者名稱

    填寫用於搭建容災關係的同步帳號。本文以replicatoraccount為例。

    密碼

    填寫用於搭建容災關係的同步帳號的密碼。

  7. 單擊建立可行性評估任務

    說明

    遷移評估任務期間,目標RDS PostgreSQL執行個體狀態將變更為維護執行個體中

    您可以在可行性評估頁面下的容災搭建工作清單中查看所發起的評估任務的狀態。

    1. 如果任務狀態成功,您可以進行容災搭建步驟,見下文的步驟三:搭建容災

    2. 如果任務狀態失敗,請單擊操作列的查看報告,根據報錯進行處理。常見報錯請參見解讀容災搭建可行性評估報告

步驟三:搭建容災

說明

只有可行性評估狀態為成功時,才能進行本步驟。

  1. 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。

  2. 在左側導覽列單擊一鍵上雲/容災搭建,選擇容災搭建

  3. 單擊建立容災關係

  4. 建立容災關係彈窗中,選擇已成功的容災搭建可行性評估任務。

  5. 單擊建立容災關係,發起容災搭建任務。

    容災搭建期間,目標RDS PostgreSQL執行個體狀態將變更為維護執行個體中。您可以在“容災搭建”頁面下的工作清單中查看所發起的容災搭建任務的資訊。

    • 單擊搭建階段列,查看容災搭建所需階段。

    • 搭建階段增量同步處理時,說明容災搭建已完成。

    • 單擊操作列的查看日誌,可以查看搭建任務的詳細日誌。

  6. (可選)串連源執行個體,執行TABLE pg_stat_replication;,查看主備關係。

    image

步驟四:(可選)配置內網DNS解析

通過配置內網DNS解析,您可以在源執行個體和目標執行個體所在的兩個VPC內網中,將指定的內網網域名稱解析到源執行個體或目標執行個體的內網串連地址(IP地址或網域名稱)。這樣,您可以將該內網網域名稱用作Business Connectivity資料庫的地址。當源執行個體出現故障時,您可以快速提升目標執行個體為主庫,並將內網網域名稱的指向切換到目標執行個體,從而實現業務的無縫容錯移轉。

  1. 登入到Alibaba Cloud DNS控制台

  2. 在左側導覽列單擊內網DNS解析(PrivateZone)

  3. 內網DNS解析(PrivateZone)頁面,選擇內建權威 > 使用者網域名稱頁簽。

  4. 點擊添加網域名稱(Zone),在彈出的添加內建權威網域名稱 (Zone)頁面,配置內建權威網域名稱參數。

    • 內建權威網域名稱 (Zone):本樣本以pg_test_1106為例。

    • 網域名稱生效範圍 > 阿里雲VPC內網選擇為源執行個體和目標執行個體的VPC。

      說明

      您可以在RDS PostgreSQL執行個體的資料庫連接頁面查看VPC。

  5. 單擊建立網域名稱操作列的解析記錄,跳轉到解析記錄頁面。

    image

  6. 單擊添加記錄,在彈出的添加記錄頁,配置各項參數後,單擊確定

    • 記錄類型:選擇CNAME

    • 主機記錄:一般是指子網域名稱的首碼。本樣本不需要首碼,以主網域名稱pg_test_1106作為子網域名稱,輸入@

      說明

      您可以通過子網域名稱首碼設定出不同的子網域名稱,例如設定子網域名稱api.<主網域名稱>為介面業務使用,子網域名稱pay.<主網域名稱>為支付系統使用。有關更多子網域名稱設定的內容,請參見如何設定子網域名稱?

    • 解析請求來源:是指發起DNS查詢請求的來源,一般選擇預設;如果您需要針對不同解析請求來源的使用者返回不同的IP地址,可以新增其他解析請求來源,例如電訊廠商、境外等智能解析線路。具體請參考智能解析

      重要

      一定要設定一條解析請求來源為預設的解析記錄,用於兜底解析,避免某些解析請求沒有匹配到相符的“解析請求來源”的解析記錄導致解析失敗。

    • 記錄值:本樣本新增2個記錄值,分別填寫源執行個體和目標執行個體的內網串連地址,並將源執行個體的權重設定為100,目標執行個體權重設定為0。

      image

  7. 解析變更確認對話方塊中核對本次的配置是否有誤,點擊確定後完成解析記錄的添加。

  8. 驗證內網網域名稱效果。

    1. 登入與源RDS PostgreSQL執行個體在同一VPC下的ECS。

    2. 使用ping命令驗證內網網域名稱的連通性。

      image

      內網網域名稱指向源執行個體的內網串連地址。

    您也可以通過內網網域名稱串連源RDS PostgreSQL執行個體,若串連成功,則表明內網網域名稱配置成功。詳細操作請參見串連PostgreSQL執行個體

當源執行個體出現故障時,您可以修改解析記錄,將目標執行個體的權重改為100,源執行個體的權重改為0,將內網網域名稱的指向切換到目標執行個體,從而實現業務的無縫容錯移轉。詳細操作請參見修改解析記錄

修改後效果驗證:

  1. 登入與源RDS PostgreSQL執行個體在同一VPC下的ECS。

  2. 使用ping命令驗證內網網域名稱的連通性。

    image

    內網網域名稱指向目標執行個體的內網串連地址。

您也可以通過內網網域名稱串連目標RDS PostgreSQL執行個體,若串連成功,則表明內網網域名稱配置已成功。詳細操作請參見串連PostgreSQL執行個體