本文為您列出資料移轉與資料同步的常見問題和相關解答。
什麼是資料移轉、資料同步?
-
資料移轉:將Tair或Redis開源版的資料(即索引值對)遷移至另一個Tair或Redis開源版中。通常遷移完成後即可停止該任務,屬於一次性任務。
-
資料同步:將Tair或Redis開源版的資料(即索引值對)即時同步至另一個Tair或Redis開源版中。通常會持續運行該任務,用於保持源庫和目標庫的資料一致性。
資料移轉與資料同步均是從源庫複製資料至目標庫,不會對源庫的資料產生影響。
DTS的資料移轉與資料同步工作原理是什嗎?
詳情請參見產品架構及功能原理。
DTS的資料移轉與資料同步有什麼區別?
|
對比項 |
DTS資料移轉 |
DTS資料同步 |
|
適用情境 |
主要用於遷移資料上雲,例如將本機資料庫、ECS上的自建資料庫或第三方雲資料庫遷移至阿里雲Tair執行個體。 |
主要用於兩個Tair執行個體之間的資料即時同步,例如從執行個體A同步至執行個體B。可用於異地多活、資料災備、資料分析等情境。 |
|
能力支援度 |
||
|
功能特性差異 |
支援讀取其他阿里雲帳號下的專用網路,通過該功能可以實現跨阿里雲帳號遷移專用網路下的自建資料庫。 |
|
|
計費規則與方式 |
|
|
DTS的資料同步功能可支援更加豐富的Tair同步情境和功能,建議通過DTS的資料同步功能來完成資料移轉。更多資訊,請參見同步方案概述。
使用DTS遇到預檢查報錯,如何解決?
DTS在執行資料移轉或資料同步任務之前,會對源庫和目標執行預檢查以確保任務可以正常運行。關於如何排查預檢查的報錯,請參見修複資料移轉預檢查失敗的問題和修複同步作業預檢查失敗的問題。
是否支援開啟SYNC/PSYNC命令許可權以使用第三方工具遷移資料?
阿里雲Redis與Tair執行個體預設禁用SYNC和PSYNC命令,且不支援開啟。因此,第三方遷移或同步工具(如redis-shake的sync/psync模式、其他雲廠商的DTS服務)無法通過SYNC/PSYNC協議對阿里雲Redis執行個體執行增量資料同步。
如需將阿里雲Redis的資料移轉至外部環境,請使用阿里雲DTS。
若源庫為雲資料庫Tair,則無需對源庫開通PSYNC命令許可權,可直接通過DTS實現增量遷移。
資料移轉或資料同步需要多長時間?
時間長度無法精確預估,以下量級僅供參考:小資料量(GB級以下)通常在數分鐘內完成;中等資料量(數GB)通常在數十分鐘內完成;巨量資料量(數十GB以上)可能需要數小時。
實際耗時受資料量、頻寬、DTS鏈路規格、執行個體負載等因素影響,可能存在較大差異。
DTS預檢查能否列出目標庫中具體的重複Key?
DTS預檢查不會列出目標庫中具體重複的Key,僅會提示目標庫非空。若需要排查具體的重複資料,需自行查詢目標庫進行比對。
DTS同步至代理模式Redis執行個體時出現資料延遲怎麼辦?
代理模式Redis執行個體對Lua指令碼有語法檢查,script_check_enable參數預設開啟。若源端執行了不符合代理模式文法要求的Lua指令碼(例如redis.call/redis.pcall的第一個參數為變數而非字串字面量),DTS增量同步處理會因目標端報錯而卡住,表現為延遲持續增長。
處理方法:在目標端代理模式執行個體的參數設定中關閉script_check_enable,然後重啟DTS同步任務,延遲將在源端寫入量下降後逐步追平。
DTS跨地區同步時如何配置目標端Tair白名單?
使用DTS進行跨地區(例如上海到張北)資料同步時,需要將源端和目標端所在地區的DTS伺服器CIDR白名單均添加到目標端Tair執行個體的白名單中,以確保DTS服務能夠正常串連並進行同步。