支持的源和目標數據庫
支持的數據庫
| 業務數據庫 | 災備數據庫 |
|---|---|
| 本地自建MySQL數據庫 ECS自建MySQL數據庫 其他云上MySQL數據庫 RDS for MySQL |
RDS for MySQL |
前提條件
已登錄數據復制服務控制臺。
滿足實時災備支持的數據庫類型和版本,詳情請參見實時災備。
使用建議
注意
- 災備初始化階段,請不要在業務數據庫執行DDL操作,否則可能導致任務異常。
災備初始化階段,確保災備數據庫無業務寫入,保證災備前后數據一致。
- 數據庫災備與環境多樣性和人為操作均有密切關系,為了確保災備的平順,建議您在進行正式的數據庫災備之前進行一次演練,可以幫助您提前發現問題并解決問題。
- 基于以下原因,建議您在啟動任務時選擇“稍后啟動”功能,選擇業務低峰期開始運行災備任務,避免災備任務對業務造成性能影響。
在網絡無瓶頸的情況下,災備初始化階段會對業務數據庫增加約50MB/s的查詢壓力,以及占用2~4個CPU。
災備無主鍵表時,為了確保數據一致性,會存在3s以內的單表級鎖定。
正在災備的數據被其他事務長時間鎖死,可能導致讀數據超時。
DRS并發讀取數據庫,會占用大約6-10個session連接數,需要考慮該連接數對業務的影響。
災備初始化階段讀取表數據時,特別是大表的讀取,可能會阻塞業務上對大表的獨占鎖操作。
- 數據對比
建議您結合數據對比的“稍后啟動”功能,選擇業務低峰期進行數據對比,以便得到更為具有參考性的對比結果。由于同步具有輕微的時差,在數據持續操作過程中進行對比任務,可能會出現少量數據不一致對比結果,從而失去參考意義。
使用須知
在創建災備任務前,請務必閱讀以下使用須知。

說明
?建議創建單獨用于DRS任務連接的數據庫帳號,避免因為數據庫帳號密碼修改,導致的任務連接失敗。
連接業務或災備數據庫的帳號密碼修改后,請盡快修改連接信息,避免任務連接失敗后自動重試,導致數據庫帳號被鎖定影響使用。
表使用須知
類型 使用限制(DRS自動檢查) 數據庫權限配置 業務數據庫帳號需要具備如下權限:
SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、TRIGGER、REFERENCES、SHOW ?VIEW、EVENT、INDEX、LOCK TABLES、CREATE VIEW、 CREATE ROUTINE、 ALTER ?ROUTINE、 CREATE USER、RELOAD、REPLICATION SLAVE、REPLICATION CLIENT、WITH ?GRANT OPTION,RDS for ?MySQL實例的root帳戶默認已具備上述權限。當業務數據庫為8.0.14-8.0.18版本時,還需要有SESSION_VARIABLES_ADMIN權限。
災備數據庫帳號需要具備如下權限:SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、TRIGGER、REFERENCES、SHOW ?VIEW、EVENT、INDEX、LOCK TABLES、CREATE VIEW、 CREATE ROUTINE、 ALTER ?ROUTINE、 CREATE USER、RELOAD、REPLICATION SLAVE、REPLICATION CLIENT、WITH ?GRANT OPTION,RDS for ?MySQL實例的root帳戶默認已具備上述權限。當災備數據庫為8.0.14-8.0.18版本時,還需要有SESSION_VARIABLES_ADMIN權限。
災備對象約束
不支持非MyISAM和非InnoDB表的災備。
不支持系統表。
不支持觸發器和事件的災備。
不支持對系統庫下自定義對象有操作權限的帳號災備。
不支持指定部分業務庫進行災備。
業務數據庫配置
MySQL業務數據庫的binlog日志必須打開,且binlog日志格式必須為Row格式。
?在磁盤空間允許的情況下,建議業務數據庫binlog保存時間越長越好,建議為7天。
?自建MySQL可以通過設置expire_logs_days參數設置binlog保留時間。
?RDS for MySQL設置binlog保留時間可參考《RDS用戶指南》。
?業務庫不允許存在空帳號或者空密碼。
災備中,必須設置MySQL業務數據庫的server-id。如果業務數據庫版本小于或等于MySQL5.6,server-id的取值范圍為24294967296;如果業務數據庫版本大于或等于MySQL5.7,server-id的取值范圍為14294967296。
業務數據庫須開啟GTID。
業務數據庫名稱在1到64個字符之間,由小寫字母、數字、中劃線、下劃線組成,不能包含其他特殊字符。
數據庫expire_logs_days參數值為0,可能會導致災備失敗。
業務數據庫中的表名、視圖名不能包含:'<>/\以及非ASCII字符。
災備數據庫配置
災備數據庫實例的運行狀態必須正常,若數據庫實例是主備實例,復制狀態也必須正常。
災備數據庫實例必須有足夠的磁盤空間。
災備數據庫大版本號必須與業務庫保持一致。
災備數據庫的binlog日志必須打開,且binlog日志格式必須為Row格式。
除了MySQL系統數據庫之外,災備庫必須是空實例,且災備任務開始后災備庫會被設置成只讀。
災備數據庫須開啟GTID。
操作須知
不支持外鍵級聯操作。當外鍵是普通索引的時候,可能會導致表結構創建失敗,建議改成唯一索引。
不支持業務數據庫恢復到之前時間點的操作(PITR)。
不支持強制清理binlog,否則會導致災備任務失敗。
業務數據庫不支持reset master或reset master to命令,可能會導致DRS任務失敗或者數據不一致。
網絡中斷在30秒內恢復的,不影響數據災備,超過30秒,則可能會導致災備任務失敗。
支持斷點續傳功能,但對于無主鍵的表可能會出現重復插入數據的情況。
?數據庫存在災備任務時,不允許創建遷移或者同步任務(即不允許作為遷移或者同步任務的源或目標庫)。
業務數據庫進行的參數修改不會記錄在日志里,所以也不會同步至災備數據庫,請在災備數據庫升主后調整參數。
?業務數據庫和災備數據庫為RDS for MySQL實例時,不支持帶有TDE特性并建立具有加密功能表。
外部數據庫創建的高權限用戶若超出RDS MySQL支持范圍,不會同步至災備數據庫,如super權限。
?災備不支持多寫的多主模式,如果外部數據庫沒有提供superuser權限,則外部數據庫為備時無法設置只讀,請嚴格確保備節點的數據只來自主節點的同步,任何其他地方的寫入將會導致備庫數據被污染,使得災備出現數據沖突而無法修復。
如果外部數據庫為備且為只讀,該只讀只有superuser權限的帳號可以寫入數據,其他帳號無法寫入,但仍然需要確保備節點通過這個帳號寫入任何數據導致備庫數據被污染,使得災備出現數據沖突而無法修復。
?數據災備過程中,如果修改了業務庫用于災備的密碼,會導致該災備任務失敗,需要在數據復制服務控制臺將上述信息重新修改正確,然后重試任務可繼續進行數據災備。一般情況下不建議在災備過程中修改上述信息。
數據災備過程中,如果修改了業務庫端口,會導致該災備任務失敗。一般情況下不建議在災備過程中修改業務庫端口。
數據災備過程中,如果業務庫為非本云關系型數據庫實例,不支持修改IP地址。本云關系型數據庫實例,對于因修改IP地址導致災備任務失敗的情況,系統自動更新為正確的IP地址,重試任務可繼續進行災備。一般情況下,不建議修改IP地址。
數據災備過程中,支持在業務數據庫創建帳號。
禁止源端在災備任務執行主備倒換過程中進行寫入操作,否則會出現數據污染或者表結構不一致,并最終導致業務端和災備端數據不一致。
災備初始化階段,請不要在源庫執行DDL操作,否則可能導致災備任務異常。
操作步驟
步驟1 在“實時災備管理”頁面,單擊“創建災備任務”,進入創建災備任務頁面。
步驟2 在“災備實例”頁面,填選任務名稱、描述、災備實例信息,單擊“開始創建”。
- 任務信息
表任務和描述
| 參數 | 描述 |
|---|---|
| 任務名稱 | 任務名稱在4到50位之間,必須以字母開頭,可以包含字母、數字、中劃線或下劃線,不能包含其他的特殊字符。 |
| 描述 | 描述不能超過256位,且不能包含! = < > & ' " \ 特殊字符。 |
- 災備實例信息
表災備實例信息
| 參數 | 描述 |
|---|---|
| 災備關系 | 選擇“本云為備”。災備關系可以為“本云為備”或者“本云為主”,默認選擇“本云為備”。“本云為備”:指災備數據庫為本云數據庫的場景。“本云為主”:指業務數據庫為本云數據庫的場景。 |
| 業務數據庫引擎 | 選擇“MySQL”。 |
| 災備數據庫引擎 | 選擇“MySQL”。 |
| 網絡類型 | 此處以公網網絡為示例。默認為公網網絡類型,支持VPN網絡、專線網絡、公網網絡。 |
| 災備數據庫實例 | 用戶所創建的作為災備任務目標數據庫的關系型數據庫實例。 |
| 災備實例所在子網 | 請選擇災備實例所在的子網。也可以單擊“查看子網”,跳轉至“網絡控制臺”查看實例所在子網幫助選擇。默認值為當前所選數據庫實例所在子網,請選擇有可用IP地址的子網。為確保災備實例創建成功,僅顯示已經開啟DHCP的子網。 |
| IP類型 | 選擇遷移實例的IP類型,目前支持選擇“IPv4”或“IPv4&IPv6雙棧”。只有所選擇的VPC及子網都開啟了IPv6雙棧功能,才能選擇IP類型為“IPv4&IPv6雙棧”。 |
| 目標庫實例讀寫設置 | 只讀。 災備中,災備數據庫整個實例將轉化為只讀、不可寫入的狀態,通過“災備監控”界面的“本云數據庫升主”功能,可以使災備數據庫(目標庫)變為業務數據庫,此時數據庫將變為讀寫狀態。 災備任務結束后,災備數據庫也將變為讀寫狀態。 外部數據庫具有superuser權限的帳號時,也可以實現作為災備數據庫時只讀狀態。 如遇DRS實例節點故障重建,任務恢復前為保證DRS任務在恢復過程中的數據一致性,會將本云為備數據庫短暫設置為只讀,任務正常后同步關系恢復正常。 |
- 標簽
表標簽
| 參數 | 描述 |
|---|---|
| 標簽 | 可選配置,對同步任務的標識。使用標簽可方便管理您的任務。每個任務最多支持10個標簽配額。任務創建成功后,您可以單擊任務名稱,在“標簽”頁簽下查看對應標簽。關于標簽的詳細操作,請參見標簽管理。 |

說明對于創建失敗的任務,DRS默認保留3天,超過3天將會自動結束任務。
步驟3 在“源庫及目標庫”頁面,災備實例創建成功后,填選業務數據庫信息和災備數據庫信息后,單擊“源庫和目標庫”處的“測試連接”,分別測試并確定與業務庫和災備庫連通后,勾選協議,單擊“下一步”。
步驟2中的“災備關系”選擇“本云為備”。
表業務數據庫信息
| 參數 | 描述 |
|---|---|
| 源庫類型 | 默認選擇“ECS自建庫”。 |
| IP地址或域名 | 業務數據庫的IP地址或域名。 |
| 端口 | 業務數據庫服務端口,可輸入范圍為1~65535間的整數。 |
| 數據庫用戶名 | 業務數據庫的用戶名。 |
| 數據庫密碼 | 業務數據庫的用戶名所對應的密碼。支持在任務創建后修改密碼。任務為啟動中、初始化、災備中、災備異常狀態時,可在“基本信息”頁面,單擊“連接信息”后的“修改連接信息”,在彈出的對話框中修改密碼。 |

說明業務數據庫的IP地址或域名、數據庫用戶名和密碼,會被系統加密暫存,直至刪除該遷移任務后自動清除。
表災備數據庫信息
| 參數 | 描述 |
|---|---|
| 數據庫實例名稱 | 默認為創建災備任務時選擇的數據庫實例,不可進行修改。 |
| 數據庫用戶名 | 災備數據庫對應的數據庫用戶名。 |
| 數據庫密碼 | 災備數據庫對應的用戶名密碼。支持在任務創建后修改密碼。任務為啟動中、初始化、災備中、災備異常狀態時,可在“基本信息”頁面的“災備信息”區域,單擊“修改連接信息”,在彈出的對話框中修改密碼。數據庫用戶名和密碼將被系統加密暫存,直至該任務刪除后清除。 |
| SSL安全連接 | 如啟用SSL安全連接,請在災備數據庫開啟SSL,并確保相關配置正確后上傳SSL證書。 說明 最大支持上傳500KB的證書文件。 如果不啟用SSL安全連接,請自行承擔數據安全風險。 |
步驟2中的“災備關系”選擇“本云為主”。
業務數據庫信息
| 參數 | 描述 |
|---|---|
| 數據庫實例名稱 | 默認為創建災備任務時選擇的關系型數據庫實例,不可進行修改。 |
| 數據庫用戶名 | 業務數據庫對應的數據庫用戶名。 |
| 數據庫密碼 | 業務數據庫對應的用戶名密碼。支持在任務創建后修改密碼。任務為啟動中、初始化、災備中、災備異常狀態時,可在“基本信息”頁面的“災備信息”區域,單擊“修改連接信息”,在彈出的對話框中修改密碼。數據庫用戶名和密碼將被系統加密暫存,直至該任務刪除后清除。 |
| SSL安全連接 | 如啟用SSL安全連接,請在業務數據庫開啟SSL,并確保相關配置正確后上傳SSL證書。 說明 最大支持上傳500KB的證書文件。如果不啟用SSL安全連接,請自行承擔數據安全風險。 |
表災備數據庫信息
| 參數 | 描述 |
|---|---|
| 目標庫類型 | 默認選擇“ECS自建庫”。目標庫類型可以為“ECS自建庫”,或“RDS實例”。選擇“RDS實例”后,需要選擇“區域”,該區域為目標庫所在區域。 |
| IP地址或域名 | 災備數據庫的IP地址或域名。 |
| 端口 | 災備數據庫服務端口,可輸入范圍為1~65535間的整數。 |
| 區域 | 災備數據庫RDS實例所在區域,源庫類型可以為“RDS實例”時,該選項可見。 |
| 數據庫實例名稱 | 災備數據庫實例名稱,源庫類型可以為“RDS實例”時,該選項可見。說明實例作為災備數據庫時會被設置成只讀,任務結束后恢復讀寫。 |
| 數據庫用戶名 | 災備數據庫用戶名稱。 |
| 數據庫密碼 | 災備數據庫的數據庫用戶密碼。 |

說明災備數據庫的IP地址或域名、數據庫用戶名和密碼,會被系統加密暫存,直至刪除該遷移任務后自動清除。
在“災備設置”頁面,設置流速模式等,單擊“下一步”。
表災備設置
| 參數 | 描述 |
|---|---|
| 所有Definer遷移到該用戶下 | 是 遷移后,所有源數據庫對象的Definer都會遷移至該用戶下,其他用戶需要授權后才具有數據庫對象權限,如何授權請參考MySQL遷移中Definer強制轉化后如何維持原業務用戶權限體系 否 遷移后,將保持源數據庫對象Definer定義不變,選擇此選項,需要配合下一步用戶權限遷移功能,將源數據庫的用戶全部遷移,這樣才能保持源數據庫的權限體系完全不變。 |
步驟4 在“預檢查”頁面,進行災備任務預校驗,校驗通過后才可進行下一步。
步驟5 查看檢查結果,如有不通過的檢查項,需要修復不通過項后,單擊“重新校驗”重新進行災備任務的預檢查。
預檢查不通過項處理建議請參見預檢查不通過項修復方法。
步驟6 預檢查完成后,且預檢查通過率為100%時,單擊“下一步”,進入“參數對比”頁面。

說明所有檢查項結果均通過時,若存在請確認項,需要閱讀并確認詳情后才可以繼續執行下一步操作。
在“任務確認”頁面,設置災備任務的啟動時間,并確認災備任務信息無誤后,單擊“啟動任務”,提交災備任務。
表任務和描述
| 參數 | 描述 |
|---|---|
| 啟動時間 | 災備任務的啟動時間可以根據業務需求,設置為“立即啟動”或“稍后啟動”。 說明 預計災備任務啟動后,會對業務數據庫和災備數據庫的性能產生影響,建議選擇業務低峰期,合理設置災備任務的啟動時間。 |
步驟7 災備任務提交后,您可在“管理”頁面,查看并管理自己的任務。
- 您可查看任務提交后的狀態,狀態請參見任務狀態說明。
- 在任務列表的右上角,單擊
刷新列表,可查看到最新的任務狀態。 - 對于未啟動、狀態為配置中的任務,DRS默認保留3天,超過3天DRS會自動刪除后臺資源,當前任務狀態不變。當用戶再次配置時,DRS會重新申請資源。