皆さん 初めましてです
今回 私が今までインフラをやってきて2,3番目ぐらいに
頭を抱えた作業を行い...
これが皆様のお役にたてたらと投稿させて頂きました
掲題にもある通り
今回EC2上に構築されたMariaDBを
Aurora MySQLへ移行する作業になります( ;∀;)
対応した内容は3つ...
①通常通りmysqldump取得してAurora側へリストア
②サポートから教えて頂いたPercona XtraBackupを使用してS3からの復旧構築
②MySQLユーティリティを使用してリストア
頭の中では今まで通り
Aurora側の設定をチューニングして
mysqldump取ってリストアすれば問題なく
いけるだろうって思いつつい
いざ、①の対応へ...
おぉ、問題な、さ、そ...
3.5GBのテーブルデータが1時間半掛かってやっとリストア完了...
かかりすぎじゃ~と💦
そして60GBのテーブルデータに突入した矢先
途中でリストアが終了...
インスタンス側に原因は特になく、
何回かやっても同じだったので頭を抱え
サポートにお問い合わせ
Percona XtraBackupを使用してS3へデータ転送し
S3復旧からインスタンス作成すれば高速で構築出来ると!
めちゃくちゃ簡単な方法が
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html
いざ、設定してS3から復旧を実行
問題なくインスタンス作成に取り掛かり
30分後... ん?エラーが出てる💦
内容をドーン...
====
Database instance put into incompatible-restore. Cannot restore from the backup in your Amazon S3 bucket because the source database engine brand mariadb is not supported for migration to Aurora MySQL.
====
え... S3から復旧はMariaDBはサポート外なの!!!
嘘やん💦
サポートに再度お問い合わせ
別方法を頂いたので③に記載されている
MySQLユーティリティを使用してのリストア
お願いだから、これで成功してと
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.NonRDSRepl.html
〇作業内容を共有
my.cnfに以下を設定
[mysqld]
log-bin=mysql-bin
server-id=1
[保存]
mysqlを再起動
mysqldump取得
mysqldump
--databases xxxxxxxx
--master-data=2
--single-transaction
--order-by-primary
-r backup.sql
-u xxxxxxx
-p xxxxxx
Database,ユーザ名,パスワードは対応する方々の
環境情報で取得して下さい。
対象ディレクトリに移動して取得したsqlが格納されてるか確認
dumpの容量が極端に少なくなってますが正常にdump取得されてます。
mysqlに接続
リストア対応
バックアップとったディレクトリまで移動しmysqlへ接続
cd /xxx/xxx/xxx/
mysql -A -u root -p -h Auroraのエンドポイント
MySQL [(none)]> source backup.sql;
↓
Query OK, 843 rows affected (0.05 sec)
Records: 843 Duplicates: 0 Warnings: 0
こんなんが流れ始めたらリストア中なので
終わるのをしばしお待ちをで。
MySQL [対象DB]>
が返ってきたらリストア終わり
リストア中
MySQL [(none)]> show processlist;
か
MySQL [(none)]> use 対象DB;
MySQL [(対象DB]> show tables;
でどこまでリストア出来てるか確認出来ます。
後は正常にデータがリストアされてるか確認して問題なければ
お渡しです
86GBの容量が4時間以内でリストア終わりました♥
こちら皆様のお役にたてれたら嬉しく。
また更新ありましたら共有します