云數(shù)據(jù)庫Redis間的單向同步
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務(wù)造成影響,請務(wù)必仔細(xì)閱讀。
數(shù)據(jù)傳輸服務(wù)DTS(Data Transmission Service)支持Redis數(shù)據(jù)庫的單向同步,適用于異地多活、數(shù)據(jù)異地容災(zāi)等多種應(yīng)用場景。本文以Redis實(shí)例間的單向數(shù)據(jù)同步為例,介紹數(shù)據(jù)同步作業(yè)的配置流程。
前提條件
已創(chuàng)建目標(biāo)Redis實(shí)例,創(chuàng)建方式,請參見步驟1:創(chuàng)建實(shí)例。
說明DTS也支持云原生內(nèi)存數(shù)據(jù)庫Tair實(shí)例間和自建Redis間的單向同步,您可以參考本文進(jìn)行配置。
目標(biāo)Redis實(shí)例的存儲(chǔ)空間需大于源Redis實(shí)例已使用的存儲(chǔ)空間。
注意事項(xiàng)
類型 | 說明 |
源庫限制 |
|
其他限制 |
|
費(fèi)用說明
同步類型 | 鏈路配置費(fèi)用 |
庫表結(jié)構(gòu)同步和全量數(shù)據(jù)同步 | 不收費(fèi)。 |
增量數(shù)據(jù)同步 | 收費(fèi),詳情請參見計(jì)費(fèi)概述。 |
支持的同步拓?fù)?/h2>一對一單向同步
一對多單向同步
級聯(lián)單向同步
一對一單向同步
一對多單向同步
級聯(lián)單向同步
關(guān)于各類同步拓?fù)涞慕榻B及注意事項(xiàng),請參見數(shù)據(jù)同步拓?fù)浣榻B。
支持的同步命令
APPEND
BITOP、BLPOP、BRPOP、BRPOPLPUSH
DECR、DECRBY、DEL
EVAL、EVALSHA、EXEC、EXPIRE、EXPIREAT
GEOADD、GETSET
HDEL、HINCRBY、HINCRBYFLOAT、HMSET、HSET、HSETNX
INCR、INCRBY、INCRBYFLOAT
LINSERT、LPOP、LPUSH、LPUSHX、LREM、LSET、LTRIM
MOVE、MSET、MSETNX、MULTI
PERSIST、PEXPIRE、PEXPIREAT、PFADD、PFMERGE、PSETEX
RENAME、RENAMENX、RESTORE、RPOP、RPOPLPUSH、RPUSH、RPUSHX
SADD、SDIFFSTORE、SELECT、SET、SETBIT、SETEX、SETNX、SETRANGE、SINTERSTORE、SMOVE、SPOP、SREM、SUNIONSTORE
ZADD、ZINCRBY、ZINTERSTORE、ZREM、ZREMRANGEBYLEX、ZUNIONSTORE、ZREMRANGEBYRANK、ZREMRANGEBYSCORE
SWAPDB、UNLINK(僅當(dāng)源端Redis實(shí)例的版本為4.0時(shí)支持)
XADD、XCLAIM、XDEL、XAUTOCLAIM、XGROUP CREATECONSUMER、XTRIM
不支持同步PUBLISH命令。
對于通過EVAL或者EVALSHA調(diào)用Lua腳本,在增量數(shù)據(jù)同步時(shí),由于目標(biāo)端在執(zhí)行腳本時(shí)不會(huì)明確返回執(zhí)行結(jié)果,DTS無法確保該類型腳本能夠執(zhí)行成功。
對于List,由于DTS在調(diào)用sync或psync進(jìn)行重傳時(shí),不會(huì)對目標(biāo)端已有的數(shù)據(jù)進(jìn)行清空,可能導(dǎo)致出現(xiàn)重復(fù)數(shù)據(jù)。
數(shù)據(jù)庫賬號的權(quán)限要求
數(shù)據(jù)庫 | 權(quán)限及授權(quán)方式 |
源Redis實(shí)例 | 讀權(quán)限,關(guān)于授權(quán)方式,請參見創(chuàng)建與管理賬號。 |
目標(biāo)Redis實(shí)例 | 讀寫權(quán)限,關(guān)于授權(quán)方式,請參見創(chuàng)建與管理賬號。 |
操作步驟
進(jìn)入同步任務(wù)的列表頁面。
在頂部菜單欄中,單擊集成與開發(fā)。
在左側(cè)導(dǎo)航欄,選擇 。
說明實(shí)際操作可能會(huì)因DMS的模式和布局不同,而有所差異。更多信息,請參見極簡模式和自定義DMS界面布局與樣式。
您也可以登錄新版DTS同步任務(wù)的列表頁面。
在同步任務(wù)右側(cè),選擇同步實(shí)例所屬地域。
說明新版DTS同步任務(wù)列表頁面,需要在頁面左上角選擇同步實(shí)例所屬地域。
單擊創(chuàng)建任務(wù),配置源庫及目標(biāo)庫信息。
類別
配置
說明
無
任務(wù)名稱
DTS會(huì)自動(dòng)生成一個(gè)任務(wù)名稱,建議配置具有業(yè)務(wù)意義的名稱(無唯一性要求),便于后續(xù)識別。
源庫信息
選擇DMS數(shù)據(jù)庫實(shí)例
您可以按實(shí)際需求,選擇是否使用已有實(shí)例。
如使用已有實(shí)例,下方數(shù)據(jù)庫信息將自動(dòng)填入,您無需重復(fù)輸入。
如不使用已有實(shí)例,您需要輸入下方的數(shù)據(jù)庫信息。
數(shù)據(jù)庫類型
選擇Tair/Redis。
接入方式
選擇云實(shí)例。
實(shí)例地區(qū)
選擇源Redis實(shí)例所屬地域。
是否跨阿里云賬號
本示例為同一阿里云賬號間的同步,選擇不跨賬號。
實(shí)例ID
選擇源庫Redis實(shí)例ID。
認(rèn)證方式
請根據(jù)實(shí)際情況選擇密碼登錄或免密登錄,本示例選擇密碼登錄。
說明若您選擇免密登錄,請確保Redis數(shù)據(jù)庫已開啟免密訪問功能。云數(shù)據(jù)庫Redis實(shí)例開啟免密訪問的方法,請參見開啟專有網(wǎng)絡(luò)免密訪問。
數(shù)據(jù)庫密碼
填入連接源Redis實(shí)例的數(shù)據(jù)庫賬號密碼。賬號權(quán)限,請參見數(shù)據(jù)庫賬號的權(quán)限要求。
說明數(shù)據(jù)庫密碼格式為<user>:<password>。例如,Redis實(shí)例自定義的用戶名為admin,密碼為Rp829dlwa,則此處填入的數(shù)據(jù)庫密碼為admin:Rp829dlwa。
連接方式
請根據(jù)實(shí)際情況選擇非加密連接或SSL安全連接。
說明若為自建Redis(接入方式不是云實(shí)例),且選擇了SSL安全連接,您還需要上傳CA 證書并填寫CA 密鑰。
目標(biāo)庫信息
選擇DMS數(shù)據(jù)庫實(shí)例
您可以按實(shí)際需求,選擇是否使用已有實(shí)例。
如使用已有實(shí)例,下方數(shù)據(jù)庫信息將自動(dòng)填入,您無需重復(fù)輸入。
如不使用已有實(shí)例,您需要輸入下方的數(shù)據(jù)庫信息。
數(shù)據(jù)庫類型
選擇Tair/Redis。
接入方式
選擇云實(shí)例。
實(shí)例地區(qū)
選擇目標(biāo)Redis實(shí)例所屬地域。
是否跨阿里云賬號
本示例為同一阿里云賬號間的同步,選擇不跨賬號。
實(shí)例ID
選擇目標(biāo)Redis實(shí)例ID。
認(rèn)證方式
請根據(jù)實(shí)際情況選擇密碼登錄或免密登錄,本示例選擇密碼登錄。
說明若您選擇免密登錄,請確保Redis數(shù)據(jù)庫已開啟免密訪問功能。云數(shù)據(jù)庫Redis實(shí)例開啟免密訪問的方法,請參見開啟專有網(wǎng)絡(luò)免密訪問。
數(shù)據(jù)庫密碼
填入連接目標(biāo)Redis數(shù)據(jù)庫的密碼。賬號權(quán)限,請參見數(shù)據(jù)庫賬號的權(quán)限要求。
說明數(shù)據(jù)庫密碼格式為<user>:<password>。例如,Redis實(shí)例自定義的用戶名為admin,密碼為Rp829dlwa,則此處填入的數(shù)據(jù)庫密碼為admin:Rp829dlwa。
連接方式
請根據(jù)實(shí)際情況選擇非加密連接或SSL安全連接。
說明若為自建Redis(接入方式不是云實(shí)例),且選擇了SSL安全連接,您還需要上傳CA 證書并填寫CA 密鑰。
配置完成后,單擊頁面下方的測試連接以進(jìn)行下一步。
如果源或目標(biāo)數(shù)據(jù)庫是阿里云數(shù)據(jù)庫實(shí)例(例如RDS MySQL、云數(shù)據(jù)庫MongoDB版等),DTS會(huì)自動(dòng)將對應(yīng)地區(qū)DTS服務(wù)的IP地址添加到阿里云數(shù)據(jù)庫實(shí)例的白名單中;如果源或目標(biāo)數(shù)據(jù)庫是ECS上的自建數(shù)據(jù)庫,DTS會(huì)自動(dòng)將對應(yīng)地區(qū)DTS服務(wù)的IP地址添加到ECS的安全規(guī)則中,您還需確保自建數(shù)據(jù)庫沒有限制ECS的訪問(若數(shù)據(jù)庫是集群部署在多個(gè)ECS實(shí)例,您需要手動(dòng)將DTS服務(wù)對應(yīng)地區(qū)的IP地址添到其余每個(gè)ECS的安全規(guī)則中);如果源或目標(biāo)數(shù)據(jù)庫是IDC自建數(shù)據(jù)庫或其他云數(shù)據(jù)庫,則需要您手動(dòng)添加對應(yīng)地區(qū)DTS服務(wù)的IP地址,以允許來自DTS服務(wù)器的訪問。DTS服務(wù)的IP地址,請參見DTS服務(wù)器的IP地址段。
警告DTS自動(dòng)添加或您手動(dòng)添加DTS服務(wù)的公網(wǎng)IP地址段可能會(huì)存在安全風(fēng)險(xiǎn),一旦使用本產(chǎn)品代表您已理解和確認(rèn)其中可能存在的安全風(fēng)險(xiǎn),并且需要您做好基本的安全防護(hù),包括但不限于加強(qiáng)賬號密碼強(qiáng)度防范、限制各網(wǎng)段開放的端口號、內(nèi)部各API使用鑒權(quán)方式通信、定期檢查并限制不需要的網(wǎng)段,或者使用通過內(nèi)網(wǎng)(專線/VPN網(wǎng)關(guān)/智能網(wǎng)關(guān))的方式接入。
配置任務(wù)對象及高級配置。
配置
說明
同步類型
固定選中全量同步 + 增量同步。
說明不支持只配置增量同步。
目標(biāo)已存在表的處理模式
預(yù)檢查并報(bào)錯(cuò)攔截:檢查目標(biāo)端是否為空。如果待同步的目標(biāo)端為空,則通過該檢查項(xiàng)目;如果不為空,則在預(yù)檢查階段提示錯(cuò)誤,數(shù)據(jù)同步作業(yè)不會(huì)被啟動(dòng)。
忽略報(bào)錯(cuò)并繼續(xù)執(zhí)行:跳過目標(biāo)庫對象數(shù)據(jù)存在性檢查的檢查項(xiàng)。
警告選擇為忽略報(bào)錯(cuò)并繼續(xù)執(zhí)行后,如果在同步過程中遇到目標(biāo)端的Key與源端中的Key相同,會(huì)將源端的數(shù)據(jù)覆蓋寫入目標(biāo)端中,從而可能會(huì)導(dǎo)致目標(biāo)端原有的數(shù)據(jù)丟失,請謹(jǐn)慎選擇。
源庫對象
在源庫對象框中單擊待同步對象,然后單擊將其移動(dòng)至已選擇對象框。
說明同步對象的選擇粒度為庫,暫不支持Key粒度的選擇。
已選擇對象
若您需要指定接收數(shù)據(jù)的庫(DB 0~DB 255)或通過前綴篩選待同步的數(shù)據(jù),可以使用映射或過濾功能。在已選擇對象框中右鍵單擊待同步的庫,然后在彈出的編輯Schema對話框中進(jìn)行配置。更多信息,請參見庫表列名映射和設(shè)置過濾條件。
說明不支持批量映射。
單擊下一步高級配置,進(jìn)行高級配置。
數(shù)據(jù)校驗(yàn)配置
若您需要配置數(shù)據(jù)校驗(yàn),請參見配置數(shù)據(jù)校驗(yàn)。
高級配置
配置
說明
設(shè)置告警
是否設(shè)置告警,當(dāng)同步失敗或延遲超過閾值后,將通知告警聯(lián)系人。
不設(shè)置:不設(shè)置告警。
設(shè)置:設(shè)置告警,您還需要設(shè)置告警閾值和告警聯(lián)系人。更多信息,請參見在配置任務(wù)過程中配置監(jiān)控告警。
源庫、目標(biāo)庫無法連接后的重試時(shí)間
在同步任務(wù)啟動(dòng)后,若源庫或目標(biāo)庫連接失敗則DTS會(huì)報(bào)錯(cuò),并會(huì)立即進(jìn)行持續(xù)的重試連接,默認(rèn)持續(xù)重試時(shí)間為720分鐘,您也可以在取值范圍(10~1440分鐘)內(nèi)自定義重試時(shí)間,建議設(shè)置30分鐘以上。如果DTS在設(shè)置的重試時(shí)間內(nèi)重新連接上源庫、目標(biāo)庫,同步任務(wù)將自動(dòng)恢復(fù)。否則,同步任務(wù)將會(huì)失敗。
說明針對同源或者同目標(biāo)的多個(gè)DTS實(shí)例,如DTS實(shí)例A和DTS實(shí)例B,設(shè)置網(wǎng)絡(luò)重試時(shí)間時(shí)A設(shè)置30分鐘,B設(shè)置60分鐘,則重試時(shí)間以低的30分鐘為準(zhǔn)。
由于連接重試期間,DTS將收取任務(wù)運(yùn)行費(fèi)用,建議您根據(jù)業(yè)務(wù)需要自定義重試時(shí)間,或者在源和目標(biāo)庫實(shí)例釋放后盡快釋放DTS實(shí)例。
源庫、目標(biāo)庫出現(xiàn)其他問題后的重試時(shí)間
在同步任務(wù)啟動(dòng)后,若源庫或目標(biāo)庫出現(xiàn)非連接性的其他問題(如DDL或DML執(zhí)行異常),則DTS會(huì)報(bào)錯(cuò)并會(huì)立即進(jìn)行持續(xù)的重試操作,默認(rèn)持續(xù)重試時(shí)間為10分鐘,您也可以在取值范圍(1~1440分鐘)內(nèi)自定義重試時(shí)間,建議設(shè)置10分鐘以上。如果DTS在設(shè)置的重試時(shí)間內(nèi)相關(guān)操作執(zhí)行成功,同步任務(wù)將自動(dòng)恢復(fù)。否則,同步任務(wù)將會(huì)失敗。
重要源庫、目標(biāo)庫出現(xiàn)其他問題后的重試時(shí)間的值需要小于源庫、目標(biāo)庫無法連接后的重試時(shí)間的值。
是否限制增量同步速率
您也可以根據(jù)實(shí)際情況,選擇是否對增量同步任務(wù)進(jìn)行限速設(shè)置(設(shè)置每秒增量同步的行數(shù)RPS和每秒增量同步的數(shù)據(jù)量(MB)BPS),以緩解目標(biāo)庫的壓力。
環(huán)境標(biāo)簽
您可以根據(jù)實(shí)際情況,選擇用于標(biāo)識實(shí)例的環(huán)境標(biāo)簽。本示例無需選擇。
延長目標(biāo)庫key的過期時(shí)間
設(shè)置源庫中的key同步到目標(biāo)庫時(shí)額外延長的過期時(shí)間。為保障數(shù)據(jù)的一致性,如有使用到(包括但不限于)如下命令,都建議設(shè)置延長key的過期時(shí)間,建議設(shè)置為600秒。
EXPIRE key seconds PEXPIRE key milliseconds EXPIREAT key timestamp PEXPIREAT key timestampMs
配置ETL功能
選擇是否配置ETL功能。關(guān)于ETL的更多信息,請參見什么是ETL。
是:配置ETL功能,并在文本框中填寫數(shù)據(jù)處理語句,詳情請參見在DTS遷移或同步任務(wù)中配置ETL。
否:不配置ETL功能。
保存任務(wù)并進(jìn)行預(yù)檢查。
若您需要查看調(diào)用API接口配置該實(shí)例時(shí)的參數(shù)信息,請將鼠標(biāo)光標(biāo)移動(dòng)至下一步保存任務(wù)并預(yù)檢查按鈕上,然后單擊氣泡中的預(yù)覽OpenAPI參數(shù)。
若您無需查看或已完成查看API參數(shù),請單擊頁面下方的下一步保存任務(wù)并預(yù)檢查。
說明在同步作業(yè)正式啟動(dòng)之前,會(huì)先進(jìn)行預(yù)檢查。只有預(yù)檢查通過后,才能成功啟動(dòng)同步作業(yè)。
如果預(yù)檢查失敗,請單擊失敗檢查項(xiàng)后的查看詳情,并根據(jù)提示修復(fù)后重新進(jìn)行預(yù)檢查。
如果預(yù)檢查產(chǎn)生警告:
對于不可以忽略的檢查項(xiàng),請單擊失敗檢查項(xiàng)后的查看詳情,并根據(jù)提示修復(fù)后重新進(jìn)行預(yù)檢查。
對于可以忽略無需修復(fù)的檢查項(xiàng),您可以依次單擊點(diǎn)擊確認(rèn)告警詳情、確認(rèn)屏蔽、確定、重新進(jìn)行預(yù)檢查,跳過告警檢查項(xiàng)重新進(jìn)行預(yù)檢查。如果選擇屏蔽告警檢查項(xiàng),可能會(huì)導(dǎo)致數(shù)據(jù)不一致等問題,給業(yè)務(wù)帶來風(fēng)險(xiǎn)。
預(yù)檢查通過率顯示為100%時(shí),單擊下一步購買。
在購買頁面,選擇數(shù)據(jù)同步實(shí)例的計(jì)費(fèi)方式、鏈路規(guī)格,詳細(xì)說明請參見下表。
類別
參數(shù)
說明
信息配置
計(jì)費(fèi)方式
預(yù)付費(fèi)(包年包月):在新建實(shí)例時(shí)支付費(fèi)用。適合長期需求,價(jià)格比按量付費(fèi)更實(shí)惠,且購買時(shí)長越長,折扣越多。
后付費(fèi)(按量付費(fèi)):按小時(shí)扣費(fèi)。適合短期需求,用完可立即釋放實(shí)例,節(jié)省費(fèi)用。
資源組配置
實(shí)例所屬的資源組,默認(rèn)為default resource group。更多信息,請參見什么是資源管理。
鏈路規(guī)格
DTS為您提供了不同性能的同步規(guī)格,同步鏈路規(guī)格的不同會(huì)影響同步速率,您可以根據(jù)業(yè)務(wù)場景進(jìn)行選擇。更多信息,請參見數(shù)據(jù)同步鏈路規(guī)格說明。
訂購時(shí)長
在預(yù)付費(fèi)模式下,選擇包年包月實(shí)例的時(shí)長和數(shù)量,包月可選擇1~9個(gè)月,包年可選擇1年、2年、3年和5年。
說明該選項(xiàng)僅在付費(fèi)類型為預(yù)付費(fèi)時(shí)出現(xiàn)。
配置完成后,閱讀并勾選《數(shù)據(jù)傳輸(按量付費(fèi))服務(wù)條款》。
單擊購買并啟動(dòng),并在彈出的確認(rèn)對話框,單擊確定。
您可在數(shù)據(jù)同步界面查看具體任務(wù)進(jìn)度。