Python を使用した MySQL データベースの移行
MySQLを使用すれば MySQLを1つのサーバーから別のサーバーに移行することができます。 このスクリプトは、あらゆるプラットフォームで利用可能です
- IBM Cloud® クラシックインフラストラクチャから IBM Cloud VPC
- オンプレミスから IBM Cloud VPC
- 他のクラウドサービスプロバイダーへの IBM Cloud VPC
前提条件
移行を開始する前に、以下の前提条件を確認してください
- IBM Cloud Object Storage バケットを設定します。
- Object Storageへの書き込みアクセス権があることを確認してください。
- ご使用のシステムからソースサーバーとターゲットサーバーへの接続が確立されていることを確認してください。
- Python3 3.0 と Pip3 がシステムにインストールされていることを確認してください。
移行概要図
データベース移行スクリプトを複製して実行する
データベース移行スクリプトを複製して実行するには、以下の手順に従います
-
GitHubをクローンするには、次のコマンドを実行します。
git clone https://github.com/IBM-Cloud/vpc-migration-tools.git -
mysqlフォルダに移動します。cd vpc-migration-tools/db-migration/mysql -
Python の前提条件となるモジュールをインストールするには、以下のコマンドを実行してください
pip3 install -U pip setuptoolspip3 install -r requirements.txtsetuptoolsPython distutilsを拡張することで Pythonのパッケージ化を容易にする。requirements.txtファイルは、スクリプトで必要とされる Pythonをインストールします。 -
データベース移行スクリプトを実行します
python3 db_migration.py
移行の詳細を記入してください
データベース移行スクリプトを実行した後、以下のパラメータの詳細を入力する必要があります
- Object Storage
- ソース・サーバー
- ソースサーバーデータベース
- ターゲット・サーバー
- ターゲットサーバーデータベース
Object Storageの詳細
Object Storageは、ソースサーバーとターゲットサーバーの集中ストレージとして機能します。 s3fs ユーティリティを使用することで、バケットはソースサーバーとターゲットサーバーの両方でファイルシステムとしてマウントされます。 ソースはデータベースのバックアップを保存するためにバケットを使用し、ターゲットはデータベースのバックアップを取得するためにバケットを使用します。これにより、移行にかかる時間を最小限に抑えることができます。
Object Storageをマウントするには、以下の手順に従います
- バケット名Object Storage を入力します。例えば、
my-db-bucket。 バケットはすでにプロビジョニングされている必要があります。 - バケットの場所Object Storageを入力します。例えば、
https://s3.dal.us.cloud-object-storage.appdomain.cloud。 詳細は 、「エンドポイントと保存場所 」を参照してください。 - IBM Cloud API キーを入力します。 詳細は IBM Cloud の作成 」を参照してください。
ソースサーバーの詳細
Object Storageをマウントした後、ソースサーバーの詳細情報を提供する必要があります
- ソースサーバーのIPアドレスまたはホスト名を入力します。 ソースサーバーは、移行が必要な MySQLです。
- ソースサーバーのログイン認証情報を入力します。 スクリプトはユーザ名とパスワードで認証する必要があります。 ユーザー権限が
rootと同等であることを確認してください。
ソースサーバーデータベースの詳細
- ソースサーバーの MySQL 接続の詳細を入力します MySQLのユーザー名は、デフォルトでは
rootです。 - MySQLで移行したい操作を実行する権限を認証する MySQL,のパスワードを入力してください。
- 移行したいデータベース名を入力します。
ターゲットサーバーの詳細
ソースサーバーとソースサーバーデータベースの詳細情報を提供した後、ターゲットサーバーの詳細情報を提供する必要があります
- ターゲットサーバーのIPアドレスまたはホスト名を入力します。 ターゲットサーバーは MySQLが移行される先です。
- ターゲットサーバーのログイン認証情報を入力します。 同様に、ソースサーバーの場合、スクリプトはユーザー名とパスワードで認証される必要があります。 ユーザー権限が
rootと同等であることを確認してください。
ターゲットサーバーのデータベースの詳細
- ターゲットサーバー MySQL 接続の詳細を入力します MySQLのユーザー名は、デフォルトでは
rootです。 - データベースを復元するための操作を実行する権限を認証する MySQL,のパスワードを入力してください。
- ソースサーバーのデータベース名を入力します。
- ターゲットデータベース名を入力します。 デフォルトでは、このスクリプトはソースデータベース名からデータベース名を取得します。 移行用のデータベース名を変更したい場合は、必要に応じて入力してください。
- データベースの移行が完了すると、「完了」というメッセージが表示されます。