2
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 5 years have passed since last update.

Amazon Web ServicesAdvent Calendar 2016

Day 19

MySQL5.5のRDSをMySQL5.7にアップグレードしてみた

Last updated at Posted at 2016-12-26

#■これをやった経緯
AWS RDSがMySQL5.7に対応したってこと(2016/02/22公開なので、遅いですが・・・w)なので、5.6から5.7にアップグレードする記事はありますが、5.5からのものがなかったので、試してみました

#■前提条件

  • Masterのみの構成を試します。
  • マネジメントコンソール以外は使いません。
  • 5.5で動作していたアプリケーションは問題なく動くのかをざっくりとだけチェックします。
  • 本番反映とか怖いことはしませんw
  • 新、旧ののバージョンは下記です。
  • リージョンはTokyoを使います。
比較項目
バージョン 5.5.46 5.7.16
インスタンスタイプ db.m1.xlarge db.m4.xlarge

#■はじまりはじまりー
##Stage環境で試す

  1. まずは、自分のアプリケーションのStage環境作成
    • 本番でRDSを利用しているので、Stageでも使ってた
  2. AWSマネジメントコンソールにて、「変更(Modify)」より、「DB エンジンのバージョン」を「5.6.34(※2016/12/26現在の5.6最新)」に変更 ※さすがに、一気にアップグレードってわけにはいかないみたいw
    • 対象のRDSインスタンスのステータスが「アップグレード」・・・となるので、数時間待つ・・・
  3. ステータスが「利用可能」になったので、再度「変更(Modify)」より、「DB エンジンのバージョン」を「5.7.16(※2016/12/26現在の5.7最新)」に変更を試す
    • しかし、利用していたRDSのインスタンスタイプが「db.m1.xlarge」だったために、最後の変更ボタンを押す前にエラーが出た・・・
    • 内容は、そのインスタンスタイプでは、アップグレードしようとしている「DB エンジンのバージョン」がサポートしていない的なやつでした。
  4. とりあえず、「db.m1.xlarge」から同等のスペックを持つ「db.m4.xlarge」に変更し、「DB エンジンのバージョン」を「5.7.16(※2016/12/26現在の5.7最新)」に変更を試す
    • 変更ボタン押下までは問題なくできた!そして、ステータスが「アップグレード」・・・となるので、数時間待つ・・・
  5. ステータスが「利用可能」となったので、アプリケーション画面へアクセスしたら、意外と普通に表示w
    • しかし、5.7へのアップグレードのときのほうが時間かかりました・・・2時間以上はかかったかも。 :clock1:
  6. 一応、アップグレードログを見とこうと思って見たら、エラーが結構大量に出てる・・・
    • 「mysqlUpgrade」6.49MB・・・ :sob::sob::sob::sob::sob:
      • 内容はmysql_upgrade時のログのようでした。下記一部抜粋。これが、アプリで作成したDBにもずらずら出てたので、がーんってなった :weary: んですが、最後には、ちゃんとRepairing tablesしてて、感動:sunny:
  7. 他にもエラーログ出てないか確認したところ、mysql-error-running.log.X みたいなログが出てたので、一応ダウンロードして確認。こちらも一部抜粋 :sob::sob::sob::sob:
    • ShutdownとStartを繰り返し行った様子と、Shutting down plugin 'XXXXXXX' みたいなログが出ていただけみたいで、問題なさそうでした :exclamation:
mysqlUpgrade.log
XXXX-XX-XX XX:XX:33 Checking server version.
XXXX-XX-XX XX:XX:33 Running queries to upgrade MySQL server.
XXXX-XX-XX XX:XX:36 Checking system database.
XXXX-XX-XX XX:XX:36 mysql.columns_priv                                 OK
XXXX-XX-XX XX:XX:36 mysql.db                                           OK
XXXX-XX-XX XX:XX:36 mysql.engine_cost                                  OK
XXXX-XX-XX XX:XX:36 mysql.event                                        OK
XXXX-XX-XX XX:XX:36 mysql.func                                         OK
XXXX-XX-XX XX:XX:36 mysql.general_log                                  OK
XXXX-XX-XX XX:XX:36 mysql.general_log_backup
XXXX-XX-XX XX:XX:36 error    : Table upgrade required. Please do "REPAIR TABLE `general_log_backup`" or dump/reload to fix it!
XXXX-XX-XX XX:XX:36 mysql.gtid_executed                                OK
XXXX-XX-XX XX:XX:36 mysql.help_category                                OK
XXXX-XX-XX XX:XX:36 mysql.help_keyword                                 OK
XXXX-XX-XX XX:XX:36 mysql.help_relation                                OK
XXXX-XX-XX XX:XX:36 mysql.help_topic                                   OK
XXXX-XX-XX XX:XX:36 mysql.host                                         OK
XXXX-XX-XX XX:XX:36 mysql.innodb_index_stats                           OK
XXXX-XX-XX XX:XX:36 mysql.innodb_table_stats                           OK
XXXX-XX-XX XX:XX:36 mysql.ndb_binlog_index                             OK
XXXX-XX-XX XX:XX:36 mysql.plugin                                       OK
XXXX-XX-XX XX:XX:36 mysql.proc
XXXX-XX-XX XX:XX:36 Warning  : Trigger mysql.proc.block_proc_u does not have CREATED attribute.
XXXX-XX-XX XX:XX:36 Warning  : Trigger mysql.proc.block_proc_d does not have CREATED attribute.
XXXX-XX-XX XX:XX:36 status   : OK
XXXX-XX-XX XX:XX:36 mysql.procs_priv                                   OK
XXXX-XX-XX XX:XX:36 mysql.proxies_priv                                 OK
XXXX-XX-XX XX:XX:36 mysql.rds_configuration                            OK
XXXX-XX-XX XX:XX:36 mysql.rds_global_status_history
XXXX-XX-XX XX:XX:36 error    : Table rebuild required. Please do "ALTER TABLE `rds_global_status_history` FORCE" or dump/reload to fix it!
XXXX-XX-XX XX:XX:36 mysql.rds_global_status_history_old
XXXX-XX-XX XX:XX:36 error    : Table rebuild required. Please do "ALTER TABLE `rds_global_status_history_old` FORCE" or dump/reload to fix it!
XXXX-XX-XX XX:XX:36 mysql.rds_heartbeat2                               OK
XXXX-XX-XX XX:XX:36 mysql.rds_history
XXXX-XX-XX XX:XX:36 error    : Table rebuild required. Please do "ALTER TABLE `rds_history` FORCE" or dump/reload to fix it!
XXXX-XX-XX XX:XX:36 mysql.rds_replication_status
XXXX-XX-XX XX:XX:36 error    : Table rebuild required. Please do "ALTER TABLE `rds_replication_status` FORCE" or dump/reload to fix it!
mysql-error-running.log.X
# こんなログが繰り返し出ていただけでした。
XXXX-XX-XX XX:XX:49 4578 [Warning] You need to use --log-bin to make --log-slave-updates work.
XXXX-XX-XX XX:XX:49 4578 [Note] Plugin 'FEDERATED' is disabled.
XXXX-XX-XX XX:XX:49 4578 [Note] InnoDB: Using atomics to ref count buffer pool pages
XXXX-XX-XX XX:XX:49 4578 [Note] InnoDB: The InnoDB memory heap is disabled
XXXX-XX-XX XX:XX:49 4578 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
XXXX-XX-XX XX:XX:49 4578 [Note] InnoDB: Memory barrier is not used
XXXX-XX-XX XX:XX:49 4578 [Note] InnoDB: Compressed tables use zlib X.X.X
XXXX-XX-XX XX:XX:49 4578 [Note] InnoDB: Using Linux native AIO
XXXX-XX-XX XX:XX:49 4578 [Note] InnoDB: Using CPU crc32 instructions
XXXX-XX-XX XX:XX:49 4578 [Note] InnoDB: Initializing buffer pool, size = XX.XXG
XXXX-XX-XX XX:XX:51 4578 [Note] InnoDB: Completed initialization of buffer pool
XXXX-XX-XX XX:XX:51 4578 [Note] InnoDB: Highest supported file format is Barracuda.
XXXX-XX-XX XX:XX:53 4578 [Note] InnoDB: 128 rollback segment(s) are active.
XXXX-XX-XX XX:XX:53 4578 [Note] InnoDB: Waiting for purge to start
XXXX-XX-XX XX:XX:53 4578 [Note] InnoDB: 5.6.34 started; log sequence number XXXXXXXXXX
XXXX-XX-XX XX:XX:53 4578 [Note] Server hostname (bind-address): '*'; port: 3306
XXXX-XX-XX XX:XX:53 4578 [Note] IPv6 is available.
XXXX-XX-XX XX:XX:53 4578 [Note]   - '::' resolves to '::';
XXXX-XX-XX XX:XX:53 4578 [Note] Server socket created on IP: '::'.
XXXX-XX-XX XX:XX:53 4578 [Note] Event Scheduler: Loaded 0 events
XXXX-XX-XX XX:XX:53 4578 [Note] /rdsdbbin/mysql/bin/mysqld: ready for connections.
Version: '5.6.34'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)

# こんなログが繰り返し出ていただけでした。
XXXX-XX-XX XX:XX:45 4344 [Note] Binlog end
XXXX-XX-XX XX:XX:45 4344 [Note] Shutting down plugin 'partition'
XXXX-XX-XX XX:XX:45 4344 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'
XXXX-XX-XX XX:XX:45 4344 [Note] Shutting down plugin 'ARCHIVE'

#■まとめ
ちょろっと動かしたけど、意外と動きそう???今後はアプリケーション側で使えないところがないか、検証をやっていきまーす! :sunny:

2
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
2
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?