移轉您的適用於 MySQL 的 Azure 資料庫 - 彈性伺服器資料庫,方法是使用匯入和匯出
適用于: 適用於 MySQL 的 Azure 資料庫 - 單一伺服器 適用於 MySQL 的 Azure 資料庫 - 彈性伺服器
重要
適用於 MySQL 的 Azure 資料庫單一伺服器位於淘汰路徑上。 強烈建議您升級至適用於 MySQL 的 Azure 資料庫彈性伺服器。 如需移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器的詳細資訊,請參閱 適用於 MySQL 的 Azure 資料庫單一伺服器會發生什麼事?
本文說明使用 MySQL Workbench 將資料匯入和匯出至適用於 MySQL 的 Azure 資料庫彈性伺服器實例的兩種常見方法。
如需詳細且完整的移轉指引,請參閱 移轉指南資源 。
如需其他移轉案例,請參閱 資料庫移轉指南 。
必要條件
開始移轉 MySQL 資料庫之前,您需要:
- 使用 Azure 入口網站 建立 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例。
- 下載並安裝 MySQL Workbench 或其他用於匯入和匯出的協力廠商 MySQL 工具。
在適用於 MySQL 的 Azure 資料庫彈性伺服器實例上建立資料庫
使用 MySQL Workbench、Toad 或 Navicat,在適用於 MySQL 的 Azure 資料庫彈性伺服器實例上建立空白資料庫。 資料庫的名稱可以與包含傾印資料的資料庫相同,或者您可以建立名稱不同的資料庫。
若要連線,請執行下列動作:
在Azure 入口網站中,在適用於 MySQL 的 Azure 資料庫彈性伺服器實例的 [概觀] 窗格中尋找連線資訊 。
將連線資訊新增至 MySQL Workbench。
判斷何時使用匯入和匯出技術
提示
如果您想要傾印和還原整個資料庫的案例,請改用 傾印和還原 方法。
在下列案例中,使用 MySQL 工具將資料庫匯入和匯出至 MySQL 資料庫。 如需其他工具,請移至 MySQL 至 Azure 資料庫移轉指南 的 一節(第 22 頁)。
- 當您需要選擇性地選擇幾個資料表,以從現有的 MySQL 資料庫匯入至適用於 MySQL 的 Azure 資料庫彈性伺服器資料庫時,最好使用匯入和匯出技術。 如此一來,您可以從移轉省略任何不需要的資料表,以節省時間和資源。 例如,使用
--include-tables
或 參數搭配 mysqlpump ,並使用--tables
mysqldump 參數。--exclude-tables
- 當您移動資料表以外的資料庫物件時,請明確建立這些物件。 包含條件約束(主鍵、外鍵和索引)、檢視、函式、程式、觸發程式和您想要移轉的任何其他資料庫物件。
- 當您從 MySQL 資料庫以外的外部資料源移轉資料時,請建立一般檔案,並使用 mysqlimport 加以匯入。
重要
適用於 MySQL 的 Azure 資料庫單一伺服器和適用於 MySQL 的 Azure 資料庫彈性伺服器僅支援 InnoDB 儲存引擎。 當您將資料載入適用於 MySQL 的 Azure 資料庫彈性伺服器實例時,請確定資料庫中的所有資料表都會使用 InnoDB 儲存引擎。
如果您的源資料庫使用另一個儲存引擎,請在移轉資料庫之前,先轉換為 InnoDB 引擎。 例如,如果您有使用 MyISAM 引擎的 WordPress 或 Web 應用程式,請先將資料移轉至 InnoDB 資料表來轉換資料表。 使用 子句 ENGINE=INNODB
來設定引擎來建立資料表,然後在移轉之前將資料傳輸到相容的資料表。
INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
匯入和匯出的效能建議
為了獲得最佳的資料匯入和匯出效能,建議您執行下列動作:
- 在您載入資料之前,請先建立叢集索引和主鍵。 依主鍵順序載入資料。
- 延遲建立次要索引,直到載入資料之後。
- 在載入資料之前,請先停用外鍵條件約束。 停用外鍵檢查可提供顯著的效能提升。 啟用條件約束,並在載入之後驗證資料,以確保參考完整性。
- 平行載入資料。 請避免太多平行處理原則,導致您達到資源限制,並使用Azure 入口網站中可用的計量來監視資源。
- 適當時,請使用資料分割資料表。
使用 MySQL Workbench 匯入和匯出資料
在 MySQL Workbench 中匯出和匯入資料的方式有兩種:從物件瀏覽器操作功能表或從 [導覽器] 窗格匯出和匯入資料。 每個方法都有不同的用途。
注意
如果您要在 MySQL Workbench 上將連線新增至適用於 MySQL 的 Azure 資料庫單一伺服器或適用於 MySQL 的 Azure 資料庫彈性伺服器,請執行下列動作:
- 針對適用於 MySQL 的 Azure 資料庫單一伺服器,請確定使用者名稱的格式 為 username@servername > 。 <
- 若為適用於 MySQL 的 Azure 資料庫彈性伺服器,請只使用 使用者名稱 > 。 < 如果您使用 < username@servername > 連線,連線將會失敗。
從物件瀏覽器操作功能表執行資料表資料匯出和匯入精靈
資料表資料精靈支援使用 CSV 和 JSON 檔案匯入和匯出作業。 精靈包含數個組態選項,例如分隔符號、資料行選取和編碼選取。 您可以針對本機或遠端連線的 MySQL 伺服器執行每個精靈。 匯入動作包括資料表、資料行和類型對應。
若要從物件瀏覽器操作功能表存取這些精靈,請以滑鼠右鍵按一下資料表,然後選取 [資料表資料匯出精靈] 或 [ 資料表資料匯入精靈 ]。
資料表資料匯出精靈
若要將資料表匯出至 CSV 檔案:
- 以滑鼠右鍵按一下要匯出之資料庫的資料表。
- 選取 [ 資料表資料匯出精靈 ]。 選取要匯出的資料行、資料列位移(如果有的話),以及計數(如果有的話)。
- 在 [ 選取匯出 的資料] 窗格上,選取 [ 下一步 ]。 選取檔案路徑、CSV 或 JSON 檔案類型。 同時選取行分隔符號、封入字串的方法,以及欄位分隔符號。
- 在 [ 選取輸出檔案位置 ] 窗格上,選取 [ 下一步 ]。
- 在 [ 匯出資料 ] 窗格中,選取 [ 下一步 ]。
資料表資料匯入精靈
若要從 CSV 檔案匯入資料表:
- 以滑鼠右鍵按一下要匯入之資料庫的資料表。
- 尋找並選取要匯入的 CSV 檔案,然後選取 [ 下一步 ]。
- 選取目的地資料表 (新增或現有),選取或清除 [匯 入前截斷資料表] 核取方塊,然後選取 [ 下一步 ]。
- 選取要匯入的編碼和資料行,然後選取 [ 下一步 ]。
- 在 [匯 入資料] 窗格中,選取 [ 下一步 ]。 精靈會匯入資料。
從 [導覽器] 窗格執行 SQL 資料匯出和匯入精靈
使用精靈匯出或匯入從 MySQL Workbench 或 mysqldump 命令產生的 SQL 資料。 您可以從 [導覽器] 窗格存取精靈 ,也可以從主功能表中選取 [伺服器 ]。
匯出資料
您可以使用 [ 資料匯出 ] 窗格來匯出 MySQL 資料。
在 MySQL Workbench 的 [導覽器 ] 窗格中,選取 [資料匯出 ]。
在 [ 資料匯出 ] 窗格中,選取您想要匯出的每個架構。
針對每個架構,您可以選取要匯出的特定架構物件或資料表。 組態選項包括匯出至專案資料夾或獨立的 SQL 檔案、傾印預存常式和事件,或略過資料表資料。
或者,使用 [匯出結果集 ] 將 SQL 編輯器中的特定結果集匯出為另一種格式,例如 CSV、JSON、HTML 和 XML。
選取要匯出的資料庫物件,並設定相關的選項。
選取 [ 重新整理 ] 以載入目前的物件。
您可以選擇性地選取 右上方的 [進階選項 ],以精簡匯出作業。 例如,新增資料表鎖定、使用
replace
而非insert
語句,以及具有反引號字元的引號識別碼。選取 [ 開始匯出 ] 以開始匯出程式。
匯入資料
您可以使用 [ 資料匯 入] 窗格,從資料匯出工作或 mysqldump 命令匯入或還原匯出的資料。
- 在 MySQL Workbench 的 [ 導覽器 ] 窗格中,選取 [資料匯入/還原 ]。
- 選取專案資料夾或獨立 SQL 檔案、選取要匯入的架構,或選取 [新增 ] 按鈕來定義新的架構。
- 選取 [ 開始匯 入] 以開始匯入程式。