关于mysql:MySQL的binlog日志

2次阅读

共计 760 个字符,预计需要花费 2 分钟才能阅读完成。

binlog 日志是什么

MySQL 的架构能够分为 server 层与引擎层,引擎层相似于插件像是 InnoDB 等,binlog 就是由 server 层提供的日志服务。

binlog 的格局

binlog 反对的格局次要有 statement,row,mixed 三种。

statement

statement 中存储的是 SQL 语句,这样的存储形式更加节俭空间,然而也会带来相应的问题。
毛病:因为存储的是 SQL 语句所以在主从同步时很可能会有不同的执行后果导致主从数据不统一,例如 delete 时语句抉择的索引不同等。

row

row 格局中存储的是数据自身,正因为如此占用的空间更多,然而可能保证数据的准确性。

mixed

mixed 模式下,当 statement 格局中的语句存在导致主从数据不统一的危险时则会主动切换为 row。能够通过 show warning 查看。

对三种日志格局的抉择

row 格局存储的时数据自身,所以在复原数据时就很不便。statement 尽管占用空间少然而个别的生产环境中所采纳的都是主从构造,因而数据的一致性尤其重要。

常用命令

查看 binlog 命令

查看以后应用的 binlog 格局

show global variables like '%binlog_format%';

查看第一个 binlog 文件内容
show binlog events;
查看指定文件内容
show binlog events in 'mysql.000002';
查看正在写入的文件
show master status\G
获取 binlog
show binary logs;

设置 binlog 格局命令

设置以后库 binlog 格局
set binlog_format='statement/row/mixed';
设置全局 binlog 格局

set global binlog_format='statement/row/mixed';
正文完
 0