萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

SQL Server Migration Assistant (SSMA) for MySQL 遷移實戰教學

微軟官方免費工具 SSMA for MySQL 支援將 MySQL 資料庫(含 WordPress 等實戰案例)遷移至 SQL Server 或 SQL Azure。本文以 WordPress 資料庫為例,演示端到端遷移流程。

前置準備

  1. 下載 SSMA for MySQL 安裝。
  2. 安裝 MySQL ODBC Driver 5.3+(SSMA 依賴)。
  3. 首次啟動需向微軟申請授權檔 mysql-ssma.license 並載入。

遷移 7 步驟

1. 建立專案

「檔案 → 新專案」→ 選擇遷移目標:SQL Server 或 SQL Azure。

2. 連接 MySQL 來源

工具列「連接到 MySQL」→ 填寫 DSN/主機/埠/帳號/密碼 → 連線成功後,左側「MySQL 元資料總管」顯示庫/表樹狀結構。

3. 產生結構遷移報告

右鍵目標資料庫 →「建立報告」→ 分析型別對映、不支援語法、資料截斷風險等。報告紅色項需優先處理。

4. 連接 SQL Server 目標

工具列「連接到 SQL Server」→ 指定目標資料庫名(若不存在,SSMA 詢問是否建立)。右側「SQL Server 元資料總管」顯示目標結構。

5. 轉換結構

MySQL 元資料總管 → 右鍵資料庫 →「轉換結構」。

關鍵調整範例: MySQL datetime 欄位預設值 '0000-00-00 00:00:00' 在 SQL Server 非法,需在轉換後將該欄位改為 NULL 或有效預設值 '1900-01-01'。

6. 同步目標資料庫

SQL Server 元資料總管 → 右鍵資料庫 →「與資料庫同步」→ 確定。SSMA 在目標端建立/更新表、索引、外鍵等結構物件。

7. 遷移資料

MySQL 元資料總管 → 右鍵資料庫 →「遷移資料」→ 輸入雙端連線認證 → 開始。進度條顯示各表列數、耗時、錯誤行。

常見遷移差異對照表

MySQLSQL Server處理建議
AUTO_INCREMENTIDENTITY(1,1)SSMA 自動轉換
ENUM/SET無對應改為 CHECK 約束或查核表
utf8mb4NVARCHAR字串長度 ×2~3 預留
TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMPDATETIME2 + 觸發器SSMA 生成觸發器,驗證邏輯
ENGINE=InnoDB叢集索引表主鍵必須非叢集或調整填充因子

遷移後驗收清單

  • 行數核對:SELECT COUNT(*) FROM src vs SELECT COUNT(*) FROM dst。
  • 抽樣比對:關鍵業務表隨機 100 行逐欄比對。
  • 應用測試:指向新庫跑煙霧測試、整合測試。
  • 效能基準:同等查詢對比執行計畫、IO、CPU。

SSMA 讓異構遷移從「手工腳本」進化為「可視化、可審計、可重覆」的工程化流程,適合中型專案一次性遷移;持續同步仍需 CDC 工具。

copyright © 萬盛學電腦網 all rights reserved