インポートとエクスポートを使用して Azure Database for MySQL - フレキシブル サーバー データベースを移行する

適用対象: Azure Database for MySQL - 単一サーバー Azure Database for MySQL - フレキシブル サーバー

重要

Azure Database for MySQL の単一サーバーは提供終了パスにあります。 Azure Database for MySQL フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for MySQL フレキシブル サーバーへの移行の詳細については、「Azure Database for MySQL 単一サーバーの動作」を参照してください

この記事では、MySQL Workbench を使用して Azure Database for MySQL フレキシブル サーバー インスタンスにデータをインポートおよびエクスポートする 2 つの一般的な方法について説明します。

移行についての詳細かつ包括的なガイダンスについては、移行ガイド リソースを参照してください。

その他の移行シナリオについては、データベース移行ガイドを参照してください。

前提条件

MySQL データベースの移行を開始する前に、次のことを行う必要があります。

Azure Database for MySQL フレキシブル サーバー インスタンスにデータベースを作成する

MySQL Workbench、Toad、または Navicat を使用して、Azure Database for MySQL フレキシブル サーバー インスタンスに空のデータベースを作成します。 データベースは、ダンプされたデータが含まれるデータベースと同じ名前にすることも、別の名前でデータベースを作成することもできます。

接続するには、次のようにします。

  1. Azure portal で、Azure Database for MySQL フレキシブル サーバー インスタンスの [概要] ウィンドウで接続情報を探します。

    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 Database への移行ガイドの「移行方法」セクション (22 ページ) に移動してください。

  • 既存の MySQL データベースから Azure Database for MySQL フレキシブル サーバー データベースにインポートするためにいくつかのテーブルを選択する必要がある場合は、インポートとエクスポートの手法を使用することをお勧めします。 これにより、不要なテーブルを移行から除外して、時間とリソースを節約できます。 たとえば、mysqlpump では --include-tables または --exclude-tables スイッチを、mysqldump では --tables スイッチを使用します。
  • テーブル以外のデータベース オブジェクトを移行する場合は、それらのオブジェクトを明示的に作成します。 制約 (主キー、外部キー、インデックス)、ビュー、関数、プロシージャ、トリガーなど、移行するデータベース オブジェクトを含めます。
  • MySQL データベース以外の外部データ ソースからデータを移行する場合は、フラット ファイルを作成し、mysqlimport を使用してそれらのファイルをインポートします。

重要

Azure Database for MySQL 単一サーバーと Azure Database for MySQL フレキシブル サーバーの両方で、InnoDB ストレージ エンジンのみがサポートされます。 Azure Database for MySQL フレキシブル サーバー インスタンスにデータを読み込むときに、データベース内のすべてのテーブルで InnoDB ストレージ エンジンが使用されていることを確認します。

ソース データベースで別のストレージ エンジンが使用されている場合は、データベースを移行する前に InnoDB エンジンに変換します。 たとえば、MyISAM エンジンを使用する WordPress または Web アプリがある場合は、まず、データを InnoDB テーブルに移行してテーブルを変換します。 テーブルを作成するときに、ENGINE=INNODB 句を使用してエンジンを設定し、移行前にデータを互換性のあるテーブルに転送します。

INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns

インポートおよびエクスポートのパフォーマンスに関する推奨事項

データのインポートとエクスポートで最適なパフォーマンスを得るために、次のようにすることをお勧めします。

  • データを読み込む前に、クラスター化インデックスと主キーを作成します。 主キーの順序でデータを読み込みます。
  • データの読み込みが完了するまでセカンダリ インデックスの作成を遅らせます。
  • データを読み込む前に外部キー制約を無効にします。 外部キーのチェックを無効にすると、パフォーマンスが大幅に向上します。 読み込み後に制約を有効にし、データを検証して参照整合性を確認します。
  • データを並列で読み込みます。 リソースの上限に達するような過剰な並列処理を避け、Azure Portal で使用可能なメトリックを使用してリソースを監視します。
  • パーティション テーブルを適宜使用します。

MySQL Workbench を使用してデータをインポートおよびエクスポートする

MySQL Workbench でデータをエクスポートおよびインポートする方法には、オブジェクト ブラウザーのコンテキスト メニューからと [ナビゲーター] ペインからの 2 つがあります。 各方法の目的は異なります。

Note

MySQL Workbench 上の Azure Database for MySQL 単一サーバーまたは Azure Database for MySQL フレキシブル サーバーへの接続を追加する場合は、次の操作を行います。

  • Azure Database for MySQL 単一サーバーの場合は、ユーザー名がusername@servername>形式<であることを確認します。
  • Azure Database for MySQL フレキシブル サーバーの場合は、ユーザー名のみを使用 <します><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. [Table Data Export Wizard (テーブル データのエクスポート ウィザード)] を選択します。 エクスポートする列、行のオフセット (該当する場合)、数 (該当する場合) を選択します。
  3. [エクスポートするデータの選択] ペインで、 [次へ] を選択します。 ファイル パスとファイルの種類 (CSV または JSON) を選択します。 また、行区切り記号、文字列を囲む方法、フィールド区切り記号も選択します。
  4. [Select output file location](出力ファイルの場所の選択) ペインで、 [次へ] を選択します。
  5. [データのエクスポート] ペインで、 [次へ] を選択します。

テーブル データのインポート ウィザード

CSV からテーブルをインポートするには、次のようにします。

  1. インポートするデータベースのテーブルを右クリックします。
  2. インポートする CSV ファイルを見つけてそれを選び、 [次へ] を選択します。
  3. インポート先テーブル (新規または既存) を選び、 [Truncate table before import](インポート前にテーブルの切り詰め処理を行う) チェック ボックスをオンまたはオフにしてから、 [次へ] を選択します。
  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 ファイルへのエクスポート、格納されているルーチンとイベントのダンプ、テーブル データのスキップなどがあります。

    また、 [Export a Result Set](結果セットのエクスポート) を使用して、SQL エディターの特定の結果セットを、CSV、JSON、HTML、XML などの別の形式にエクスポートすることもできます。

  3. エクスポートするデータベース オブジェクトを選択し、関連するオプションを構成します。

  4. [更新] を選択して、現在のオブジェクトを読み込みます。

  5. 必要に応じて、右上の [詳細オプション] を選択してエクスポート操作を調整します。 たとえば、テーブル ロックの追加、insert ではなく replace ステートメントの使用、バッククォート文字を含む識別子の引用などを行います。

  6. [エクスポートの開始] を選択して、エクスポート プロセスを開始します。

データのインポート

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

[データのインポート] ペインを使用して、データ エクスポート操作または mysqldump コマンドからエクスポートされたデータをインポートまたは復元できます。

  1. MySQL Workbench の [ナビゲーター] ペインで、[データのインポートまたは復元] を選択します。
  2. プロジェクト フォルダーまたは自己完結型 SQL ファイルを選択するか、インポート先スキーマを選ぶか、 [新規] ボタンを選択して新しいスキーマを定義します。
  3. [インポートの開始] を選択してインポート プロセスを開始します。

次のステップ