AWS RDS Aurora(MySQL)での困った問題
PICK UP POST

AWS RDS Aurora(MySQL)での困った問題

以前にもAWS使っててアレな問題を見つけてしまったりしたわけですが、今度はフルマネージドをうたってるRDS Auroraで怪しい問題に引っかかっちゃいました。

RDS Auroraのログ、今回はslow_logでの問題でしたが構造的に他のログでも起こりうる問題だと思います。
slow_logは出力先をいくつかから選択できるのですが、テーブル出力にしている場合、何らかの方法でクリアしなければなりません。
そういった目的のために用意されているのがmysql.rds_rotate_slow_logプロシージャを使ったローテーションです。
というかこれ以外でなんとかする方法はありません。
で、この実装というのが、ざっくり言うと

  • 既存のmysql.slow_log_backupテーブルを空っぽにする
  • mysql.slow_log_backupテーブルをmysql.slow_log2にリネームする
  • mysql.slow_logテーブルをmysql.slow_log_backupにリネームすると同時にmysql.slow_log2テーブルをmysql.slow_logにリネームする

という流れになっています。
ところが「何らかの問題」が起こると、

mysql> show tables like '%slow%';
+--------------------------+
| Tables_in_mysql (%slow%) |
+--------------------------+
| slow_log                 |
| slow_log2                |
| slow_log_backup          |
+--------------------------+
3 rows in set (0.00 sec)

mysql> call mysql.rds_rotate_slow_log;
ERROR 1050 (42S01): Table 'slow_log2' already exists

だったり、

mysql> show tables like '%slow%';
+--------------------------+
| Tables_in_mysql (%slow%) |
+--------------------------+
| slow_log2                |
+--------------------------+
1 row in set (0.00 sec)

mysql> call mysql.rds_rotate_slow_log;
ERROR 1146 (42S02): Table 'mysql.slow_log_backup' doesn't exist

だったりと、もう打つ手なしになってしまいます。
こうなるとAWSのサポートに連絡してなんとかしてもらわないとなりません。

AWSでも「問題は把握している」そうですが、ここ半年で3回5回(改めてあちこち調べたら他に2つ起こってた・・・)ほど起こっているのでそろそろ本当になんとかしてくれないと困ります。
しかし「何らかの問題」については良く分かっていないらしいので定期的にユーザ側で上記のようなSQLを投げて確認して、問題が起こっていないことを確認しないとならないようです。

んー・・・

TAG

  • このエントリーをはてなブックマークに追加
やまま
スペシャリスト やまま yamama

マンガとアニメとゲームから錬成された宇宙大好きエンジニア。 軌道エレベーターで行ける静止軌道上のコロニーに住まいを移し、ゲームやってマンガ読んでアニメ見て爆睡、ゲームやってマンガ読んでアニメ見て爆睡、という生活を夢見ながら今日もコードを書き続けるのだった。