Data Migration Assistant 是甚麼工具
Data Migration Assistant (DMA) 是微軟提供的 SQL Server 資料庫與帳戶移轉工具。可以移轉的 SQL Server 資料庫版本如下:
來源資料庫版本:
- SQL Server 2005
- SQL Server 2008
- SQL Server 2008 R2
- SQL Server 2012
- SQL Server 2014
- SQL Server 2016
- SQL Server 2017
目標資料庫版本:
- SQL Server 2012
- SQL Server 2014
- SQL Server 2016
- Windows 和 Linux 上的 SQL Server 2017
- SQL Server 2019
- Azure SQL Database 單一資料庫
- Azure SQL Database 受控執行個體
- 在 Azure 虛擬機器上執行的 SQL server
0 測試環境與項目
- 來源主機環境:Windows Server 2008 R2 SP1,需有 .NET Framework 4.7.2以上
- 目標主機環境:Windows Server 2016
- 來源資料庫:SQL Server 2008 R2
- 目標資料庫:SQL Server 2016
- 移轉工具:Data Migration Assistant v5.0 (DMA)
- 移轉項目:資料庫與帳戶
1 安裝 Data Migration Assistant
- 軟體下載網址:https://www.microsoft.com/en-us/download/details.aspx?id=53595
- 執行DataMigrationAssistant .msi檔案進行安裝
開啟 Data Migration Assistant
執行評估
我們先執行評估,看看評估情況
這一步是選擇移轉目標的 SQL Serve 版本,我們選 2016
填入連線資訊,記得勾選 Trust server certificate
選擇要評估移轉的資料庫
完成評估,這裡顯示沒有相容性問題
評估結果可以匯出為 *.csv 檔
只執行移轉帳戶
- DMA 可以只移轉帳戶,可以移轉帳戶和密碼,其餘設定不一定可以全部移轉,移轉後需要手動設定。
-
可以重複移轉帳戶至目標 SQL Server,但新資料不會覆寫 >_<。所以,如果來源 SQL Sever 帳戶改密碼,需到目標 SQL Sever 刪除同名帳戶,再執行移轉。
開啟 DMA,點選 Migration,Source 與 Target 都選 SQL Server。
填入來源資料庫與目標資料庫的連線資訊
因為只要移轉帳戶,不要勾選任何資料庫。
這裡會列出可以移轉的帳戶,以及告知是否目標資料庫已經存在同名帳戶
測試到這裡出現警告,原因是我要移轉的帳戶所綁定的資料庫在目標SQL Server 並不存在。雖然有警告,該帳戶仍會移轉過去。
開啟 SSMS 連線到目標 SQL Server,可以看到帳戶已經移轉,包含密碼。
- 微軟提供移轉SQL Server 帳戶的另一方式,請見以下網址:
How to transfer logins and passwords between instances of SQL Server
執行資料庫移轉
- 必須要建立一個來源與目標主機共用資料夾
-
DMA 執行者(例如網域使用者)須有權限存取共用資料夾
-
DMA 需要有權限存取 SQL Server
-
如果目標SQL Server 已有同名資料庫,無法移轉。
1 新增移轉
2 填入來源與目標 SQL Server 連線資訊
3 選擇要移轉的資料庫
DMA 的做法是,使用來源 SQL Server 備份出資料庫放在共用資料夾,再使用目標 SQL Server 從共用資料夾取出檔案還原資料庫。因此:
- 必須建立一個來源與目標主機共用資料夾,DMA 要有權限可存取
- DMA 需要有權限需有存取 SQL Server ,必須在「來源」與「目標」的 SQL Server Service 指定帳戶,給予 DMA 夠大的權限,我使用 Domain administrator。
DMA 設定如下:勾選要移轉的 DB,填入共用資料夾的網路路徑,點選下一步。
這裡一樣可以移轉帳戶,如果不需要,就不要勾選。點選 Start Migration。
完成移轉
以 SSMS 到目標 SQL Server 可以看到