- 履歴一覧
- 履歴 を表示
- RDSのgeneral_log は削除されています。
#author("2018-06-07T08:26:45+00:00","default:kazuma","kazuma")
[[RDS]]
*概要 [#u162801c]
RDSのgeneral_logに関するmemo
*general_logを有効・無効にする [#z9c6a577]
mysql cliコマンドではrootでも有効にできないので、AWSコンソールから実施する。
+パラメータグループ
+対象のインスタンスのグループ
+パラメータでgeneral_logの値を 1(有効), 0 (無効) にする
general_logは大量に吐かれるので本番ではやらない。検証環境でも一時的に有効したら無効化しておく。
*general_logを削除する [#fb079331]
TRUNCATE TABLE general_log ではrootでも権限により削除できない。~
削除のためのストアドプロシージャが用意されているのでストアドから実行する。~
なお、一回実行したら general_log_backup へ退避されるので、完全に削除したい場合は rds_rotate_general_logというストアドを2回実行する。 ~
mysql> select count(*) from general_log;
+----------+
| count(*) |
+----------+
| 301603 |
+----------+
1 row in set (2.13 sec)
mysql> call rds_rotate_general_log ;
Query OK, 0 rows affected (0.02 sec)
mysql> select count(*) from general_log;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from general_log_backup;
+----------+
| count(*) |
+----------+
| 301603 |
+----------+
1 row in set (2.12 sec)
mysql> call rds_rotate_general_log ;
Query OK, 0 rows affected (0.05 sec)
mysql> select count(*) from general_log_backup;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.01 sec)
*** rds_rotate_general_log の中身 [#oa7045f5]
mysql> show create PROCEDURE rds_rotate_general_log\G
*************************** 1. row ***************************
Procedure: rds_rotate_general_log
sql_mode:
Create Procedure: CREATE DEFINER=`rdsadmin`@`localhost` PROCEDURE `rds_rotate_general_log`()
READS SQL DATA
DETERMINISTIC
BEGIN
DECLARE sql_logging BOOLEAN;
select @@sql_log_bin into sql_logging;
set @@sql_log_bin=off;
TRUNCATE TABLE mysql.general_log_backup;
RENAME TABLE mysql.general_log_backup TO mysql.general_log2;
RENAME TABLE mysql.general_log TO mysql.general_log_backup, mysql.general_log2 TO
mysql.general_log;
set @@sql_log_bin=sql_logging;
END
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)