前邊提到了,在用DMS遷移數據庫的時候,會要求數據庫的基本架構(表結構等)和原來是一致的,如果數據庫比較多的話,那就很麻煩了,而且像view, 存儲過程這些也沒辦法用DMS遷移。
所以如果是這樣的話,其實DMS並不是很方便,不過其實這是有原因的,因爲微軟對於數據庫遷移其實並不止DMS這一種方式,DMS在中國落地的時間還沒有半年,但是另外一個工具DMA其實幾年前就可以GA了,DMA是個很方便的工具,他有個很重要的功能就是可以做評估,比如之前遷移SQL Server到Azure SQL的時候就可以拿DMA來做遷移的評估,同時他也可以做數據庫的遷移,我們可以在用DMS遷移數據之前,先用DMA遷移數據庫的schema,這樣整個遷移過程會平滑的多!
首先,需要先下載DMA工具,DMA不像DMS,他不是一個SaaS的平臺,而是一個在本地安裝的工具,可以下載到本地進行安裝,只要能在網絡上訪問源和目標的數據庫即可
https://www.microsoft.com/en-us/download/details.aspx?id=53595
安裝過程不贅述,直接看怎麼使用,下邊就是DMA的界面
我們可以直接創建一個project,創建的時候會看到可以選assessment,還是migration,我們先拿assessment來試下,可以看到源這裏直接就可以選AWS RDS
DMA會檢測數據庫的兼容性,因爲Azure SQL是個較爲輕量級的數據庫,一些功能是不支持的,而且本身不同數據庫版本之間也會存在兼容性問題,所以要先評估是否有類似的情況
這裏連接到源之後會讀取源庫的信息
評估的時間要看源庫的數量和大小而定,這裏數據量很小,所以評估過程很快,我們還可以把報表打出來進行篩選
下邊就來看怎麼用DMA遷移數據庫的schema,在遷移的時候源庫沒有AWS RDS的選項,不過我們可以選SQL Server, 遷移的範圍直接選schema就好,數據遷移我們可以用DMS,DMA本身不支持增量遷移,但是DMS可以,所以這兩個其實可以結合使用
這裏選擇源庫和目標庫
這裏可以看到,讀取源庫信息之後,view,procedure這些都會生成對應的腳本,之後這些腳本會到目標庫上去執行
deploy schema之後,就可以看到結果了
到目標庫之後,已經可以看到這些內容了,表的主鍵這些也都和源庫是一樣的
之後再用DMS遷移的時候就不會再提示什麼表不存在,主鍵不存在之類的了