RDS スロークエリーログのローテーション メモ

RDSのスロークエリログをローテーションするには
RDSに用意されている下記ストアドプロシージャを実行する

mysql> CALL mysql.rds_rotate_slow_log;'


実行すると slow_log テーブルが slow_log_backupにコピーされる
世代管理はできず、一世代前のバックアップしか保持できない
slow_log_backup にあったデータは削除される


Bashから実行する例

$ vi RotateLog.bash

#!/bin/bash

ID=mysqlのID
PW=mysqlのPW
HOST=mysqlのホスト名
DB=mysqlのDB

# スロークエリログをローテートするストアドプロシージャー
SQL='CALL mysql.rds_rotate_slow_log;'

# ストアドプロシージャ実行
echo $SQL | mysql -u $ID -p$PW -h $HOST $DB


cronから上のスクリプトを日曜0時に実行する例

$ crontab -l
0 0 * * 0 /hoge/RotateLog.bash


RDS でスロークエリログをとるときの設定は下記参照のこと
[AWS] RDSでスロークエリログを取れるように設定したときの メモ