1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MariaDBからAurora MySQLへのデータリストアに頭を抱える

Last updated at Posted at 2020-12-10

皆さん 初めましてです:wave:
今回 私が今までインフラをやってきて2,3番目ぐらいに
頭を抱えた作業を行い...
これが皆様のお役にたてたらと投稿させて頂きました:clap:

掲題にもある通り
今回EC2上に構築されたMariaDBを
Aurora MySQLへ移行する作業になります( ;∀;)
対応した内容は3つ...

①通常通りmysqldump取得してAurora側へリストア
②サポートから教えて頂いたPercona XtraBackupを使用してS3からの復旧構築
②MySQLユーティリティを使用してリストア

頭の中では今まで通り
Aurora側の設定をチューニングして
mysqldump取ってリストアすれば問題なく
いけるだろうって思いつつい
いざ、①の対応へ...
おぉ、問題な、さ、そ...
3.5GBのテーブルデータが1時間半掛かってやっとリストア完了...
かかりすぎじゃ~と💦
そして60GBのテーブルデータに突入した矢先
途中でリストアが終了...
インスタンス側に原因は特になく、
何回かやっても同じだったので頭を抱え
サポートにお問い合わせ:joy:

Percona XtraBackupを使用してS3へデータ転送し
S3復旧からインスタンス作成すれば高速で構築出来ると!
めちゃくちゃ簡単な方法が:innocent:
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ユーティリティを使用してのリストア
お願いだから、これで成功してと:persevere:
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]>
が返ってきたらリストア終わり:open_hands:

リストア中

MySQL [(none)]> show processlist;

MySQL [(none)]> use 対象DB;
MySQL [(対象DB]> show tables;
でどこまでリストア出来てるか確認出来ます。

後は正常にデータがリストアされてるか確認して問題なければ
お渡しです:vulcan:
86GBの容量が4時間以内でリストア終わりました♥

こちら皆様のお役にたてれたら嬉しく。
また更新ありましたら共有します:innocent:

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?