単体で動作させている RDS だと、以前書いたような以下のようなお作法で一貫性のある SQL ダンプが取得できる。
これをこのままマルチ AZ な RDS 環境で実行すると以下のエラーになる。
mysqldump: Couldn't execute 'FLUSH TABLES WITH READ LOCK': Access denied for user 'example'@'%' (using password: YES) (1045)
--single-transaction
でロックしようとしてエラーが出るので、このオプションを外して以下のようにすれば、(一応) mysqldump が通るようになる。
mysqldump -u ${ユーザ名} -p -h ${エンドポイント} --quick --skip-triggers --set-gtid-purged=OFF ${DB名} > ${ファイル名}
ファイル名は最近は以下のようにしている。 便利。
`date "+%Y%m%d%H%M%S"`-データベース名.sql
ちなみに
このエラーメッセージに対して AWS 様はこのようにおっしゃっている。
なんの役にもたたねえ、ぶっ○すぞ。 という強い気持ちが溢れてくる。