配置異地多活數據層主要包括數據源、數據同步以及數據保護規則。各單元之間數據源的數據會通過數據同步組件進行復制,并按照指定的數據保護規則承擔不同比例的流量寫入和讀取,使各個單元的數據保持最終一致性。當某個單元出現異常或者不可用的情況時,可通過異地多活的切流組件迅速將“問題”單元承擔的流量切換至其他正常單元,保證業務的可持續性和穩定性。
前提條件
配置MySQL數據層的前提條件:
在兩個單元環境中分別已創建一個或多個同名MySQL。具體操作,請參見快速創建RDS MySQL實例。
已在對應源MySQL實例和目標MySQL實例之間建立好同步鏈路,且同步鏈路狀態已達到同步中。具體操作,請參見配置同步任務(舊控制臺)。
配置DRDS數據層的前提條件:
在兩個單元環境中分別已創建一個或多個同名DRDS。具體操作,請參見創建DRDS實例。
已在對應源DRDS實例和目標DRDS實例之間建立好同步鏈路,且同步鏈路狀態已達到同步中。具體操作,請參見配置同步任務(舊控制臺)。
配置PolarDB Mysql或者PolarDB O數據層的前提條件:創建PolarDB數據庫集群。
配置PostgreSQL數據層的前提條件:
在兩個單元環境中分別已創建一個或多個同名PostgreSQL。具體操作,請參見創建RDS PostgreSQL實例。
已在對應源PostgreSQL實例和目標PostgreSQL實例之間建立好同步鏈路,且同步鏈路狀態已達到同步中。具體操作,請參見配置同步任務(舊控制臺)。
背景信息
數據保護規則包括Copy、Unit和Mix三種類型:
Copy類型的數據保護規則對應強一致業務類型的數據源,建立單向同步鏈路同步數據。
Unit類型的數據保護規則對應最終一致業務類型的數據源,建立雙向同步鏈路。
Mix類型對應同一數據源下既有強一致性類型又有最終一致性類型的業務以及非多活業務類型,可以通過表級別粒度控制數據保護規則的數據禁寫范圍。
功能入口
登錄多活容災MSHA控制臺。
在左側導航欄選擇多活實例,進入多活實例列表頁。
在多活實例列表頁選擇需要配置數據層的多活實例,點擊實例ID,進入實例概覽頁面。
在左側導航欄選擇數據層配置,進入數據層配置頁。
步驟一:創建數據源
在數據層配置頁面,單擊管理數據源。
在數據源列表頁面,單擊添加數據源,配置相關參數,然后單擊提交。
參數
說明
示例
數據源名稱
數據源名稱是用戶在使用MSHA的多活應用連接的數據庫,具體到數據庫維度。
杭州-商家交易庫
數據源單元
選擇需要使用的數據源單元,該單元對應的地域應為RDS所在的地域。
杭州中心單元
數據源類型
多活應用連接的數據庫類型,支持的數據庫類型包括PolarDB Mysql、DRDS、MySQL、PostgreSQL、PolarDB O和PolarDB-X 2.0。
MySQL
實例類型
數據源類型不同可選的實例類型不同,選擇不同的實例類型,所需的相關配置也不同,具體請根據控制臺界面指引配置。
RDS
推送類型
在使用MSHA數據面的SDK或Agent時,為應用所使用的數據庫建立的唯一標識。推送類型包括以下2種方式:
實例庫配置聲明:在業務代碼的數據庫鏈接配置中添加以下后綴。
jdbc:mysql://host:port/dbName?mshaInstanceId=${實例id}&mshaDbName=${數據庫名}
說明將
${實例id}
和${數據庫名}
替換成管控面實際的實例ID和數據庫名。實例庫URL:業務代碼無需修改。
說明數據源有多個JDBC-URL時以半角逗號(,)分隔。
實例庫URL
推送標識
當推送類型為實例URL時,需要填寫推送標識。當數據保護規則推送ACM配置中心到數據面SDK或Agent生效時,該值會作為唯一標識來識別業務使用的不同數據源。
jdbc:mysql://host_01:port/dbName,jdbc:mysql://host_02:port/dbName
創建數據源成功后,您可以在數據源列表頁面查看到創建的數據源。
可選:您還可以在數據源列表頁面進行以下操作:
查看數據源狀態:數據源最近一次更新表數據的任務執行狀態,創建數據源后會默認執行一次更新表數據任務。
數據源狀態包括以下狀態:
創建中:完成數據源創建,更新表數據任務前的狀態。
正常:數據源最近一次更新表數據任務執行成功。
表數據加載中:數據源最近一次更新表數據任務執行中。
加載失敗:數據源最近一次更新表數據任務執行失敗。
查看數據源詳情:單擊操作列的詳情,查看數據源的詳細信息。
查看數據表:單擊操作列的查看表,查看數據表信息、更新數據源、以及查看最近一次的更新情況。
更新數據源:單擊操作列的更新,更新數據表的最新信息。
刪除數據源:單擊操作列的刪除,然后在對話框中單擊確認。
(可選)步驟二:添加同步任務
一個雙向同步任務包含正向同步鏈路和反向同步鏈路;一個單向同步任務只包含正向同步鏈路。
在添加同步任務前,您需要以步驟一同樣的方式再次添加一個名稱為北京-商家交易庫的數據源,作為目標數據源。
在數據層配置頁面,單擊管理同步鏈路。
在同步鏈路列表頁面,單擊添加同步任務,然后在彈出的頁面中配置相關參數,并單擊提交。
參數
說明
示例
同步任務名稱
設置同步任務的名稱。
test-rds-正向
源數據源類型
多活應用連接的數據庫類型。包括:
DRDS
MySQL
PolarDB Mysql
PolarDB O
PostgreSQL
PolarDB-X 2.0
MySQL
源數據源單元
選擇需要使用的源數據源單元,對應源數據源的地域。
杭州中心單元
源數據源
選擇步驟一中添加數據源名稱。
杭州-商家交易庫
目標數據源類型
多活應用連接的目標數據庫類型。包括:
DRDS
MySQL
PolarDB Mysql
PolarDB O
PostgreSQL
PolarDB-X 2.0
MySQL
目標數據源單元
選擇需要同步的目標數據源單元。
北京單元
目標數據源
選擇需要同步的目標數據源名稱。
北京-商家交易庫
同步任務類型
支持DTS(數據傳輸服務)。
DTS
同步架構
包括單向同步和雙向同步:
單向同步:在單向同步的拓撲中,為保障同步數據的一致性,對目標實例中的同步對象只進行讀操作,不進行寫操作。
雙向同步:目前DTS僅支持兩個MySQL數據庫之間的雙向同步。
說明關于同步架構的更多信息,請參見數據同步拓撲介紹。
雙向同步
同步任務單元
同步任務歸屬的單元,同步任務會默認創建在目標實例所在的地域。
杭州中心單元
創建同步任務方式
包括直接錄入和手動創建的方式:
直接錄入:如果您在數據傳輸控制臺已經創建一個狀態為同步中(雙向同步的反向同步鏈路狀態也為同步中)的同步任務,則可以直接選擇該同步任務進行錄入。
手動創建:如果您在數據傳輸控制臺創建一個同步狀態為未配置(雙向同步的反向同步鏈路狀態也為未配置)的同步任務,則可以錄入該同步任務后,后續再在MSHA控制臺進行配置操作。
說明在數據傳輸控制臺的創建同步任務操作,請參見DTS數據同步方案概覽。
直接錄入
同步任務
同步任務ID(名稱),選擇DTS控制臺已經創建的同步任務。
dtsp6s12ghvv74xb7m(test-正向)
創建同步鏈路成功后,您可以在同步鏈路列表頁面查看到創建的同步鏈路。
可選:您還可以在同步鏈路列表頁面進行以下操作:
查看同步鏈路信息:單擊操作列的查看,查看同步鏈路的詳細信息。
修改同步對象:單擊操作列的修改同步對象,進入編輯同步鏈路頁面,修改同步對象。
釋放任務:選擇任一同步鏈路,單擊左下角的釋放同步任務,然后在彈出的對話框中單擊確認,即可釋放該同步任務。
說明同步任務為一組正向和反向的同步鏈路,且有數據保護規則正在進行時則無法釋放任務。
若是雙向同步鏈路,選擇任一同步鏈路,會釋放正向和反向同步鏈路。
暫停任務:選擇目標同步鏈路,單擊左下角的暫停同步任務,然后在彈出的對話框中單擊確認,即可暫停該同步任務。
啟動任務:選擇目標同步鏈路,單擊左下角的啟動同步任務,然后在彈出的對話框中單擊確認,即可啟動該同步任務。
更新同步狀態:異步更新當前同步鏈路列表頁的同步狀態。
步驟三:創建數據保護規則
在數據層配置頁面,單擊創建數據保護規則,然后在彈出的頁面中配置相關參數,并單擊提交。
參數 | 說明 | 示例 |
數據保護規則名稱 | 設置保護規則的名稱。 | test-rds |
架構類型 | 異地雙活架構下默認異地雙活。 | 異地雙活 |
數據保護規則類型 | 即同步實例的類型,包含以下三種:
| COPY |
同步延遲策略 | 同步延遲策略在執行切流時生效:
| 禁止寫入 |
數據保護規則表 | 當數據保護規則類型選擇MIX時,需要配置該項。 數據保護規則表有以下幾類:
| 當前示例數據保護規則為COPY類型,則無需配置該項 |
數據源信息 | 單擊選擇數據源,在彈出的對話框中選擇需要保護的2條數據源且最多選擇2條,并單擊確認。 在選擇數據源后,您可以單擊列表中的查看全部灰度IP,輸入應用所在的ECS的私網IP。多個IP請用半角逗號(,)分隔。 |
|
同步鏈路 | 選擇匹配的同步鏈路。 | 商家交易同步鏈路 |
創建數據保護規則成功后,您可以在數據層配置頁面查看到創建的保護規則。
后續操作
您還可以在數據層配置頁面進行以下操作:
查看基礎數據
在基礎數據概覽區域,您可以分別查看數據源、同步鏈路和數據保護規則的總量、正常數量和異常數量。
數據類型 | 正常數量 | 異常數量 |
數據源 | 數據源狀態為正常的數量。 | 數據源狀態不為正常的數量。 |
同步鏈路 | 同步鏈路狀態為同步中的數量。 | 同步鏈路狀態不為同步中的數量。 |
數據保護規則 | 數據保護規則狀態為生效的數量。 | 數據保護規則狀態沒生效的數量。 |
查看數據保護規則狀態
在數據保護規則列表的生效狀態列,您可以查看該規則的狀態。
草稿:新建數據保護規則的狀態,或者回滾灰度推送操作后的狀態。
灰度生效:灰度推送操作成功后的狀態。
生效:全量推送操作成功后的狀態。
推送操作
推送灰度規則:選中目標規則,單擊頁面下方的推送灰度規則,數據保護規則的內容灰度生效到數據面的SDK和Agent。灰度的范圍通過在創建數據保護規則上的灰度IP控制,灰度IP為用戶應用所在的ECS的私網IP。
說明僅草稿狀態下的目標規則才可以執行灰度推送。
推送全量規則:選中目標規則,單擊頁面下方的推送全量規則,數據保護規則的內容全量生效到數據面的SDK和Agent。
刪除灰度規則:選中目標規則,單擊頁面下方的刪除灰度規則,將正在灰度生效的數據保護規則取消生效。
刪除全量規則:選中目標規則,單擊頁面下方的刪除全量規則,將正在全量生效的數據保護規則取消生效。
降級:選中目標規則,單擊頁面下方的降級,將數據保護規則控制下的應用實例執行降級,繞過多活邏輯。
取消降級:單擊頁面下方的取消降級,將數據保護規則控制下的應用實例取消降級。
其他操作
在數據保護規則列表的操作列,您可以執行以下操作。
查看或編輯數據保護規則詳情:單擊操作列的詳情,查看數據保護規則的詳細信息,也可以編輯部分信息,然后單擊提交。
推送歷史:單擊操作列的推送歷史,在推送歷史頁面,單擊操作列的查看,查看數據保護規則歷史推送內容。
刪除規則:單擊操作列的刪除,您可以刪除該規則。