マルチAZのmysqldumpでWarningが出た

マルチAZのRDS(MySQL)は、バイナリログ(binlog)レプリケーションでGTIDs(Global Transaction ID)を使っています。そして、マルチAZ状態でmysqldumpコマンドを使うと次の様に怒られる。

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.

DeepL翻訳すると・・・、

警告。GTIDを持つサーバーからの部分的なダンプには、デフォルトではすべてのトランザクションのGTIDが含まれ、データベースの抑制された部分を変更したものも含まれます。GTIDを復元したくない場合は、-set-gtid-purgeed=OFFを渡してください。完全なダンプを作成するには、–all-databases –triggers –routines –events を渡します。

とのことです。レプリケーションで複数のデータベースだから、単体DBの時と勝手が違う!という事ですね。

この場合、以下のダンプコマンドではなく

mysqldump -u ユーザー名 -p -h ホスト名 DB名> ファイル名.sql

GTIDをリストアしなくていいのであれば、次のダンプコマンドを使う

mysqldump -u ユーザー名 -p -h ホスト名 --set-gtid-purged=OFF DB名 > ファイル名.sql

完全なダンプを行うには

mysqldump -u ユーザー名 -p --all-databases DB名 > ファイル名.sql

となります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください