上船容易——從阿里雲遷移SQL數據庫到Azure雲的嘗試 之二

    上文書說到,利用DMA和SSMS遷移阿里PaaS SQL到Azure失敗了,並且初步查到了原因,是因爲Ali RDS對系統庫的訪問做了Deny。

    解決的辦法是在本地(Ali雲)對數據庫進行導出導入:創建一個新的IaaS的數據庫,然後將PaaS上的數據導入。有了這個可以輸出的數據庫,就能夠在Azure快樂地進行輸入啦。

   

    進行數據遷移,除了DMA之外,SSMS 2017的菜單裏也集成了Azure SQL的部署嚮導,能夠把SQL Server直接部署到Azure SQL的PaaS實例。

    clip_image001

    放這張圖的意義在於這句話“……將數據庫部署到Microsoft Azure SQL Database。您還可以使用該向導將 Microsoft Azure SQL Database部署到SQL Server的本地實例,或將數據庫從一個Microsoft Azure SQL Database實例移到另一個實例。”

    我覺得,雲服務應該是能上能下的,而不是上了就下不來的。雖然這個嚮導的遷移並不是我期望的平滑同步遷移。SSMS使用的是BACPAC的遷移方式。

    clip_image001[5]

    在這個場景中,我的筆記本同時連接到不同的雲平臺,這意味着數據需要從Ali雲流到我的電腦,然後再流入Azure雲。實際部署中肯定應該把SSMS部署在雲中,提高複製速度減少流量。並且,需要保留足夠的存儲空間以存放BACPAC文件。

    回到這個故事的最初,朋友其實是有很大的數據庫需要遷移的。所以,這種導入導出的方式並不是我所期望的。我期望的是沒有什麼實際停機時間的平滑遷移。所以我覺得訂閱複製方式可能更加適合。

    借這個機會,我也在Ali的SQL Server上啓用了分發,在Azure上啓用了訂閱。

    image

    從Ali的IaaS SQL到Azure,就沒啥問題了。轉過身,我當然也要試試DMA這個工具來遷移數據庫,

    image

    這一次,能夠訪問系統庫的數據庫服務器可以遷移了。DMA工具會對遷移進行評估,然後來創建遷移工作。在這個例子裏,因爲存在跨庫查詢,所以遷移到PaaS的SQL實例會有報錯,建議修改使用彈性查詢。

    通過這次折騰,我覺得比較好的遷移方式,是:

1、如果是個很小的數據庫,並且也不想做任何的修改調整的話,簡單粗暴的虛機導出導入~

2、如果希望通過遷移完成從IaaS到PaaS的變遷,建議首先評估PaaS是否有任何限制,上得去,是否下得來

3、源SQL到目標SQL的操作兼容性。可以用DMA進行遷移評估,根據報告確認有哪些兼容性調整的工作

4、數據庫稍大,就需要考慮數據連續性和遷移窗口的矛盾,是否使用AlwaysOn或者發佈訂閱的方式來做數據庫複製

另外有個本來是NDA的消息,不過微軟的兄弟已經透露了,Azure上很快有更新的Managed SQL的版本,能夠減少更多的限制,提供更好的性能和靈活度。

    上船容易,也要想想下船難不難。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章