天天看點

使用DMS遷移AWS RDS到Azure SQL

    這次來實操一把,試下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遷移AWS RDS到Azure SQL

可以看到遷移時可以選擇源庫和對應的目标庫

使用DMS遷移AWS RDS到Azure SQL

DMS對于遷移的要求是比較嚴格的,源庫中的表必須在目标庫存在,而且字段這些也都要求一樣,必須有主鍵,目标表必須是空的等等,讓人感覺會很麻煩,但是其實有簡單的辦法,之後會有介紹,最重要的一點是必須開啟CDC

使用DMS遷移AWS RDS到Azure SQL

CDC首先要在庫級别開啟,運作以下指令即可

exec msdb.dbo.rds_cdc_enable_db Sample

使用DMS遷移AWS RDS到Azure SQL

之後在表級别開啟

USE Sample

EXEC sys.sp_cdc_enable_table 

@source_schema = N'dbo', 

@source_name   = N'test_table', 

@role_name     = NULL, 

@supports_net_changes = 1

使用DMS遷移AWS RDS到Azure SQL

然後這裡才能不提示CDC未開啟

使用DMS遷移AWS RDS到Azure SQL

确認之前輸入的資訊

使用DMS遷移AWS RDS到Azure SQL

可以看到已經在準備遷移了

使用DMS遷移AWS RDS到Azure SQL

我們嘗試在源庫增加資料

使用DMS遷移AWS RDS到Azure SQL

在DMS中就可以看到在同步資料,這是一個持續的過程,隻要有新資料就會同步,但是請注意,如果有新表的話,是不會自動同步的,因為DMS遷移時會由使用者選擇同步哪些表

使用DMS遷移AWS RDS到Azure SQL

    如果确認不再需要同步了,那麼可以選擇cutover

使用DMS遷移AWS RDS到Azure SQL

遷移完成後,還可以看到對應的report

使用DMS遷移AWS RDS到Azure SQL

可以看到使用還是比較簡單的,主要在遷移時對于目标庫有很多限制條件,包括主鍵,表必須都存在等,如果是一個新環境沒辦法直接遷移,對于這個問題其實是有很好地解決方案的,後邊就來看一下