时间:2021-07-01 10:21:17 帮助过:43人阅读
MySQL通过binlog来记录整个数据的变更过程,因此我们只要有MySQL的binlog日志即可完整的还原数据库。MySQL binlog日志记录有3种不
MySQL通过binlog来记录整个数据的变更过程,因此我们只要有MySQL的binlog日志即可完整的还原数据库。MySQL binlog日志记录有3种不同的方式,即:STATEMENT,MIXED,,ROW。对于不同的日志模式,生成的binlog有不同的记录方式。对于MIXED(部分SQL语句)和ROW模式是以base-64方式记录,会以BINLOG开头,是一段伪SQL,我们可以用使用base64-output参数来抑制其显示。本文对此给出了描述及演示。
有关mysqlbinlog的用法,请参考:使用mysqlbinlog提取二进制日志
1、mysqlbinlog之base64-output参数
.
BINLOG.
but unlike NEVER, it does not exit with an error if a row event is found.
· Character set information is not available in the binary log, which affects string column display:
CHAR(4) CHARACTER SET latin1
CHAR(2) CHARACTER SET ucs2
SET clause.
2、演示生成binlog日志
--环境
mysql> show variables like 'version';
+---------------+------------+
| Variable_name | Value |
+---------------+------------+
| version | 5.6.12-log |
+---------------+------------+
--如下查询binlog为row记录模式
mysql> show variables like 'binlog_for%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW |
+---------------+-------+
mysql> reset master;
Query OK, 0 rows affected (0.01 sec)
mysql> show master status;
+-----------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| APP01bin.000001 | 120 | | | |
+-----------------+----------+--------------+------------------+-------------------+
mysql> use test;
Database changed
--创建表t1
mysql> create table t1(id smallint,val varchar(20));
Query OK, 0 rows affected (0.01 sec)
--插入单条记录
mysql> insert into t1 values(1,'robin');
Query OK, 1 row affected (0.00 sec)
--清空表
mysql> truncate table t1;
Query OK, 0 rows affected (0.01 sec)
--查看binlog events
mysql> show binlog events;
+-----------------+-----+-------------+-----------+-------------+----------------------------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+-----------------+-----+-------------+-----------+-------------+----------------------------------------------------------+
| APP01bin.000001 | 4 | Format_desc | 11 | 120 | Server ver: 5.6.12-log, Binlog ver: 4 |
| APP01bin.000001 | 120 | Query | 11 | 238 | use `test`; create table t1(id smallint,val varchar(20)) |
| APP01bin.000001 | 238 | Query | 11 | 310 | BEGIN |
| APP01bin.000001 | 310 | Table_map | 11 | 358 | table_id: 74 (test.t1) |
| APP01bin.000001 | 358 | Write_rows | 11 | 402 | table_id: 74 flags: STMT_END_F |
| APP01bin.000001 | 402 | Xid | 11 | 433 | COMMIT /* xid=30 */ |
| APP01bin.000001 | 433 | Query | 11 | 517 | use `test`; truncate table t1 |
+-----------------+-----+-------------+-----------+-------------+----------------------------------------------------------+
7 rows in set (0.00 sec)