MySQL
RDS

MySQLのdefault_storage_engineについて備忘録

MySQLの移行話的なアレでdefault_storage_engineはいつからInnoDBだった?と思って調べたので備忘録を。
ここのサーバパラメータのマニュアルをみると、、
https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_default_storage_engine

何も設定しないとMyISAMだったのは5.5.4以下、何も設定しなくてもInnoDBでRDSにそのまま投げ込めるのが5.5.5以上、5.5.2以前だと名前にdefaultがつかない、ということでした。以上、だと物足りないのでもうちょっと失礼。

つまり/etc/my.cnfに
default-storage-engine=innodbと書いてない5.5.4以下はストレージエンジンがMyISAMになってる。
MyISAMになってるとクラッシュリカバリがのるかそるかでバックアップがトランザクションでとれないので共有ロックしてからとらないといけないなどがDBA的にはアレでプログラマ的にはトランザクション使わないからエラー処理が適当で大丈夫だったけどInnoDBにする場合にそこをなおさないといけないかもやAUTO INCREMENTやPRYMARY_KEYからめた挙動が違うという話が。
という様な色々を以下の2つの記事が詳しく載せてるので必要な方はぜひどうぞ。

MySQLでMyISAMからInnoDBに乗り換える際に知らないとハマる、怖い話 - Y-Ken Studio
漢(オトコ)のコンピュータ道: MyISAMからInnoDBへ切り替えるときの注意点

上記事内でSennaとある全文検索エンジンはTritonn→Groonga→Mroongaというように変化したようです。
http://mroonga.org/ja/

あと、RDS側のベストプラクティスや制限事項など。
要はストレージエンジンはInnoDBしか使えないです。
(どうしてもという場合は自前でEC2を用意して冗長構成組むほか全部自前)
Amazon RDS のベストプラクティス - Amazon Relational Database Service
Amazon RDS における MySQL の既知の問題と制限 - Amazon Relational Database Service

その他のサポートされてない機能は以下のとおり書いてありました。

  • グローバルトランザクション ID
  • トランスポータブルテーブルスペース
  • 認証用プラグイン
  • パスワード強度用プラグイン
  • レプリケーションフィルタ
  • 準同期レプリケーション

Amazon RDS での MySQL - Amazon Relational Database Service

ちなみに現在のパラメータがどうなってるかは/etc/my.cnfみるかshow global variables like 'default%storage%engine';show engines;と打つとわかるのと、各テーブルの値をみるには、show table status\Gselect table_schema, table_name, engine from information_schema.tables where table_schema not in('sys','performance_schema','information_schema');あたりでいいのかな。

あとはRDSの権限まわりの特権ユーザつくる場合にdbschema.tableのとこが*.*だと無理で%.*になるなど。
http://www.fidian.com/problems-only-tyler-has/using-grant-all-with-amazons-mysql-rds

移行データ量の見方は以下リンク先のようにselectしたり
https://qiita.com/ikenji/items/b868877492fee60d85ce
もっとザックリだとdu -sh /var/lib/mysqlでデータディレクトリ(/etc/my.cnfみてdatadirで指定されてる場所、psで起動プロセスにオプションついてるやつみてもわかる)のサイズをはかる(データファイルだけでなくバイナリログも入る)なども。

サポート期間についてちょっと調べたので追記
https://www.mysql.com/jp/support/
https://www.oracle.com/us/assets/lifetime-support-technology-069183.pdf

Release GA Date Premier Support End Extended Support End Sustaining Support End
MySQL Database 5.0 Oct 2005 Dec 2011 Not Available Indefinite
MySQL Database 5.1 Dec 2008 Dec 2013 Not Available Indefinite
MySQL Database 5.5 Dec 2010 Dec 2015 Dec 2018 Indefinite
MySQL Database 5.6 Feb 2013 Feb 2018 Feb 2021 Indefinite
MySQL Database 5.7 Oct 2015 Oct 2020 Oct 2023 Indefinite

RDS側のサポートバージョン
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt
セキュリティ対応的なバージョンアップ告知がこんな感じでたまにあったりなど。
https://aws.amazon.com/jp/blogs/news/amazon-rds-mysql-56x-minor-version-announce/

ひとまずこのへんで失礼します