如何將 MySQL 資料庫轉移到 Microsoft SQL Server 與 Azure SQL Database

MySQL 是相當常用之資料庫伺服器,而微軟雲端服務 Microsoft Azure 上 Azure SQL Database 是一個功能強大且經濟實惠的選擇,透過本篇文章,使用 SQL Server Migration Assistant ( 以下簡稱 : SSMA ) 利用幾個簡單的步驟,可將您的 MySQL 資料庫移轉到  Microsoft SQL Server 或是 Azure SQL Database 上。

SQL Server 移轉小幫手

SSMA 支援多種架構的資料庫 (Sybase、Oracle、MySQL) 快速移轉到 Azure SQL Database 或 Microsoft SQL Server。它將移轉資料庫的主要步驟;例如 : 結構 (Schema) 轉換、SQL 陳述式轉換、資料表格移轉等加以自動化,來減少從不同架構的資料庫移轉至 Azure SQL Database 或 Microsoft SQL Server 的時間和風險。SSMA 目前提供以下多種版本:

  • 支援 Oracle 之 Microsoft SQL Server 移轉小幫手 (Version 6.0)

Microsoft SQL Server Migration Assistant v6.0 for Oracle

  • 支援 MySQL 之 Microsoft SQL Server 移轉小幫手 (Version 6.0)

Microsoft SQL Server Migration Assistant v6.0 for MySQL

  • 支援 Sybase 之 Microsoft SQL Server 移轉小幫手 (Version 6.0)

Microsoft SQL Server Migration Assistant v6.0 for Sybase

  • 支援 Access 之 Microsoft SQL Server移轉小幫手 (Version 6.0)

Microsoft SQL Server Migration Assistant v6.0 for Access

關於安裝步驟,詳情請參考 : SQL Server Migration Assistant Team‘s Blog

將 MySQL 資料庫移轉到 Microsoft SQL Server 步驟

1. 下載並且安裝 Microsoft SQL Server Migration Assistant for MySQL

2. 開啟 Microsoft SQL Server Migration Assistant for MySQL

接著點選 File 來新增一個新的資料庫物件(object)。

在新增物件的對話方塊中,會要求輸入物件名稱以及要將 MySQL 資料庫移轉到哪個版本的 Microsoft SQL Server 或是 Azure SQL Database ( 舊名 SQL Azure )。本範例中我們選擇將 MySQL 資料庫移轉到 Microsoft SQL Server 2008 Express 版。

選取 "OK",則新的資料庫物件就建立好了。

注意 : 若是您目前的 SQL Server 版本是舊版本 (例如 : SQL Server 2008),則您資料庫物件轉移選項不能夠高於此版本。

3. 建立 MySQL 資料庫連線

選取左上角的 "Connect to MySql"

輸入 MySQL 的伺服器名稱、連結的通訊端口、使用者名稱與密碼

注意 :

  • 要連結 MySQL 的話,還需要安裝 MySQL-Connector-odbc (版本5.1以上),若先前沒有下載的話,在上圖頁面中會被提醒要下載 MySQL ODBC,您可至 http://dev.mysql.com/downloads/connector/odbc/ 下載安裝
  • MySQL-Connector-odbc 無法連接 MySQL 4.0 與更舊版本的 MySQL

輸入完畢之後,點選 "Connect" 按鈕,接著如下圖所示。在左上邊的 MySQL Metadata Explorer 會顯示出我們想要轉移的 MySQL 資料庫 (world),而在最下方輸出列中會顯示 SQL Server Migration Assistant 已經成功的連接到 MySQL。

上圖右方則是可以讓我們設定對映的 Type、Schema 等移轉的選項。

4. 連接 Microsoft SQL Server

選取左上角"Connect to SQL Server"

接著輸入 SQL Server 的伺服器名稱、目標資料庫名稱以及使用者帳密。

輸入完畢之後,會看到以下的警告訊息。

會出現以下原因為 SQL Server 2008 Express R2 不提供SQL Agent,但是這並不影響移轉的結果,這邊選擇繼續。

若您輸入的資料庫在 SQL Server 中不存在的話,會有提示告訴您要建立一個。

如同步驟三一樣,在最下方工具列上,可以看到 SQL Server Migration Assistant 已經成功的連到了目標 SQL Server

5. 轉換結構描述(Convert Schema)

目前 SQL Server Migration Assistant 已經連接上了 MySQL 和 SQL Server,接著我們要來轉換結構描述,將 MySQL 資料庫中的欄位、欄位類型、主鍵 (primary key)、外鍵 (foreign key) 等結構轉換適用到 SQL Server。

點選要轉換的MySQL資料庫,選取上方工具列的"Convert Schema"。

完成轉換後,我們可以看到 SQL Server 裡面已經有與 MySQL 資料庫中相同的 Schema。

6. 同步 (Synchronize)

上述步驟已經將 MySQL 的表單和 Schema 轉換到 SQL Server 上。下一個步驟,我們要使用 SSMA 將 SQL Server 與資料庫物件做同步。

在SQL Server資料庫中,點擊滑鼠右鍵,選取 "Synchronize with database "

在最下方的輸出列中可以看到同步已經完成了。

7. MySQL 的資料轉移到 SQL Server

最後一個步驟就是將 MySQL 資料庫內的所有資料全部轉移到 SQL Server 之中。

選取工具列上的 "Migrate Data"

資料轉移結束之後,可以從資料轉移報告上看到資料移轉的情況

從下圖可以看到資料成功的從 MySQL 資料庫移轉到 SQL Sever上

將 MySQL 資料庫移轉到 Azure SQL Database

將 MySQL 資料庫移轉到Azure SQL Database 的步驟其實與上面所述相當接近,只有在建立資料庫物件與建立連線上有些許的差別。

1. 點選 File來新增一個新的資料庫物件 (object)。

與上述有差別的地方就是,在建立物件的對話框中,我們要選取移轉的資料庫為 ”SQL Azure” ( Azure SQL Database 舊名)

當資料庫物件建立完成,並且與 MySQL 資料庫連接 (上述步驟3),此時我們要來建立與目標 Azure SQL Database 的連結。

2. 首先要先在 Microsoft Azure 上建立一個 Azure SQL Database。

詳細的方式請參閱這裡

3. 建立好了 Azure SQL Database 之後,我們進入 Azure 管理頁面,並且選擇 ”SQL 資料庫”

4. 在這項服務中,可以看到訂閱帳戶中的所有Azure SQL Database。

點選移轉目標的資料庫後,在儀表板的右下角可以看到 Azure SQL Database 的伺服器名稱,這個名稱就是在下個步驟中,要建立SSMA 與 Azure SQL Database 連線時,所要輸入的伺服器名稱。

5. 由於在步驟1已經告知 SSMA 要移轉的目標為Azure SQL Database,也因此在工具列選項也與上述不同。

選取”Connect to SQL Azure”

在這裡需要輸入步驟4的伺服器名稱、伺服器帳號密碼、目標資料庫名稱

建立完成之後,在左手邊的 "SQL Azure Metadata Explorer" 視窗可以看到,SSMA 已經與您的 Azure SQL Database 完成連線。

6. 建立完SSMA與Azure SQL Database 的連線之後,剩餘的動作包括:轉換結構描述、同步、移轉資料等步驟都與上述相同。

下圖顯示資料已經成功的移轉到Azure SQL Database

7. 完成最後一項步驟之後,透過 Microsoft Azure 的管理網站,我們可以直接使用SQL Database Management Portal 來管理資料庫,在此之前我們需要先取得存取資料庫權限。

進入到Azure SQL Database 的管理頁面,在最下方工具列選取管理。

此時會跳出對話框,詢問您是否要將您目前的 IP 位址加至防火牆規則中,選取"是",這樣 Azure 就會自動將您的 IP 加至規則中,如此才能夠進入 Azure SQL Database 的管理頁面。

您也可以透過伺服器管理頁面,將您所在的 IP 位址加至允許存取伺服器的 IP 範圍中

8. 取得管理權限之後,就可以使用SQL Database Management Portal 進入到資料庫內部進行管理。

輸入伺服器使用者名稱與密碼 (先前在新增步驟時所建立的)

透過 Azure SQL Database 的管理介面可以看到,MySQL 資料庫的 Schema 和資料已經成功的移轉到Azure SQL Database上。

這篇文章原始發佈於「Microsoft Azure 中文部落格」

http://blogs.msdn.com/b/msdntaiwan/archive/2014/09/18/mysql-microsoft-sql-server-azure-sql-database.aspx

时间: 2024-10-25 17:27:05

如何將 MySQL 資料庫轉移到 Microsoft SQL Server 與 Azure SQL Database的相关文章

作别Oracle! Dell資料庫轉移工具開始支援SAP HANA

SAP計畫自2025年起不再讓自家的ERP系統支援Oracle或其他資料庫.Dell表示,SAP ERP系統多數搭配Oracle資料庫,其次是微軟SQL Server.IBM的DB2.由於客戶詢問資料搬移增加,Dell針對此一需求鼓勵客戶儘早開始將資料從Oracle搬離.按讚加入iThome粉絲團 SharePlex已提供Oracle資料庫用戶搬移到SAP.SQL Server.Postgres其他資料庫. 圖片來源: Dell戴爾(Dell)旗下的甲骨文(Oracle)資料庫搬移工具新增了可能

Active Record: 資料庫遷移(Migration) (转)

Active Record: 資料庫遷移(Migration) Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. - Rick Cook

[心得] 如何利用liquibase進行資料庫版本控制 - 基礎觀念

前言 - 會寫這篇除了是要記錄一下使用的過程之外,也是發現到網路上找來的教學幾乎都是跟其它環境做結合 比較沒有單純利用command進行的流程.也沒有整體觀念的介紹,所以將我所理解的整理分享給大家. 因我對於Git版本控制比較熟悉,這當中會借用一點Git的觀念來做解釋 :) liquibase - 介紹與觀念 liquibase是一套opensource的版本控制系統,其背後其實就是透過設定不同版本的changeLogFile,在執行時執行對應的SQL語法,來達到所謂的版本控制. 而在目前最新版

Delphi APP 開發入門(八)SQLite資料庫

Delphi APP 開發入門(八)SQLite資料庫 分享: Share on facebookShare on twitterShare on google_plusone_share 閲讀次數:5279 發表時間:2014/06/25 tags: 行動開發 教學 App Delphi XE6 Android iOS SQLite Delphi APP 開發入門(七)通知與雲端推播 << 前情 在撰寫APP程式時,如果遇到資料間無關聯性且資料量不多時,會以像xml檔案去儲存,但一旦遇到關聯

安卓初級教程(4):sqlite建立資料庫

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 package net.macdidi.myandroidtutorial; import android.content.Context; import android.database.sqlite.SQLiteDatabase;

vb.net 水晶報表CrystalReport 動態設定資料庫來源

沒有出現CrystalReportViewer時,須安裝CRforVS_13_0. 新增1個數據集,新增1個數據表,添加二列,列名要和資料庫名一樣. 修改目標Framework 修改app.config, <startup >改成<startup useLegacyV2RuntimeActivationPolicy ="true"> CrystalReport1.rpt增加數據庫專家 在表單上放入一個CrystalReportViewer1和一個按鈕 程式如下:

FMDB與SQLite 數據庫應用示範:打做一隻簡單的電影資料庫 App

原文:http://www.appcoda.com/fmdb-sqlite-database/ 作者:GABRIEL THEODOROPOULOS 譯者:kmyhy 通常在 App 中使用數據庫并處理數據都會是一個重要和嚴肅的話題.在幾個月前我寫了一篇關於如何利用 SwiftyDB 來管理 SQLite 數據庫的文章.今天,我又提起數據庫這個話題,只不過這次我會介紹另一個庫.你也許聽說過了,它就是FMDB. 這兩個庫的功能都是一樣的,都是用來與 SQLite 數據庫打交道并允許你高效地管理你的

sql server和my sql 命令(语句)的区别,sql server与mysql的比较

http://passport.baidu.com/?business&un=%5F%E5%B0%8F%E5%A7%90%5F%E4%B8%AD%E7%89%9F%5F%E6%89%BE#0 http://passport.baidu.com/?business&un=%E5%85%A8%E5%A5%97%5F%E5%AE%9A%E9%99%B6%5F%E5%B0%8F%E5%A7%90#0 http://passport.baidu.com/?business&un=%5F%E5

数据库问题6-將系統資料表對應至系統檢視

(转帖)http://technet.microsoft.com/zh-tw/library/ms187997.aspx 將系統資料表對應至系統檢視 (Transact-SQL) 這個主題顯示系統資料表和函數與系統檢視和函數之間的對應. 下表將 SQL Server 2000 中 master 資料庫的系統資料表對應到 SQL Server 2008 中對應的系統檢視或函數. 系統資料表 系統檢視或函數 檢視或函數的類型 sysaltfiles sys.master_files 目錄檢視 sys