MySQL 資料一覧
バイナリログの管理
2007/12/23更新
対応バージョン: 5.0.51
バイナリログは、ローテーションして使われる複数のログファイルとそれを管理するインデックスファイルとで構成される。
ファイルは/usr/local/mysql/var配下に格納され、それぞれ以下のようなファイル名で管理される。
ログファイル(複数)
データベースに対して実施した作業がタイムスタンプとともに格納されている。
後述のmysqlbinlogコマンドで内容を参照することが可能。
mysql-bin.000001 mysql-bin.000002 :
インデックスファイル
ログファイルの名前が1行ずつ記述されている。
mysql-bin.index
バイナリログの使用状況は以下のクエリによって確認できる。
# mysql -u root -E -e "SHOW BINLOG EVENTS" *************************** 1. row *************************** Log_name: mysql-bin.000001 Pos: 4 Event_type: Format_desc Server_id: 1 End_log_pos: 98 Info: Server ver: 5.0.51-log, Binlog ver: 4 *************************** 2. row *************************** Log_name: mysql-bin.000001 Pos: 98 Event_type: Query Server_id: 1 End_log_pos: 1712 Info: use `mysql`; CREATE TABLE IF NOT EXISTS db (Host char(60) ...(略) : *************************** 33. row *************************** Log_name: mysql-bin.000001 Pos: 14838 Event_type: Query Server_id: 1 End_log_pos: 14921 Info: use `mysql`; DROP TABLE tmp_user *************************** 34. row *************************** Log_name: mysql-bin.000001 Pos: 14921 Event_type: Stop Server_id: 1 End_log_pos: 14940 Info:
バイナリログの個別ファイル内の詳細情報はmysqlbinlogにて確認できる。
# mysqlbinlog mysql-bin.000001 | cat -n 1 /*!40019 SET @@session.max_insert_delayed_threads=0*/; 2 /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; 3 DELIMITER /*!*/; 4 # at 4 5 #071223 0:53:01 server id 1 end_log_pos 98 Start: binlog v 4, server v 5.0.51-log created 071223 0:53:01 at startup 6 ROLLBACK/*!*/; 7 # at 98 8 #071223 0:53:01 server id 1 end_log_pos 1712 Query thread_id=1 exec_time=0 error_code=0 9 use mysql/*!*/; 10 SET TIMESTAMP=1198338781/*!*/; 11 SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/; 12 SET @@session.sql_mode=0/*!*/; 13 /*!\C utf8 *//*!*/; 14 SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/; 15 CREATE TABLE IF NOT EXISTS db (Host char(60) binary DEFAULT '' ... :
このようにバイナリログではデータベースに加えられた作業を全て位置情報(pos)及びタイムスタンプとともに記録しているので、前回バックアップ時以降のロールフォワードや任意の時点への復旧などが簡単に行える。