必要なオプションを使用して、MySQL データベースに対して mysqldump ユーティリティを直接実行できます。ただし、データを Cloud SQL データベースにインポートするためにエクスポートする場合は、次のフラグを指定して mysqldump ユーティリティを使用します。
--databases
エクスポートするデータベースの明示的なリストを指定します。このリストには、システム データベース(sys
、mysql
、performance_schema
、information_schema
)を含めないでください。--hex-blob
データベースにバイナリ フィールドが含まれている場合、バイナリ フィールドを正しくインポートするには、このフラグを使用する必要があります。--single-transaction
実行前にトランザクションを開始します。データベース全体をロックする代わりに、mysqldump は現在の状態でデータベースを読み取り、一貫したデータダンプを作成します。--routines
ストアド プロシージャと関数を含める。mysqldump
バージョン 8 以降を使用して 8 より前のバージョンの MySQL データベースをエクスポートする場合:--column-statistics=0
このフラグを使用すると、
Unknown table 'COLUMN_STATISTICS' in information_schema (1109)
エラーを回避するために、データベース エクスポートから COLUMN_STATISTICS テーブルが削除されます。詳細については、問題を診断するをご覧ください。
次のフラグを使用することをおすすめします。
--no-autocommit
--default-character-set=utf8mb4
--master-data
MySQL サーバーにネットワーク接続できるマシンから、次のコマンドを実行します。
mysqldump \
-h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
--databases [DBS] \
--hex-blob \
--no-autocommit \
--default-character-set=utf8mb4 \
--master-data=1 \
--single-transaction \
--routines \
| gzip \
| gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz
移行元が MySQL 用のリレーショナル データベース サービス(RDS)の場合:
master-data
プロパティはサポートされていません。- ソース データベース サーバーで GTID がサポートされている場合は、
--set-gtid-purged=on
プロパティを使用します。それ以外の場合は、このプロパティを使用しないでください。 - 手動ダンプを使用してデータを移行する場合は、GTID を有効にして移行を実行します。
このコマンドは、次の例のようになります。
mysqldump \
-h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
--databases [DBS] \
--hex-blob \
--no-autocommit \
--default-character-set=utf8mb4 \
--set-gtid-purged=on \
--single-transaction \
--routines \
| gzip \
| gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz
また、binlog をより長く保持するように RDS インスタンスを構成する必要があります。このコマンドは、次の例のようになります。
# Sets the retention period to one week.
call mysql.rds_set_configuration('binlog retention hours', 168);
[PROPERTIES_IN_BRACKETS] は、次の値で置き換えます。
特性 | 値 |
[SOURCE_ADDR] | ソース データベース サーバーの IPv4 アドレスまたはホスト名。 |
[SOURCE_PORT] | ソース データベース サーバーのポート。 |
[USERNAME] | MySQL ユーザー アカウント。 |
[DBS] | ダンプに含めるソース データベース サーバー上のデータベースのスペース区切りのリスト。SHOW DATABASES MySQL コマンドを使用してデータベースを一覧表示します。 |
[BUCKET_NAME] | ユーザーが作成し、ダンプファイルの保存に使用する Cloud Storage のバケット(replica-bucket など)。 |
[DUMP_FILENAME] | ダンプ ファイル名(.gz ファイル拡張子で終わる)(例: source-database.sql.gz )。 |