閱讀582 返回首頁    go 手機大全


SQL Server不停機遷移__數據遷移_用戶指南_數據傳輸-阿裏雲

數據傳輸DTS支持SQLServer增量數據遷移,通過增量數據遷移可以實現本地SQLServer業務不停服的情況下,完成SQLServer到RDS For SQLServer數據庫的遷移。

本小節簡單介紹使用DTS進行SQLServer->RDS For SQLServer不停機遷移的任務配置流程。

遷移類型

對於SQLserver->RDS For SQLserver數據遷移,DTS支持結構遷移、全量數據遷移及增量數據遷移,這個遷移類型的功能及限製如下:

  • 結構遷移

    DTS將遷移對象的結構定義遷移到目標實例。目前DTS支持結構遷移的對象有:表、視圖、表觸發器、同義詞、SQL存儲過程、SQL函數、plan guid、自定義類型、rule、default.

  • 全量數據遷移

    全量遷移將SQLServer實例的存量數據全部遷移到目標RDS實例。

  • 增量數據遷移

    將遷移過程中產生的增量數據遷移到目標庫,通過增量數據遷移可以保證源數據庫遷移過程產生的增量數據可以被同步到目標數據庫,最終保證兩個數據庫的數據一致.

不停服遷移原理

不停服遷移原理

為保證遷移過程中,源數據庫業務寫入的所有變更數據能夠被遷移到目標庫,在全量遷移之前,數據傳輸後台就會開啟增量數據拉取模塊,拉取並保存遷移過程中,源數據庫的業務寫入。當全量數據遷移完成後,會啟動增量寫入模塊,開始回放這些增量數據,從而實現源跟目標實例增量數據實時同步。

當遷移進入增量遷移階段時,增量數據遷移是一個動態的過程,除非用戶手動停止遷移,否則會一直保持兩邊數據實時同步,所以建議當增量遷移無延遲時,可以進行源數據庫和目標數據庫的數據校驗,並在目標數據庫進行業務測試,當這些驗證都通過後,可以停止遷移任,然後將業務切換到目標數據庫上。通過這種遷移方式,可實現在數據遷移過程中,應用停服時間降低到分鍾級別。

遷移限製

  • 結構遷移不支持assemblies、庫級存儲過程、service broker、全文索引、全文目錄、分布式schema、分布式函數、CLR標量函數、CLR標值函數、內部表、聚合函數、係統 的遷移。
  • 如果使用了對象名映射功能後,依賴這個對象的其他對象可能遷移失敗。
  • 增量遷移,不支持DDL同步。
  • 增量遷移,隻支持含有聚簇索引,且聚簇索引為唯一鍵的表。
  • 增量遷移,不支持 隻更新大字段的update語句的同步。
  • 增量遷移,不支持含有計算列的表。
  • 一個增量遷移任務,隻支持一個數據庫的遷移。 如果同時有多個數據庫需要進行增量數據遷移,那麼需要創建多個遷移任務。

遷移權限要求

當使用數據傳輸進行SQLServer遷移時,在不同遷移類型情況下,源跟目標數據庫的遷移帳號權限要求如下:

遷移類型 結構遷移 全量數據遷移 增量數據遷移
本地SQLServer實例 select select sysadmin
目的RDS實例 讀寫權限 讀寫權限 讀寫權限

遷移準備

源數據庫的日誌格式必須為full,如果源數據庫的日誌格式不為full,那麼需要通過下麵兩個步驟設置:

  1. 在源數據庫執行: alter database database_name set recovery_model_desc=’full’, 其中database_name為需要遷移的數據庫名。
  2. 為了保證開啟完整日誌生效,需要在源數據庫進行一次日誌備份,在源數據庫執行:BACKUP LOG database_name to DISK=backup_place WITH init , 其中 database_name 為待遷移的數據庫名,backup_place為備份文件存儲的地址。

遷移任務配置

RDS實例數據庫創建

在數據遷移過程中,如果待遷移的數據庫在目標RDS實例中不存在,那麼DTS自動會創建。但是對於如下兩種情況,用戶需要在配置遷移任務之前,手動創建數據庫。

  1. 數據庫名稱不符合:RDS定義規範(由小寫字母、數字、下劃線、中劃線組成,字母開頭,字母或數字結尾,最長64個字符)。
  2. 待遷移數據庫,在Oracle跟目標RDS實例中名稱不同。

對於這兩種情況,用戶需要在配置遷移任務之前,先在RDS控製台完成數據庫創建。具體參考RDS數據庫創建流程RDS使用手冊

遷移帳號創建

遷移任務配置,需要提供本地SQLServer數據庫及目標RDS實例的遷移賬號。遷移賬號所需權限詳見上文的 遷移權限要求。

如果本地SQLServer實例遷移賬號尚未創建,那麼您可以參考SQLServer User創建,創建滿足權限要求的遷移賬號。

如果目標RDS實例遷移賬號創建,那麼您可以參考 RDS賬號創建流程,創建對待遷移數據庫有讀寫權限的遷移賬號。

遷移任務配置

當數據庫、遷移賬號都創建完成後,就可以開始配置遷移任務了。下麵詳細介紹下具體的配置步驟。

  1. 進入數據傳輸DTS控製台,點擊右上角的創建遷移任務,開始任務配置。
  2. 本地SQLServer及目標RDS實例連接信息配置。

    在這個步驟中,主要配置遷移任務名稱,遷移源實例及目標實例連接信息。其中:

    • 任務名稱默認情況下,DTS為每個任務自動生成一個任務名稱。任務名稱沒有唯一性要求,您可以修改這個名稱,為任務配置一個具有業務意義的名稱,便於後續的任務識別。
    • 源實例連接信息
      • 實例類型:選擇 有公網IP的自建數據庫
      • 數據庫類型:選擇 SQLServer
      • 主機名或IP地址:配置本地SQLSerever數據庫訪問地址,這個地址必須為公網訪問方式
      • 端口:SQLServer實例監聽端口
      • 數據庫賬號:SQLServer實例訪問賬號
      • 數據庫密碼:上麵SQLServer訪問賬號對應的密碼
    • 目標RDS實例連接信息

      • 實例類型:選擇 RDS實例
      • RDS實例ID: 配置遷移的目標RDS實例的實例ID。DTS支持經典網絡、VPC網絡的RDS實例
      • 數據庫賬號:RDS實例的連接賬號
      • 數據庫密碼:上麵數據庫賬號對應的數據庫密碼

      連接信息配置

  3. 遷移對象及遷移類型配置。

    • 遷移類型DTS支持 結構遷移、全量數據遷移、增量數據遷移。

      進行不停機遷移,需要選擇:結構遷移+全量數據遷移+增量數據遷移。

    • 遷移對象遷移對象,需要選擇您要遷移的對象。遷移對象選擇的粒度可以為:庫、表、列三個粒度。默認情況下,對象遷移到RDS實例後,對象名跟本地MySQL實例一致。如果您遷移的對象在源實例跟目標實例上名稱不同,那麼需要使用DTS提供的對象名映射功能,詳細使用方式可以參考庫表列映射

      當配置完遷移對象及遷移類型後,即進入任務啟動前的預檢查步驟

  4. 預檢查。

    在遷移任務正式啟動之前,會先進行前置預檢查,隻有預檢查通過後,才能成功啟動遷移。

    如果預檢查失敗,那麼可以點擊具體檢查項後的按鈕,查看具體的失敗詳情,並根據失敗原因修複後,重新進行預檢查。

    預檢查失敗

  5. 啟動遷移任務。

    當預檢查通過後,可以啟動遷移任務,任務啟動後,可以到任務列表中查看任務具體的遷移狀態及進度。

    增量數據遷移是個動態同步的過程,所以建議在增量遷移達到無延遲狀態時,在目標數據庫上進行業務驗證,如果驗證成功,那麼可以停掉遷移任務,然後將業務切換到目標數據庫。

    至此,完成將本地SQLServer數據庫到RDS For SQLServer的數據遷移任務配置。

  6. 數據同步驗證。

    為了驗證遷移過程中,源數據庫變更是否可以同步到目標庫,我們在遷移過程中,往源庫插入一條記錄,具體如下圖。

    源庫導入

    可以查看此時源庫表sbtest1中新增了一條記錄,此時到目標庫中查詢這條記錄。

    目標校驗

    所以,通過這種方式可以將遷移過程中源庫產生的增量數據實時同步到目標庫,從而實現數據遷移過程中,應用停機時間降低到分鍾級別。

    致此,完成本地SQLServer數據庫到RDS For SQLServer不停服遷移的任務配置。

最後更新:2016-11-23 16:04:12

  上一篇:go 從本地SQL Server遷移到RDS for SQL Server__數據遷移_用戶指南_數據傳輸-阿裏雲
  下一篇:go Oracle到PPAS不停機數據遷移__數據遷移_用戶指南_數據傳輸-阿裏雲