Amazon EC2 でDBサーバー立てたらInnoDBがなくなった話

Amazone EC2 でMySQLスレーブサーバー用のAMIイメージをつくろうと思っていたら、遭遇した問題。

最新のEBSスナップショットをからvolumeを作って、新しいインスタンスにattachして、インスタンスにログインして、MySQLを起動しました。

> SHOW SLAVE STATUS;

としてみると、Unknown table engine 'InnoDB' というエラーが。。。

> SHOW ENGINES;

おっしゃるとおり、InnoDB はリストされません。。
mysql のエラーログを確認すると、エラーがでてました。

110831 06:41:08 mysqld_safe Starting mysqld daemon with databases from /data/lib/mysql
110831 6:41:08 [Warning] '--default-character-set' is deprecated and will be removed in a future release. Please use '--character-set-server' instead.
110831 6:41:08 [Warning] '--log_slow_queries' is deprecated and will be removed in a future release. Please use ''--slow_query_log'/'--slow_query_log_file'' instead.
110831 6:41:08 InnoDB: Error: cannot allocate 5368725504 bytes of
InnoDB: memory with malloc! Total allocated memory
InnoDB: by InnoDB 111315808 bytes. Operating system errno: 12
InnoDB: Check if you should increase the swap file or
InnoDB: ulimits of your operating system.

本番サーバーはLargeインスタンスなんですが、テンプレート作成の一時インスタンスはケチって Microで立ち上げたところ、InnoDBに割り当てていたメモリサイズより小さかったみたいですね。。

それなら、mysqld が立ち上がらなくてもいいんじゃないかと思うんですが、InnoDBなテーブルを無視して、無理やり立ち上がるんですね。