AWS新人エンジニアにおくる:RDSを5.5系から5.6系にアップグレードする方法(前半)

【AWS発表】 Amazon RDSがMySQL 5.5 から MySQL 5.6へのアップグレードをサポート

 のように5.5経から5.6系へのアップグレードが簡単にできるようになりました。

2014年4月23日以降に作成したRDSのインスタンスであれば、ManagementConsoleからRDSの「Modify」から

「DB Engine Version」で5.6系が選択できるようになっています。

しかし、それ以前に作成したインスタンスの場合、「Modify」から選択できるのは同じ5.5.x系だけになります。

その場合はリードレプリカを使ってアップグレードをするようです。

詳しい手順は下記のURLに記載してあります。

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeInstance.html#USER_UpgradeInstance.MySQLMajorVersionUpgrade5_5To5_6

 手順1:リードレプリカの作成

Management Consoleから「Create Read Replica」を選択してリードレプリカを作成します。

(インスタンスが倍になるのでコストも倍になると思います。)

リードレプリカ作成中もマスターDBへのアクセス・書込処理は可能です。

リードレプリカ作成時にはクラッシュリカバリプロセスが実行されるので、テーブル数が多いとそれなりに時間がかかりそうです。

リードレプリカの作成が終わったら、データが同期していることを確認します。

 

手順2:リードレプリカアップグレード

Management Consoleからリードレプリカの「Modify」を選択します。

「DB Engine Version」で5.6系を選択します。

Parameter GroupはMySQLのバージョンによって動的に切り替わります。

エラーログに

InnoDB: Error: Table "mysql"."innodb_table_stats" not found.

などが出ましたがとりあえず作業が終わるまで待ってみます。

ログも何も出ないので、うまく行って処理が進んでいるのか、エラーで止まっているのかよくわかりませんが待ってみます。

1時間以上待ってようやく完了しました。

手順3:リードレプリカ同期確認

リードレプリカを5.6系にして中身のデータが5.5のRDSの最新に同期していることを確認します。

mysql> SHOW SLAVE STATUS\G

Seconds_Behind_Masterが「0」になっていれば最新です。