使用匯入和匯出功能,移轉適用於 MySQL 的 Azure 資料庫 - 彈性伺服器資料庫

適用於:適用於 MySQL 的 Azure 資料庫 - 單一伺服器適用於 MySQL 的 Azure 資料庫 - 彈性伺服器

重要

適用於 MySQL 的 Azure 資料庫單一伺服器已位於淘汰路徑上。 強烈建議您升級至適用於 MySQL 的 Azure 資料庫彈性伺服器。 如需移轉至適用於 MySQL 的 Azure 資料庫彈性伺服器的詳細資訊,請參閱適用於 MySQL 的 Azure 資料庫單一伺服器會發生什麼事?

本文說明使用 MySQL Workbench 將資料匯入和匯出適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體的兩種常見方式。

如需詳細的完整移轉指引,請參閱移轉指南資源

如需其他移轉案例,請參閱資料庫移轉指南

必要條件

開始移轉 MySQL 資料庫前,您必須:

在適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體上建立資料庫

使用 MySQL Workbench、Toad 或 Navicat,在適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體上建立空的資料庫。 資料庫名稱可以與包含傾印資料的資料庫名稱相同,或者您可以建立名稱不同的資料庫。

若要連線,請執行下列動作:

  1. 在 Azure 入口網站中,從適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體的 [概觀] 窗格上尋找連線資訊。

    Screenshot of the Azure Database for MySQL flexible server instance connection information in the Azure portal.

  2. 將連線資訊新增至 MySQL Workbench。

    Screenshot of the MySQL Workbench connection string.

判斷何時要使用匯入和匯出技術

提示

如果您想要傾印和還原整個資料庫,請改用傾印和還原方法。

在下列案例中,使用 MySQL 工具對您的 MySQL 資料庫匯入和匯出資料庫。 如需其他工具,請移至 MySQL 至 Azure 資料庫移轉指南的 [移轉方法] 區段 (第 22 頁)。

  • 當您需要選擇性地選擇從現有 MySQL 資料庫匯入至適用於 MySQL 的 Azure 資料庫彈性伺服器資料庫的一些資料表時,最好使用匯入和匯出技術。 如此一來,您可以從移轉省略任何不必要的資料表,以節省時間和資源。 例如,搭配使用 --include-tables--exclude-tables 參數與 mysqlpump 以及搭配使用 --tables 參數與 mysqldump
  • 移動資料表以外的資料庫物件時,明確建立這些物件。 包含限制式 (主索引鍵、外部索引鍵和索引)、檢視、函式、程序、觸發程序和其他您想要移轉的資料庫物件。
  • 當您從 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>。 如果您使用 <username@servername> 進行連線,連線將會失敗。

從物件瀏覽器捷徑功能表執行資料表資料匯出與匯入精靈

Screenshot of the MySQL Workbench export and import wizard commands on the object browser's context menu.

資料表資料精靈支援使用 CSV 和 JSON 檔案的匯入和匯出作業。 精靈包含數個設定選項,例如分隔符號、資料行選取和編碼選取項目。 您可以對本機或遠端連線的 MySQL 伺服器執行每個精靈。 匯入動作包括資料表、資料行和類型對應。

若要從物件瀏覽器捷徑功能表存取這些精靈,請以滑鼠右鍵按一下資料表,然後選取 [資料表資料匯出精靈] 或 [資料表資料匯入精靈]

資料表資料匯出精靈

若要將資料表匯出至 CSV 檔案:

  1. 以滑鼠右鍵按一下要匯出之資料庫的資料表。
  2. 選取 [資料表資料匯出精靈]。 選取要匯出的資料行、資料列位移 (如果有的話) 和計數 (如果有的話)。
  3. 在 [選取要匯出的資料] 窗格中,選取 [下一步]。 選取檔案路徑、CSV 或 JSON 檔案類型。 同時選取行分隔符號、字串封入方法和欄位分隔符號。
  4. 在 [選取輸出檔案位置] 窗格上,選取 [下一步]
  5. 在 [匯出資料] 窗格中,選取 [下一步]

資料表資料匯入精靈

若要從 CSV 檔案匯入資料表:

  1. 以滑鼠右鍵按一下要匯入之資料庫的資料表。
  2. 尋找並選取要匯入的 CSV 檔案,然後選取 [下一步]
  3. 選取目的地資料表 (新的或現有的)、選取或取消選取 [匯入前截斷資料表] 核取方塊,然後選取 [下一步]
  4. 選取編碼方式和要匯入的資料行,然後選取 [下一步]
  5. 在 [匯入資料] 窗格中,選取 [下一步]。 精靈會匯入資料。

從導覽器窗格執行 SQL 資料匯出和匯入精靈

使用精靈,匯出或匯入從 MySQL Workbench 或 mysqldump 命令產生的 SQL。 您可以從 [導覽器] 窗格存取精靈,也可以從主功能表選取 [伺服器]

匯出資料

Screenshot of using the Navigator pane to display the Data Export pane in MySQL Workbench.

您可以使用 [資料匯出] 窗格,匯出您的 MySQL 資料。

  1. 在 MySQL Workbench 的 [導覽器] 窗格中,選取 [資料匯出]

  2. 在 [資料匯出] 窗格中,選取您想要匯出的每個結構描述。

    您可以針對每個結構描述選取要匯出的特定結構描述物件或資料表。 設定選項包含匯出到專案資料夾或自封式 SQL 檔案、傾印儲存的常式和事件,或略過資料表資料。

    或者,在 SQL 編輯器中,使用 [匯出結果集],將特定的結果集匯出為另一種格式,例如 CSV、JSON、HTML 和 XML。

  3. 選取要匯出的資料庫物件,並設定相關選項。

  4. 選取 [重新整理] 以載入目前的物件。

  5. 您可以選擇性地選取右上方的 [進階選項],以精簡匯出作業。 例如,新增資料表鎖定、使用 replace 而不是 insert 陳述式,以及使用反引號字元將識別項括起來。

  6. 選取 [開始匯出] 開始匯出程序。

匯入資料

Screenshot of using the Navigator pane to display the Data Import pane in MySQL Workbench.

您可以使用 [資料匯入] 窗格,匯入或還原來自資料匯出作業或是來自 mysqldump 命令的已匯出資料。

  1. 在 MySQL Workbench 的 [導覽器] 窗格中,選取 [資料匯入/還原]
  2. 選取專案資料夾或自封式 SQL 檔案、選取將匯入的結構描述,或選取 [新增] 按鈕來定義新的結構描述。
  3. 選取 [開始匯入] 開始匯入程序。

下一步