使用 Data Migration Assistant 移轉 SQL Server 資料庫與帳戶

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,可以看到帳戶已經移轉,包含密碼。

執行資料庫移轉

  • 必須要建立一個來源與目標主機共用資料夾

  • 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 可以看到

參考

發表留言