不同阿里云賬號下RDS實例間的數(shù)據(jù)同步
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務(wù)造成影響,請務(wù)必仔細(xì)閱讀。
數(shù)據(jù)傳輸服務(wù)DTS(Data Transmission Service)支持對不同阿里云賬號下的RDS MySQL實例(含RDS MySQL Serverless)配置數(shù)據(jù)同步,實現(xiàn)跨阿里云賬號的數(shù)據(jù)同步。
前提條件
源RDS實例和目標(biāo)RDS實例的數(shù)據(jù)庫類型為RDS MySQL。
目標(biāo)RDS MySQL實例的存儲空間須大于源RDS MySQL實例占用的存儲空間。
注意事項
DTS在執(zhí)行全量數(shù)據(jù)初始化時將占用源庫和目標(biāo)庫一定的讀寫資源,可能會導(dǎo)致數(shù)據(jù)庫的負(fù)載上升,在數(shù)據(jù)庫性能較差、規(guī)格較低或業(yè)務(wù)量較大的情況下(例如源庫有大量慢SQL、存在無主鍵表或目標(biāo)庫存在死鎖等),可能會加重數(shù)據(jù)庫壓力,甚至導(dǎo)致數(shù)據(jù)庫服務(wù)不可用。因此您需要在執(zhí)行數(shù)據(jù)同步前評估源庫和目標(biāo)庫的性能,同時建議您在業(yè)務(wù)低峰期執(zhí)行數(shù)據(jù)同步(例如源庫和目標(biāo)庫的CPU負(fù)載在30%以下)。
數(shù)據(jù)同步時,請勿對源庫的同步對象使用gh-ost或pt-online-schema-change等類似工具執(zhí)行在線DDL變更,否則會導(dǎo)致同步失敗。
如果源庫中待遷移的表沒有主鍵或唯一約束,且所有字段沒有唯一性,可能會導(dǎo)致目標(biāo)數(shù)據(jù)庫中出現(xiàn)重復(fù)數(shù)據(jù)。
全量初始化過程中,并發(fā)insert導(dǎo)致目標(biāo)實例的表碎片,全量初始化完成后,目標(biāo)實例的表空間比源實例的表空間大。
目標(biāo)庫為RDS MySQL實例時(除5.7和8.0版本外),DTS會在目標(biāo)庫新建一個有寫入權(quán)限且僅供DTS內(nèi)部使用的數(shù)據(jù)同步賬號dtssyncwriter。
費用說明
同步類型 | 鏈路配置費用 |
庫表結(jié)構(gòu)同步和全量數(shù)據(jù)同步 | 不收費。 |
增量數(shù)據(jù)同步 | 收費,詳情請參見計費概述。 |
支持的同步架構(gòu)
一對一單向同步
一對多單向同步
級聯(lián)單向同步
多對一單向同步
關(guān)于各類同步架構(gòu)的介紹及注意事項,請參見數(shù)據(jù)同步拓?fù)浣榻B。
支持同步的SQL操作
操作類型 | SQL操作語句 |
DML | INSERT、UPDATE、DELETE、REPLACE |
DDL |
|
功能限制
不兼容觸發(fā)器
當(dāng)同步對象為整個庫,且?guī)熘械挠|發(fā)器(TRIGGER)會更新庫內(nèi)某個表時,可能導(dǎo)致源和目標(biāo)庫的數(shù)據(jù)不一致。相關(guān)解決方案請參見源庫存在觸發(fā)器時如何配置同步或遷移作業(yè)。
RENAME TABLE限制
RENAME TABLE操作可能導(dǎo)致同步數(shù)據(jù)不一致。例如同步對象只包含表A,如果同步過程中源實例將表A重命名為表B,那么表B將不會被同步到目標(biāo)庫。為避免該問題,您可以在數(shù)據(jù)同步配置時,選擇同步表A和表B所在的整個數(shù)據(jù)庫作為同步對象。
準(zhǔn)備工作
將目標(biāo)RDS實例所屬的云賬號設(shè)置為授信云賬號,允許通過數(shù)據(jù)傳輸服務(wù)訪問源RDS實例所屬云賬號的相關(guān)云資源。詳情請參見跨阿里云賬號任務(wù)如何配置RAM授權(quán)。
請使用源實例所屬的阿里云賬號登錄RAM控制臺執(zhí)行授權(quán)操作,授權(quán)操作完成后,請在目標(biāo)實例所屬的阿里云賬號中創(chuàng)建數(shù)據(jù)遷移或同步任務(wù)。
操作步驟
使用目標(biāo)RDS實例所屬的阿里云賬號購買數(shù)據(jù)同步任務(wù)。
說明購買時,選擇源實例和目標(biāo)實例均為MySQL,并選擇同步拓?fù)錇?b data-tag="uicontrol" id="uicontrol-p65-afp-0hb" class="uicontrol">單向同步。
使用目標(biāo)RDS實例所屬的阿里云賬號登錄數(shù)據(jù)傳輸控制臺。
說明若數(shù)據(jù)傳輸控制臺自動跳轉(zhuǎn)至數(shù)據(jù)管理DMS控制臺,您可以在右下角的中單擊,返回至舊版數(shù)據(jù)傳輸控制臺。
在左側(cè)導(dǎo)航欄,單擊數(shù)據(jù)同步。
在同步作業(yè)列表頁面頂部,選擇同步的目標(biāo)實例所屬地域。
定位至已購買的數(shù)據(jù)同步實例,單擊該實例的配置同步鏈路。
配置同步通道的源實例及目標(biāo)實例信息。
類別
配置
說明
無
同步作業(yè)名稱
DTS會自動生成一個同步作業(yè)名稱,建議配置具有業(yè)務(wù)意義的名稱(無唯一性要求),便于后續(xù)識別。
源實例信息
實例類型
選擇RDS實例。
實例地區(qū)
購買數(shù)據(jù)同步實例時選擇的源實例地域信息,不可變更。
RDS所屬阿里云賬號ID
填入源RDS實例所屬的阿里云賬號ID。
說明在配置該選項之前,需要先單擊源實例信息頁簽中的其他阿里云賬號下的RDS實例。
角色名稱
填入準(zhǔn)備工作步驟中配置的RAM角色名稱。
RDS實例ID
選擇源實例ID。
目標(biāo)實例信息
實例類型
選擇RDS實例。
實例地區(qū)
購買數(shù)據(jù)同步實例時選擇的目標(biāo)實例地域信息,不可變更。
實例ID
選擇作為數(shù)據(jù)同步目標(biāo)的RDS實例ID。
數(shù)據(jù)庫賬號
填入目標(biāo)RDS的數(shù)據(jù)庫賬號。
說明當(dāng)目標(biāo)RDS實例的數(shù)據(jù)庫類型為MySQL 5.5或MySQL 5.6時,無需配置數(shù)據(jù)庫賬號和數(shù)據(jù)庫密碼。
數(shù)據(jù)庫密碼
填入該數(shù)據(jù)庫賬號對應(yīng)的密碼。
連接方式
根據(jù)需求選擇非加密連接或SSL安全連接。如果設(shè)置為SSL安全連接,您需要提前開啟RDS實例的SSL加密功能,詳情請參見設(shè)置SSL加密。
單擊頁面右下角的授權(quán)白名單并進(jìn)入下一步。
如果源或目標(biāo)數(shù)據(jù)庫是阿里云數(shù)據(jù)庫實例(例如RDS MySQL、云數(shù)據(jù)庫MongoDB版等),DTS會自動將對應(yīng)地區(qū)DTS服務(wù)的IP地址添加到阿里云數(shù)據(jù)庫實例的白名單中;如果源或目標(biāo)數(shù)據(jù)庫是ECS上的自建數(shù)據(jù)庫,DTS會自動將對應(yīng)地區(qū)DTS服務(wù)的IP地址添到ECS的安全規(guī)則中,您還需確保自建數(shù)據(jù)庫沒有限制ECS的訪問(若數(shù)據(jù)庫是集群部署在多個ECS實例,您需要手動將DTS服務(wù)對應(yīng)地區(qū)的IP地址添到其余每個ECS的安全規(guī)則中);如果源或目標(biāo)數(shù)據(jù)庫是IDC自建數(shù)據(jù)庫或其他云數(shù)據(jù)庫,則需要您手動添加對應(yīng)地區(qū)DTS服務(wù)的IP地址,以允許來自DTS服務(wù)器的訪問。DTS服務(wù)的IP地址,請參見DTS服務(wù)器的IP地址段。
警告DTS自動添加或您手動添加DTS服務(wù)的公網(wǎng)IP地址段可能會存在安全風(fēng)險,一旦使用本產(chǎn)品代表您已理解和確認(rèn)其中可能存在的安全風(fēng)險,并且需要您做好基本的安全防護,包括但不限于加強賬號密碼強度防范、限制各網(wǎng)段開放的端口號、內(nèi)部各API使用鑒權(quán)方式通信、定期檢查并限制不需要的網(wǎng)段,或者使用通過內(nèi)網(wǎng)(專線/VPN網(wǎng)關(guān)/智能網(wǎng)關(guān))的方式接入。
配置同步策略及對象信息。
配置項目
配置說明
選擇同步對象
在源庫對象框中單擊待同步的對象,然后單擊圖標(biāo)將其移動至已選擇對象框。
同步對象的選擇粒度為庫、表。
說明如果選擇整個庫作為同步對象,該庫中所有對象的結(jié)構(gòu)變更操作都會同步至目標(biāo)庫。
默認(rèn)情況下,同步對象在目標(biāo)庫中的名稱與源庫保持一致。如果您需要改變同步對象在目標(biāo)庫中的名稱,需要使用對象名映射功能,詳情請參見設(shè)置同步對象在目標(biāo)實例中的名稱。
映射名稱更改
如需更改同步對象在目標(biāo)實例中的名稱,請使用對象名映射功能,詳情請參見庫表列映射。
源表DMS_ONLINE_DDL過程中是否復(fù)制臨時表到目標(biāo)庫
如源庫使用數(shù)據(jù)管理DMS(Data Management)執(zhí)行Online DDL變更,您可以選擇是否同步Online DDL變更產(chǎn)生的臨時表數(shù)據(jù)。
是:同步Online DDL變更產(chǎn)生的臨時表數(shù)據(jù)。
說明Online DDL變更產(chǎn)生的臨時表數(shù)據(jù)過大,可能會導(dǎo)致同步任務(wù)延遲。
否:不同步Online DDL變更產(chǎn)生的臨時表數(shù)據(jù),只同步源庫的原始DDL數(shù)據(jù)。
說明該方案會導(dǎo)致目標(biāo)庫鎖表。
源、目標(biāo)庫無法連接重試時間
當(dāng)源、目標(biāo)庫無法連接時,DTS默認(rèn)重試720分鐘(即12小時),您也可以自定義重試時間。如果DTS在設(shè)置的時間內(nèi)重新連接上源、目標(biāo)庫,同步任務(wù)將自動恢復(fù)。否則,同步任務(wù)將失敗。
說明由于連接重試期間,DTS將收取任務(wù)運行費用,建議您根據(jù)業(yè)務(wù)需要自定義重試時間,或者在源和目標(biāo)庫實例釋放后盡快釋放DTS實例。
- 上述配置完成后,單擊頁面右下角的下一步。
配置同步初始化的高級配置信息。
此步驟會將源實例中已經(jīng)存在同步對象的結(jié)構(gòu)及數(shù)據(jù)在目標(biāo)實例中初始化,作為后續(xù)增量同步數(shù)據(jù)的基線數(shù)據(jù)。
同步初始化類型細(xì)分為:結(jié)構(gòu)初始化,全量數(shù)據(jù)初始化。默認(rèn)情況下,需要選擇結(jié)構(gòu)初始化和全量數(shù)據(jù)初始化。
上述配置完成后,單擊頁面右下角的預(yù)檢查并啟動。
重要在數(shù)據(jù)同步任務(wù)正式啟動之前,會先進(jìn)行預(yù)檢查。只有預(yù)檢查通過后,才能成功啟動數(shù)據(jù)同步任務(wù)。
如果預(yù)檢查失敗,單擊具體檢查項后的,查看失敗詳情。
您可以根據(jù)提示修復(fù)后重新進(jìn)行預(yù)檢查。
如無需修復(fù)告警檢測項,您也可以選擇確認(rèn)屏蔽、忽略告警項并重新進(jìn)行預(yù)檢查,跳過告警檢測項重新進(jìn)行預(yù)檢查。
在預(yù)檢查對話框中顯示預(yù)檢查通過后,關(guān)閉預(yù)檢查對話框,同步作業(yè)將正式開始。
等待該同步作業(yè)的鏈路初始化完成,直至狀態(tài)處于同步中。
您可以在數(shù)據(jù)同步頁面,查看數(shù)據(jù)同步狀態(tài)。