Python を使用した MySQL データベースの移行

MySQLを使用すれば MySQLを1つのサーバーから別のサーバーに移行することができます。 このスクリプトは、あらゆるプラットフォームで利用可能です

  • IBM Cloud® クラシックインフラストラクチャから IBM Cloud VPC
  • オンプレミスから IBM Cloud VPC
  • 他のクラウドサービスプロバイダーへの IBM Cloud VPC

前提条件

移行を開始する前に、以下の前提条件を確認してください

  1. IBM Cloud Object Storage バケットを設定します。
  2. Object Storageへの書き込みアクセス権があることを確認してください。
  3. ご使用のシステムからソースサーバーとターゲットサーバーへの接続が確立されていることを確認してください。
  4. Python3 3.0 と Pip3 がシステムにインストールされていることを確認してください。

移行概要図

移行概要図
移行概要図

データベース移行スクリプトを複製して実行する

データベース移行スクリプトを複製して実行するには、以下の手順に従います

  1. GitHubをクローンするには、次のコマンドを実行します。

    git clone https://github.com/IBM-Cloud/vpc-migration-tools.git
    
  2. mysql フォルダに移動します。

    cd vpc-migration-tools/db-migration/mysql
    
  3. Python の前提条件となるモジュールをインストールするには、以下のコマンドを実行してください

    pip3 install -U pip setuptools
    
    pip3 install -r requirements.txt
    

    setuptools Python distutilsを拡張することで Pythonのパッケージ化を容易にする。 requirements.txt ファイルは、スクリプトで必要とされる Pythonをインストールします。

  4. データベース移行スクリプトを実行します

    python3 db_migration.py
    

移行の詳細を記入してください

データベース移行スクリプトを実行した後、以下のパラメータの詳細を入力する必要があります

  • Object Storage
  • ソース・サーバー
  • ソースサーバーデータベース
  • ターゲット・サーバー
  • ターゲットサーバーデータベース

Object Storageの詳細

Object Storageは、ソースサーバーとターゲットサーバーの集中ストレージとして機能します。 s3fs ユーティリティを使用することで、バケットはソースサーバーとターゲットサーバーの両方でファイルシステムとしてマウントされます。 ソースはデータベースのバックアップを保存するためにバケットを使用し、ターゲットはデータベースのバックアップを取得するためにバケットを使用します。これにより、移行にかかる時間を最小限に抑えることができます。

Object Storageをマウントするには、以下の手順に従います

  1. バケット名Object Storage を入力します。例えば、 my-db-bucket。 バケットはすでにプロビジョニングされている必要があります。
  2. バケットの場所Object Storageを入力します。例えば、 https://s3.dal.us.cloud-object-storage.appdomain.cloud。 詳細は 、「エンドポイントと保存場所 」を参照してください。
  3. IBM Cloud API キーを入力します。 詳細は IBM Cloud の作成 」を参照してください。

ソースサーバーの詳細

Object Storageをマウントした後、ソースサーバーの詳細情報を提供する必要があります

  1. ソースサーバーのIPアドレスまたはホスト名を入力します。 ソースサーバーは、移行が必要な MySQLです。
  2. ソースサーバーのログイン認証情報を入力します。 スクリプトはユーザ名とパスワードで認証する必要があります。 ユーザー権限が root と同等であることを確認してください。

ソースサーバーデータベースの詳細

  1. ソースサーバーの MySQL 接続の詳細を入力します MySQLのユーザー名は、デフォルトでは root です。
  2. MySQLで移行したい操作を実行する権限を認証する MySQL,のパスワードを入力してください。
  3. 移行したいデータベース名を入力します。

ターゲットサーバーの詳細

ソースサーバーとソースサーバーデータベースの詳細情報を提供した後、ターゲットサーバーの詳細情報を提供する必要があります

  1. ターゲットサーバーのIPアドレスまたはホスト名を入力します。 ターゲットサーバーは MySQLが移行される先です。
  2. ターゲットサーバーのログイン認証情報を入力します。 同様に、ソースサーバーの場合、スクリプトはユーザー名とパスワードで認証される必要があります。 ユーザー権限が root と同等であることを確認してください。

ターゲットサーバーのデータベースの詳細

  1. ターゲットサーバー MySQL 接続の詳細を入力します MySQLのユーザー名は、デフォルトでは root です。
  2. データベースを復元するための操作を実行する権限を認証する MySQL,のパスワードを入力してください。
  3. ソースサーバーのデータベース名を入力します。
  4. ターゲットデータベース名を入力します。 デフォルトでは、このスクリプトはソースデータベース名からデータベース名を取得します。 移行用のデータベース名を変更したい場合は、必要に応じて入力してください。
  5. データベースの移行が完了すると、「完了」というメッセージが表示されます。