Introduce data migration assistant 4.0

Data Migration Assistant(DMA)是微軟所開發的資料庫升級工具,他主要是能協助客戶偵測舊環境的相容性以及部份/不再支援的功能分析。此外它也附帶提供了Schema與Data移轉的功能,由於它的底層是使用 bulk copy 逐筆逐筆的方式,對於中大型的資料庫建議僅進行 Schema的移轉,再搭配其他高效的方式來進行 Data的移轉。

官網去下載DMA(data migration assistant) 安裝找到 DataMigrationAssistant.msi並double click開始安裝裝好後,Launch這個應用程式找到左邊的"+"加號新增一個專案,選擇Assessment進行評估。先給專案一個名稱,然後下拉Source與Target,告訴應用程式,你要把資料庫移轉至什麼樣的環境?
選擇你要的報表類型,預設值是全選
輸入帳號/密碼登入資料來源,若正確在右邊就會有標的資料庫(User database)給你選
按一下Next
按一下Start Assessment
預設會帶出版本功能的檢測(SQL Server feature parity)頁籤,待會你可以自行切換
介紹之前,先提一下,若需要匯出結果,可以找到右下角的Export report按鈕
在左邊找到 Unsupported features逐一地了解 Issue的狀況、發生的範圍
逐一地了解 Issue的狀況、發生的範圍
甚至是延伸閱讀(藍色的超連結)接著是Partially-unsupported features
接著切換至相容性頁籤,應用程式會告訴你移轉到不同版本(橫向頁籤),可能會遇到的問題Issue
,例如Migration blockers移轉障礙、Bahavior changes行為改變、Deprecated features即將不支援的功能

Compatibility level 90

SQL 2005

Compatibility level 100

SQL 2008/R2

Compatibility level 110

SQL 2012/R2

Compatibility level 120

SQL 2014

Compatibility level 130

SQL 2016

Compatibility level 140

SQL 2017


以畫面中的140(2)頁籤為例,就是說當你要把來源資料庫移轉至SQL2017可能會遇到2個Issue。
以全文檢索的行為變化為例,其影響為何?微軟的建議為何?延伸閱讀的資訊為何?影響的物件有哪些?物件的細節為何?
以LCID(Windows Locale identifier)為例…
以不合格的Join語法為例…
至於資料庫移轉的部份…
跟剛才一樣,要新增一個專案,選擇Migration,給予專案名稱,下拉來源/目的資料庫。
不一樣的地方,就是會多一個移轉範圍(Schema only/Schema and data)的選擇選擇好就可以按下Create按鈕
在Select source頁籤中,要輸入伺服器的名稱、認證的類型、連線加密的方式,就可以按下Connect按鈕在Select target 頁籤中,一樣要輸入類似的參數,然後才能按下Connect按鈕,到下一個Step
接著是範圍的選擇
然後就可以按 Generate SQL script你可以選擇在應用程式中檢視或是Copy出來
等到確認無誤之後再按下 Deploy schema
建立 Schema到新的環境上需要一點時間,接下來視結果你有三個選項,Back回頭去修改範圍、Redeploy schema發生conflict或是其他異常想再重新佈署一次、Migrate data移轉資料
若你的環境可以允許停機,因為在DMA的專案中只能幫你移轉一次,萬一在一個忙碌的資料庫中,移轉後又有新的資料寫進來,你除了需要自己寫SQL比較新舊資料庫的差異,最棘手恐怕是不曉得何時可以追上?
跟佈署schema很像會先讓你選範圍,另外應用程式還提供了每個object欲移轉的筆數,以及其可行性,確認後你就可以按下右下角的Start data migration
開始實況轉播資料移轉的狀況最後,當移轉完成,在右下角會顯示移轉的結果
最後總結一下,如同我們在SQL 2008 EOS的升級文章中所提到的 DMA 主要是設計在分析新舊資料庫二邊的差異並提供初步的升級資訊,若你的資料庫可以允許停機,是可以直接用這個應用程式來移轉資料;若不允許停機,建議回去看一下這篇文章進行全局的規劃

李秉錡 Christian Lee
Once worked at Microsoft Taiwan