MySQLレプリケーション

投稿者: | 2011年5月5日
Pocket

対象サーバについて

製品名 OpenBlockS 600
OS(kernel ver) Debian lenny(2.6.29)
CPU 600MHz(AMCC PowerPC 405EX)
メモリ 1GB(DDR2 SDRAM)
ストレージ 8GB(Compact Flash)

はじめに

本サイトで使用しているMySQLバージョン:5.0.51a-24

MySQLレプリケーションは、特定のMySQLサーバのデータを更新すると他のMySQLサーバに更新結果を複製することができる技術です。複製元をマスタサーバ、複製先をスレーブサーバと呼びます。

具体的には、マスタサーバ側でMySQLのデータを更新すると、実行されたSQL文がバイナリログとしてスレーブサーバ側に転送され、同様に実行されます。

レプリケーションの仕組み

スレーブサーバに対するマスタサーバは1台ですが、マスタサーバに対するスレーブサーバは複数設定できます。そのため、更新処理を行うマスターサーバに対して参照処理を行うスレーブサーバを複数用意することで、参照処理を負荷分散させることができます。また、アクセス数増加に伴い、スレーブサーバを増やすことでスケールアウトが容易にできるという利点もあります。

マスタサーバを複数用意することで更新処理を負荷分散させるためにマルチマスタ構成というのも使われますが、その道のプロの方もお勧めしていませんので、気軽に手を出すと痛い目を見そうです。

MySQLレプリケーションの注意点

MySQLレプリケーションは設定が非常に簡単でデータベースを冗長化させることができ、処理も非常に軽いのでお勧めですが、いくつか注意点もあります。

  1. マスタサーバとスレーブサーバで差分が生じる可能性がある

    マスタサーバはスレーブサーバ側でバイナリログが実行されるまで待つことなく自身のデータを更新し、スレーブサーバへの転送とスレーブサーバでの実行も非同期で行われるため、マスターで更新した結果が確実に即時スレーブに反映されているとは限りません。そのため、マスタサーバが更新された直後にdownすると、スレーブサーバにその更新結果が反映されていない可能性があります。

  2. ネットワークの冗長化は別途検討する必要がある

    マスタ・スレーブサーバはそれぞれ別IPアドレスのため、マスタサーバ故障時に自動的にスレーブに接続させるにはアプリケーション側での工夫や他の冗長化技術との併用が必要になります。

  3. バックアップは別の手段を利用する

    オペレーションミスでマスタサーバ側のデータを消してしまうと、当然スレーブ側のデータも消えてしまうことになるので、ある時点でのバックアップ取得も別の手段で用意しておく必要があります。

MySQLレプリケーションの設定

master:~# vi /etc/mysql/my.cnf
[mysqld]
server-id               = 1
log_bin
#bind-address           = 127.0.0.1
bind-address            = 172.0.0.2

slave:~# vi /etc/mysql/my.cnf
[mysqld]
server-id               = 2
#bind-address           = 127.0.0.1
bind-address            = 172.0.0.3

server-idはマスタとスレーブで被らないように設定します。自宅サーバではアプリサーバとDBサーバを一台で兼用していたりするので、bind-addressに要注意です。

master:~# vi /etc/hosts.allow

mysqld: 127.0.0.1 192.168.0.0/24 172.0.0.0/29

slave:~# vi /etc/hosts.allow

mysqld: 127.0.0.1 192.168.0.0/24 172.0.0.0/29

TCPWrapperも開放しておきます。両方向の通信を考慮する必要がありますので両系に同じ設定を行います。

IPTABLESでフィルターしていないかも確認します。

設定変更後、再起動を行います。

master:~# /etc/init.d/mysql restart
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld ..
Checking for corrupt, not cleanly slaved and upgrade needing tables..

slave:~# /etc/init.d/mysql restart
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly slaved and upgrade needing tables..

確認

マスタサーバのデータディレクトリ

master:/var/lib/mysql# ls -al
合計 24
drwxr-xr-x  3 mysql mysql 4096 2011-04-10 03:09 .
drwxr-xr-x 31 root  root  4096 2011-04-03 23:31 ..
-rw-r--r--  1 root  root     0 2011-04-03 23:31 debian-5.0.flag
drwxr-xr-x  2 mysql root  4096 2011-04-03 23:31 mysql
-rw-------  1 root  root     7 2011-04-03 23:31 mysql_upgrade_info
-rw-rw----  1 mysql mysql   98 2011-04-10 03:09 mysqld-bin.000001
-rw-rw----  1 mysql mysql   20 2011-04-10 03:09 mysqld-bin.index

バイナリログが出力されていることを確認します。

mysqld-bin.000001:バイナリログ

mysqld-bin.index:バイナリログファイルの一覧が記載されたファイル

バイナリログの確認

master:/var/lib/mysql#  mysqlbinlog --no-defaults mysqld-bin.000001
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#110410  3:35:59 server id 1  end_log_pos 98    Start: binlog v 4, server v 5.0.51a-24+lenny5-log created 110410  3:35:59 at startup
# Warning: this binlog was not closed properly. Most probably mysqld crashed writing it.
ROLLBACK/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

バイナリ形式なので、mysqlbinlogコマンドを使用して確認します。

スレーブサーバのデータディレクトリ

slave:/var/lib/mysql# ls -al
合計 20
drwxr-xr-x  4 mysql mysql 4096 2011-04-10 03:12 .
drwxr-xr-x 24 root  root  4096 2011-04-03 01:26 ..
drwx------  2 mysql mysql 4096 2011-04-03 02:58 application
-rw-r--r--  1 root  root     0 2011-04-03 01:26 debian-5.0.flag
drwxr-xr-x  2 mysql root  4096 2011-04-03 22:25 mysql
-rw-------  1 root  root     7 2011-04-03 01:27 mysql_upgrade_info

まだスレーブ設定していないため、現時点ではスレーブ関連のファイル(後述)はありません。

レプリケーションパラメータの確認(マスタ側)

master:/var/lib# mysql -uroot -p********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 29
Server version: 5.0.51a-24+lenny5-log (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SHOW VARIABLES LIKE 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 1     |
+---------------+-------+
1 row in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
1 row in set (0.00 sec)

my.cnfの通りであることを確認します。

レプリケーションパラメータの確認(スレーブ側)

slave:/usr/mysql-test# mysql -uroot -p********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 29
Server version: 5.0.51a-24+lenny5 (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SHOW VARIABLES LIKE 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 2     |
+---------------+-------+
1 row in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | OFF   |
+---------------+-------+
1 row in set (0.00 sec)

my.cnfの通りであることを確認します。

MASTER側にてREPLICATIONユーザ作成

master:/var/lib# mysql -uroot -p********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 30
Server version: 5.0.51a-24+lenny5-log (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'172.0.0.3' IDENTIFIED BY 'abcdefgh';
Query OK, 0 rows affected (0.00 sec)

スレーブサーバからマスタサーバに接続する際のユーザ「replication」PW「abcdefgh」を作成しました。権限は最低限「REPLICATION」のみを与えます。

バイナリログとポジション確認

mysql> show master status;
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| mysqld-bin.000001 |       98 |              |                  |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

Fileはマスタサーバが現在書き込んでいるバイナリログのファイル名、Positionは現在までに書き込んだバイナリログの位置です。スレーブ側で上記の値を指定するため、メモしておきます。

マスタサーバのスレッド情報確認

mysql> show processlist\G
*************************** 1. row ***************************
     Id: 29
   User: root
   Host: localhost
     db: mysql
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
1 row in set (0.00 sec)

現時点ではlocalhostからrootユーザでmysqlデータベースに接続しているスレッドのみしかありません。

スレーブ側の設定

slave:/usr/mysql-test# mysql -uroot -p********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 30
Server version: 5.0.51a-24+lenny5 (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show slave status;
Empty set (0.00 sec)

mysql> CHANGE MASTER TO MASTER_HOST = '172.0.0.2',
    -> MASTER_USER = 'replication',
    -> MASTER_PASSWORD = 'abcdefgh',
    -> MASTER_LOG_FILE = 'mysqld-bin.000001',
    -> MASTER_LOG_POS = 98 ;
Query OK, 0 rows affected, 2 warnings (0.02 sec)

スレーブサーバで接続先のマスタサーバの情報を設定するためにCHANGE MASTER TOコマンドを実行しています。

MASTER_HOST マスタサーバのIPアドレスまたはホスト名
MASTER_USER 先ほどマスタサーバ側で作成したユーザ(REPLICATION SLAVE権限を持ったユーザ)を指定
MASTER_PASSWORD replicationユーザのパスワード
MASTER_LOG_FILE レプリケーションを開始するバイナリログファイルを指定。先ほどマスタサーバ側で見たshow master statusの実行結果にあるFileを指定
MASTER_LOG_POS 先ほどマスタサーバ側で見たshow master statusの実行結果にあるPositionを指定

ここで設定された内容はデータディレクトリのmaster.infoに保存されます。

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
slave:/var/lib/mysql# ls -al
合計 36
drwxr-xr-x  4 mysql mysql 4096 2011-04-10 03:38 .
drwxr-xr-x 24 root  root  4096 2011-04-03 01:26 ..
drwx------  2 mysql mysql 4096 2011-04-03 02:58 application
-rw-r--r--  1 root  root     0 2011-04-03 01:26 debian-5.0.flag
-rw-rw----  1 mysql mysql   74 2011-04-10 03:38 master.info
drwxr-xr-x  2 mysql root  4096 2011-04-03 22:25 mysql
-rw-------  1 root  root     7 2011-04-03 01:27 mysql_upgrade_info
-rw-rw----  1 mysql mysql  236 2011-04-10 03:38 mysqld-relay-bin.000002
-rw-rw----  1 mysql mysql   26 2011-04-10 03:38 mysqld-relay-bin.index
-rw-rw----  1 mysql mysql   51 2011-04-10 03:38 relay-log.info

新たにスレーブ関連のファイルが作成されました。

slave:/var/lib/mysql# less master.info
14
mysqld-bin.000001
98
172.0.0.2
replication
abcdefgh
3306
60
0

※master.infoの書式はこちらを参照(MySQL5.1のマニュアルですが5.0も同じです)

以下に引用しておきます。

1 ファイル内のライン番号
2 Master_Log_File マスタのバイナリ ログ名。このログはその時点でマスタ側から読み込み中。
3 Read_Master_Log_Pos マスタのバイナリ ログ内の現在位置。その時点分のマスタの読み込みは完了している。
4 Master_Host マスタのホスト名
5 Master_User マスタに接続するためのユーザ名
6 パスワード マスタに接続するためのパスワード
7 Master_Port マスタに接続するためのネットワーク ポート
8 Connect_Retry インターバル時間(秒)。スレーブがマスタに再接続を試行する際に待機する時間
9 Master_SSL_Allowed サーバが SSL 接続をサポートするかどうかを示す
slave:/var/lib/mysql# mysqlbinlog --no-defaults mysqld-relay-bin.000002
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#110410  3:38:48 server id 2  end_log_pos 98    Start: binlog v 4, server v 5.0.51a-24+lenny5 created 110410  3:38:48
# at 98
#700101  9:00:00 server id 1  end_log_pos 0     Rotate to mysqld-bin.000001  pos: 98
# at 142
#110410  3:35:59 server id 1  end_log_pos 0     Start: binlog v 4, server v 5.0.51a-24+lenny5-log created 110410  3:35:59
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

slave:/var/lib/mysql#  less mysqld-relay-bin.index
./mysqld-relay-bin.000002

slave:/var/lib/mysql# less relay-log.info
./mysqld-relay-bin.000002
236
mysqld-bin.000001
98

※relay-log.infoの書式はこちらを参照(MySQL5.1のマニュアルですが5.0も同じです)

以下に引用しておきます。

1 Relay_Log_File 現行のリレー ログ ファイル名
2 Relay_Log_Pos リレー ログ ファイル内の現在位置。この位置までのイベントはスレーブのデータベースで実行済み。
3 Relay_Master_Log_File マスタの (リレー ログ ファイルで読み取られたイベントの) バイナリ ログ ファイル名
4 Exec_Master_Log_Pos (既に実行されたイベントの) マスタのバイナリ ログ ファイル内の対応位置

確認

マスター側

mysql> show processlist\G
*************************** 1. row ***************************
     Id: 29
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
*************************** 2. row ***************************
     Id: 30
   User: replication
   Host: slave.xxx.jp:45226
     db: NULL
Command: Binlog Dump
   Time: 136
  State: Has sent all binlog to slave; waiting for binlog to be updated
   Info: NULL
2 rows in set (0.00 sec)

2. rowが増えました。

スレーブ側

mysql> show processlist\G
*************************** 1. row ***************************
     Id: 32
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 151
  State: Waiting for master to send event
   Info: NULL
*************************** 2. row ***************************
     Id: 33
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 151
  State: Has read all relay log; waiting for the slave I/O thread to update it
   Info: NULL
*************************** 3. row ***************************
     Id: 34
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
3 rows in set (0.00 sec)

mysql> show slave status\G
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 172.0.0.2
                Master_User: replication
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysqld-bin.000001
        Read_Master_Log_Pos: 98
             Relay_Log_File: mysqld-relay-bin.000002
              Relay_Log_Pos: 236
      Relay_Master_Log_File: mysqld-bin.000001
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB:
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 98
            Relay_Log_Space: 236
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: 0
1 row in set (0.01 sec)

上記ピンクの箇所がYesになっているので、SQLスレッドとI/Oスレッドが正常に動作しています。

レプリケーション試験

マスター側

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)

マスター側にデータベースtestを作成しました。

スレーブ側

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)

スレーブ側では何もしていないのにデータベースtestが作成されています。

マスター側

mysql> use test;
Database changed
mysql> show tables;
Empty set (0.00 sec)

次は、データベースの中身(テーブル、データ)がレプリケーションされるか確認します。

上記時点ではまだ空っぽです。

スレーブ側

mysql>  use test;
Database changed
mysql>  show tables;
Empty set (0.00 sec)

マスター側

mysql> CREATE TABLE test (id int(5));
ERROR 1105 (HY000): MyISAM table 'test' is in use (most likely by a MERGE table). Try FLUSH TABLES.
mysql> show tables;
Empty set (0.01 sec)

mysql> FLUSH TABLES;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE test (id int(5));
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO test VALUES(1), (2), (3);
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from test;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.01 sec)

スレーブ側

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| test           |
+----------------+
1 row in set (0.00 sec)

mysql> select * from test;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)

テーブルとデータもコピーされました。

ファイルの確認

最後に現時点での各ファイルの値の変化を確認して終了します。

マスター側

master:/var/lib/mysql# less mysqld-bin.index
./mysqld-bin.000001

master:/var/lib/mysql# mysqlbinlog --no-defaults mysqld-bin.000001
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#110410  3:35:59 server id 1  end_log_pos 98    Start: binlog v 4, server v 5.0.51a-24+lenny5-log created 110410  3:35:59 at startup
# Warning: this binlog was not closed properly. Most probably mysqld crashed writing it.
ROLLBACK/*!*/;
# at 98
#110410  3:41:54 server id 1  end_log_pos 181   Query   thread_id=29    exec_time=0     error_code=0
SET TIMESTAMP=1302374514/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
SET @@session.sql_mode=0/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
create database test/*!*/;
# at 181
#110410  3:43:20 server id 1  end_log_pos 256   Query   thread_id=29    exec_time=0     error_code=0
use test/*!*/;
SET TIMESTAMP=1302374600/*!*/;
FLUSH TABLES/*!*/;
# at 256
#110410  3:43:23 server id 1  end_log_pos 348   Query   thread_id=29    exec_time=0     error_code=0
SET TIMESTAMP=1302374603/*!*/;
CREATE TABLE test (id int(5))/*!*/;
# at 348
#110410  3:43:31 server id 1  end_log_pos 447   Query   thread_id=29    exec_time=0     error_code=0
SET TIMESTAMP=1302374611/*!*/;
INSERT INTO test VALUES(1), (2), (3)/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

スレーブ側

mysql> show slave status\G
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 172.0.0.2
                Master_User: replication
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysqld-bin.000001
        Read_Master_Log_Pos: 447
             Relay_Log_File: mysqld-relay-bin.000002
              Relay_Log_Pos: 585
      Relay_Master_Log_File: mysqld-bin.000001
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB:
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 447
            Relay_Log_Space: 585
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: 0
1 row in set (0.00 sec)

mysql> quit
Bye

slave:/var/lib/mysql# ls -al
合計 40
drwxr-xr-x  5 mysql mysql 4096 2011-04-10 03:41 .
drwxr-xr-x 24 root  root  4096 2011-04-03 01:26 ..
drwx------  2 mysql mysql 4096 2011-04-03 02:58 application
-rw-r--r--  1 root  root     0 2011-04-03 01:26 debian-5.0.flag
-rw-rw----  1 mysql mysql   75 2011-04-10 03:43 master.info
drwxr-xr-x  2 mysql root  4096 2011-04-03 22:25 mysql
-rw-------  1 root  root     7 2011-04-03 01:27 mysql_upgrade_info
-rw-rw----  1 mysql mysql  585 2011-04-10 03:43 mysqld-relay-bin.000002
-rw-rw----  1 mysql mysql   26 2011-04-10 03:38 mysqld-relay-bin.index
-rw-rw----  1 mysql mysql   52 2011-04-10 03:43 relay-log.info
drwx------  2 mysql mysql 4096 2011-04-10 03:43 test

slave:/var/lib/mysql#  less master.info
14
mysqld-bin.000001
447
172.0.0.2
replication
abcdefgh
3306
60
0

slave:/var/lib/mysql#  less relay-log.info
./mysqld-relay-bin.000002
585
mysqld-bin.000001
447

slave:/var/lib/mysql# less mysqld-relay-bin.index
./mysqld-relay-bin.000002

slave:/var/lib/mysql# mysqlbinlog --no-defaults mysqld-relay-bin.000002
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#110410  3:38:48 server id 2  end_log_pos 98    Start: binlog v 4, server v 5.0.51a-24+lenny5 created 110410  3:38:48
# at 98
#700101  9:00:00 server id 1  end_log_pos 0     Rotate to mysqld-bin.000001  pos: 98
# at 142
#110410  3:35:59 server id 1  end_log_pos 0     Start: binlog v 4, server v 5.0.51a-24+lenny5-log created 110410  3:35:59
# at 236
#110410  3:41:54 server id 1  end_log_pos 181   Query   thread_id=29    exec_time=0     error_code=0
SET TIMESTAMP=1302374514/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
SET @@session.sql_mode=0/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
create database test/*!*/;
# at 319
#110410  3:43:20 server id 1  end_log_pos 256   Query   thread_id=29    exec_time=0     error_code=0
use test/*!*/;
SET TIMESTAMP=1302374600/*!*/;
FLUSH TABLES/*!*/;
# at 394
#110410  3:43:23 server id 1  end_log_pos 348   Query   thread_id=29    exec_time=0     error_code=0
SET TIMESTAMP=1302374603/*!*/;
CREATE TABLE test (id int(5))/*!*/;
# at 486
#110410  3:43:31 server id 1  end_log_pos 447   Query   thread_id=29    exec_time=0     error_code=0
SET TIMESTAMP=1302374611/*!*/;
INSERT INTO test VALUES(1), (2), (3)/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です