使用須知
更新時間 2024-02-22 11:03:24
最近更新時間: 2024-02-22 11:03:24
分享文章
本節主要介紹使用須知
MySQL->MySQL災備
使用技巧(需要人為配合)
建議您配合如下使用技巧和操作要求,進行災備以確保任務穩定運行。
- 基于以下原因,建議您結合定時啟動功能,選擇業務低峰期開始運行災備任務。
- 全量災備會對源數據庫有一定的訪問壓力。
- 災備無主鍵表時,為了確保數據一致性,會存在3s以內的單表級鎖定。
- 正在災備的數據被其他事務長時間鎖死,可能導致讀數據超時。
- 建議您結合數據對比的“稍后啟動”功能,選擇業務低峰期進行數據對比,以便得到更為具有參考性的對比結果。由于同步具有輕微的時差,在數據持續操作過程中進行對比任務,可能會出現少量數據不一致對比結果,從而失去參考意義。
操作要求
在使用數據復制服務進行數據災備的過程中,存在一些無法預知或因人為因素及環境突變導致同步失敗的情況,針對該情況,數據復制服務提供以下常見的操作限制,供您在數據災備過程中參考。
表操作要求
| 類型 | 操作限制 (需要人為配合) |
|---|---|
| 注意事項 | 下表中的環境要求均不允許在災備過程中修改,直至災備結束。 業務數據庫進行的參數修改不會記錄在日志里,所以也不會同步至災備數據庫,請在災備數據庫升主后調整參數。 外部數據庫創建的高權限用戶若超出RDS MySQL支持范圍,不會同步至災備數據庫,如super權限。 不支持外鍵級聯操作。 不支持業務數據庫恢復到之前時間點的操作(PITR)。 不支持強制清理binlog,否則會導致災備任務失敗。 網絡中斷在30秒內恢復的,不影響數據災備,超過30秒,則可能會導致災備任務失敗。 若專屬計算集群不支持4vCPU/8G或以上規格實例,則無法創建災備任務。 支持斷點續傳功能,但對于無主鍵的表可能會出現重復插入數據的情況。 存在災備任務時,不允許創遷移或者同步任務。 災備不支持多寫的多主模式,如果外部數據庫沒有提供superuser權限,則外部數據庫為備時無法設置只讀,請嚴格確保備節點的數據只來自主節點的同步,任何其他地方的寫入將會導致備庫數據被污染,使得災備出現數據沖突而無法修復。 如果外部數據庫為備且為只讀,該只讀只有superuser權限的賬號可以寫入數據,其他賬號無法寫入,但仍然需要確保備節點通過這個賬號寫入任何數據導致備庫數據被污染,使得災備出現數據沖突而無法修復。 業務數據庫和災備數據庫為RDS for MySQL實例時,不支持帶有TDE特性并建立具有加密功能表。 |
| 操作須知 | 數據災備過程中,如果修改了業務庫用于災備的密碼,會導致該災備任務失敗,需要在數據復制服務控制臺將上述信息重新修改正確,然后重試任務可繼續進行數據災備。一般情況下不建議在災備過程中修改上述信息。 數據災備過程中,如果修改了業務庫端口,會導致該災備任務失敗。一般情況下不建議在災備過程中修改業務庫端口。 數據災備過程中,如果業務庫為非本云關系型數據庫實例,不支持修改IP地址。本云關系型數據庫實例,對于因修改IP地址導致災備任務失敗的情況,系統自動更新為正確的IP地址,重試任務可繼續進行同步。一般情況下,不建議修改IP地址。 數據災備過程中,不建議做刪除類型的DDL操作,可能會引起任務失敗。 禁止源端在災備任務執行主備倒換過程中進行寫入操作,否則會出現數據污染或者表結構不一致,并最終導致業務端和災備端數據不一致。 |
在使用數據復制服務進行數據災備的過程中,對環境有一些特定的要求,請確保環境配置滿足以下條件。該類型的要求系統會自動檢查,并給出處理建議。
環境要求
| 類型 | 使用限制 (DRS自動檢查) |
|---|---|
| 數據庫權限配置 | 業務數據庫帳戶需要具備如下權限:SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、TRIGGER、SHOW VIEW、EVENT、INDEX、LOCK TABLES、CREATE VIEW、 CREATE ROUTINE、 ALTER ROUTINE、 CREATE USER、RELOAD、REPLICATION SLAVE、REPLICATION CLIENT、WITH GRANT OPTION。 災備數據庫帳戶需要具備如下權限:SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE、TRIGGER、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帳戶默認已具備上述權限。 |
| 災備對象約束 | 不支持非MyISAM和非InnoDB表的災備。 不支持系統表。l不支持觸發器和事件的災備。 不支持對系統庫下自定義對象有操作權限的帳號災備。 不支持指定部分業務庫進行災備,跨庫DDL、rename等操作將造成容災失敗。 |
| 業務數據庫配置 | MySQL業務數據庫的binlog日志必須打開,且binlog日志格式必須為Row格式。 在磁盤空間允許的情況下,建議業務數據庫binlog保存時間越長越好,建議為7天。 業務庫不允許存在空賬號或者空密碼。 災備中,必須設置MySQL業務數據庫的server-id。如果業務數據庫版本小于或等于MySQL5.6,server-id的取值范圍為2-4294967296;如果業務數據庫版本大于或等于MySQL5.7,server-id的取值范圍為1-4294967296。 業務數據庫須開啟GTID。l業務數據庫名稱在1到64個字符之間,由小寫字母、數字、中劃線、下劃線組成,不能包含其他特殊字符。 業務數據庫中的表名、視圖名不能包含:'<>/\以及非ASCII字符。l數據庫expire_logs_days參數值為0,可能會導致災備失敗。 |
| 災備數據庫配置 | 災備數據庫實例的運行狀態必須正常,若數據庫實例是主備實例,復制狀態也必須正常。 災備數據庫實例必須有足夠的磁盤空間。 災備數據庫大版本號必須與業務庫保持一致。 除了MySQL系統數據庫之外,災備庫必須是空實例,且災備任務開始后災備庫會被設置成只讀。 |