ログ管理(バックアップ)の基本は、ログの肥大化防止と保全です。ここでも、それらを第一に考えての管理方法(バックアップ方法)を採ることにします。もちろん、MySQL 5.5のマニュアルにも記載されている方法をベースにしたものです。
MySQL 5.5.xには下表(バージョン5.1の日本語マニュアルを元に筆者が加筆)に示すログがあります。バージョン5.5の場合も、バージョン5.1と同様です。
バイナリログについては、DBテーブルとデータのリカバリに必要となるもので、別記事『MySQL 5.5.9 のバックアップ/リカバリ』をご覧下さい。
ログ ファイル | 説明 |
---|---|
エラー ログ | mysqldの起動、実行、および停止で発生した問題。mysqld_safeに関するログもある。 |
一般クエリ ログ | クライアントとの接続と実行したクエリ。 |
バイナリ ログ | データ変更のステートメント。レプリケーションにも使用。 |
スロー クエリ ログ | long_query_time秒(デフォルトは10秒)より時間を要したクエリ、またはインデックスを使用しなかったクエリ。 |
また、ここでは、my.cnf中のログ関連の設定が次の通りであることを前提としています。
【/etc/my.cnfからログ関連設定を抜粋】
[mysqld] log-error = /var/log/mysql/mysqld-error.log general_log = 1 general_log_file = /var/log/mysql/mysql.log slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log [mysqld_safe] log-error = /var/log/mysql/mysqld_safe-error.log
1.手入力での管理(バックアップ)
あくまでも個別に実施する場合の実行手順です。
一般クエリログ(The General Query Log)
[root ~]# mv /var/log/mysql/mysql.log バックアップ先ディレクトリ/mysql_`date +%Y%m%d%H%M`.log [root ~]# mysqladmin flush-logs
エラーログ(The Error Log)
[root ~]# mv /var/log/mysql/mysqld-error.log バックアップ先ディレクトリ/mysqld-error_`date +%Y%m%d%H%M`.log [root ~]# mv /var/log/mysql/mysqld_safe-error.log バックアップ先ディレクトリ/mysqld_safe-error_`date +%Y%m%d%H%M`.log [root ~]# mysqladmin flush-logs
スロークエリログ(The Slow Query Log)
[root ~]# mv /var/log/mysql/slow.log バックアップ先ディレクトリ/slow_`date +%Y%m%d%H%M`.log [root ~]# mysqladmin flush-logs
2.cronでの定期的管理(バックアップ)
日次で、一般クエリログ、エラーログ、スロークエリログのバックアップを行うように設定します。
バックアップ先ディレクトリを/root/backup/mysqlとした例です。
[root ~]# vim /etc/cron.daily/mysql #!/bin/sh mv /var/log/mysql/mysql.log /root/backup/mysql/mysql_`date +%Y%m%d%H%M`.log mv /var/log/mysql/mysqld-error.log /root/backup/mysql/mysqld-error_`date +%Y%m%d%H%M`.log mv /var/log/mysql/mysqld_safe-error.log /root/backup/mysql/mysqld_safe-error_`date +%Y%m%d%H%M`.log mv /var/log/mysql/slow.log /root/backup/mysql/slow_`date +%Y%m%d%H%M`.log mysqladmin flush-logs
これで、CentOSのデフォルトだと毎日午前3時24分頃にバックアップが実行されるようになります。