首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL ODBC 驅動實現 MySQL 與 SQL Server 異構數據雙向遷移

     編輯:MySQL 資料庫相關知識

場景與工具鏈

  • 源/目標:MySQL ↔ SQL Server 7/2000
  • 工具:SQL Server Enterprise Manager (MMC) + DTS 導入/導出向導
  • 橋梁:MySQL ODBC 3.51/5.x 驅動(myodbc3.dll/myodbc5.dll)

前置準備

  1. 下載安裝 MySQL ODBC 驅動(32/64 位匹配 SQL Server 進程位數)
  2. 配置系統 DSN(控制面板 → 管理工具 → ODBC 數據源):
    • 名稱:MySQL_DSN
    • Server、Database、User、Password、Port(3306)、Charset(utf8)
    • 測試連接成功

SQL Server → MySQL 遷移步驟

  1. 打開 Enterprise Manager,右鍵源數據庫 → 所有任務 → 匯出數據
  2. 數據源:Microsoft OLE DB Provider for SQL Server,選源實例/庫
  3. 目標:Microsoft OLE DB Provider for ODBC Drivers,選 MySQL_DSN
  4. 選「從源數據庫複製表」,勾選需遷移表(或全選)
  5. 可選:編輯映射 調整類型對應(如 datetime→datetime、text→longtext、bit→tinyint(1))
  6. 立即執行 → 完成

MySQL → SQL Server 遷移(反向)

同上,源選 MySQL_DSN,目標選 SQL Server OLE DB Provider。

常見失敗原因與修復

大數據量優化建議

  • 分批導出:WHERE id BETWEEN ... 分多個 DTS 包並行
  • 禁用目標表索引/約束/觸發器,導入後重建
  • 使用 BULK INSERT / bcp / mysqldump --tab + LOAD DATA 替代 DTS,速度提升 10x+
  • 網絡層面:同機房千兆/萬兆直連,避免跨公網

總結

MySQL ODBC + DTS 實現了異構遷移的「零代碼」配置化流程,適合中小數據量、一次性遷移。大數據量、增量同步、生產級切換請使用 mydumper/myloader、Debezium CDC、SQL Server Migration Assistant (SSMA) 等專業工具鏈。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
錯誤現象原因修復
類型不匹配轉換失敗SQL Server uniqueidentifier、sql_variant 等無對應 MySQL 類型編輯映射改為 char(36)/varchar,或預處理導出視圖
長度截斷目標列長度 < 源數據實際長度擴大目標列長度,或啟用「錯誤行重定向」記錄問題行
主鍵/自增衝突身份列插入衝突目標表啟用 IDENTITY_INSERT ON,或去除自增屬性後導入
字符集亂碼ODBC DSN 未設 Charset、或雙端編碼不一致DSN 設 charset=utf8mb4,SQL Server 列用 nvarchar