這次來實操一把,試下DMS到底是怎麼遷移的,首先我們試下從AWS的RDS遷移到Azure SQL
AWS的RDS我們選擇北京區,RDS采用SQL Server 2014 Enterprise版本,Azure SQL采用Azure 北一區,這個就沒什麼版本了
首先來看下,我們之前已經把DMS建立好了,接下來隻需要在DMS中建立遷移任何即可,當然在這之前,我們需要確定AWS的RDS是可以通路的,并且在RDS中建立一些測試用的資料,因為RDS沒有辦法通路本地的資料檔案,是以之前生成測試資料的腳本也沒辦法用了,我們隻能手動建一些測試資料了
測試資料建好之後,來到DMS中,可以直接建立一個migration project, migration project會定義遷移的源和目标
可以看到選項裡就可以選擇AWS RDS for SQL Server,對應的目标選擇Azure SQL,這裡可以選擇的事online遷移,也就是持續性的遷移,可以支援增量,有些遷移場景是不支援增量的
輸入源庫及目标庫的資訊
要注意的是,不管是RDS還是Azure SQL,如果想讓DMS可以通路的話,都需要添加對應的防火牆規則,DMS的IP其實當通路受限的時候就會有提示提醒你DMS的IP是什麼
Azure SQL在firewall裡添加即可,AWS RDS可以在sg裡添加

可以看到遷移時可以選擇源庫和對應的目标庫
DMS對于遷移的要求是比較嚴格的,源庫中的表必須在目标庫存在,而且字段這些也都要求一樣,必須有主鍵,目标表必須是空的等等,讓人感覺會很麻煩,但是其實有簡單的辦法,之後會有介紹,最重要的一點是必須開啟CDC
CDC首先要在庫級别開啟,運作以下指令即可
exec msdb.dbo.rds_cdc_enable_db Sample
之後在表級别開啟
USE Sample
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'test_table',
@role_name = NULL,
@supports_net_changes = 1
然後這裡才能不提示CDC未開啟
确認之前輸入的資訊
可以看到已經在準備遷移了
我們嘗試在源庫增加資料
在DMS中就可以看到在同步資料,這是一個持續的過程,隻要有新資料就會同步,但是請注意,如果有新表的話,是不會自動同步的,因為DMS遷移時會由使用者選擇同步哪些表
如果确認不再需要同步了,那麼可以選擇cutover
遷移完成後,還可以看到對應的report
可以看到使用還是比較簡單的,主要在遷移時對于目标庫有很多限制條件,包括主鍵,表必須都存在等,如果是一個新環境沒辦法直接遷移,對于這個問題其實是有很好地解決方案的,後邊就來看一下