mysql二进制日志

mysql二进制日志称为binlog,记录了数据库修改数据的操作,可以用作数据恢复。

binlog有三种记录方式

1、statement

记录修改数据的原始sql,IO量较小。sql中存在使用user()等依赖运行环境的函数时,可能导致数据恢复不正确。

2、row

记录每行数据的修改动作,IO较大,准确性最高,生产环境推荐使用这种模式。

3、mixed

上述两种模式混合使用。

binlog参数设置

1、log_bin

只读参数,只能在my.ini(my.cnf)中设置,log_bin的值为二进制文件名字,存在log_bin配置则表示开启二进制文件,不存在则表示关闭。

2、sql_log_bin

会话界别变量,ON表示当前会话会记录binlog,OFF表示当前会话不记录binlog。

3、binlog_format

binlog的三种记录方式。

4、max_binlog_size

binlog日志文件大小,以字节为单位,日志超过此大小则创建新的binlog日志,文件名后缀自动加1。

5、sync_binlog

1,表示每一次事务提交之后,都会立即将内存中的二进制日志同步到磁盘中的二进制日志文件中。

0,表示由mysql自己决定什么时候写文件。

N,表示提交N次事务后,写文件。

显然,0性能最高,安全性最差;1性能最差,安全性最高。

二进制日志查询

1、查看二进制日志文件列表

show master logs;
show binary logs;

2、查看当前正在使用的二进制日志文件

show master status;

3、查看二进制日志文件中的事件(查看binlog内容)

show binlog events
show binlog events in ‘mybinlog.000001‘
show binlog events in ‘mybinlog.000001‘from 245
show binlog events in ‘mybinlog.000001‘limit 3
show binlog events in ‘mybinlog.000001‘limit 2,5
show binlog events in ‘mybinlog.000001‘from 245 limit 10
show binlog events in ‘mybinlog.000001‘from 245 limit 4,20

4、mysqlbinlog命令

(1)文件系统中使用mysqlbinlog命令查看对应的二进制日志:mysqlbinlog mybinlog.000001

(2)从指定位置开始查看二进制日志:mysqlbinlog --start-position 215 mybinlog.000001

(3)指定从哪个位置开始,到那个位置结束,查看这之间的二进制日志文件:mysqlbinlog --start-position 215 --stop-position 324 mybinlog.000001

(4)指定的时间开始查看,比如,查看2017年6月4日10点40以后的日志:mysqlbinlog --start-datetime "2017-6-4 11:40:00" mybinlog.000001;

(5)指定结束时间:mysqlbinlog --start-datetime "2017-6-4 11:40:00" --stop-datetime "2017-6-4 12:55:00" mybinlog.000001;

时间: 2024-10-18 22:48:14

mysql二进制日志的相关文章

MySQl Study学习之--MySQl二进制日志管理

MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log):   a.它包含的内容及作用如下:    包含了所有更新了数据或者已经潜在更新了数据(比如没有匹配任何行的一个DELETE)    包含关于每个更新数据库(DML)的语句的执行时间信息    不包含没有修改任何数据的语句,如果需要启用该选项,需要开启通用日志功能    主要目的是尽可能的将数据库恢复到数据库故障点,因为二进制日志包含备份后进行的所有更新    用于在主复制服务器上记录所有将发送

MySQL二进制日志(binary log)总结

本文出处:http://www.cnblogs.com/wy123/p/7182356.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 今天无意中发现了一个云栖社区举行的MySQL“第一季:挑战玄惭之 慢SQL性能优化赛”,在测试服务器上执行其测试脚本写入数据的时候报错提示如下,Multi-statement transaction required more than 'max_binlog_cache_

Mysql学习之--Mysql二进制日志管理

Mysql学习之--Mysql二进制日志管理 简介:     MySQL的二进制日志可以说或是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是失误安全型的.      MySQL的二进制日志的作用是显而易见的,可以方便的备份这些日志以便做数据恢复,也可以作为主从复制的同步文件,然而二进制日志的大小可能会根据不同的需求而存在麻烦,所以让日志回滚是必须的,当然MySQL已经为我们提供了二进制回滚的功

MySQL二进制日志总结

二进制日志简单介绍 MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句.二进制日志(binary log)中记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间.执行时长.操作数据等其它额外信息,但是它不记录SELECT.SHOW等那些不修改数据的SQL语句.二进制日志(binary log)主要用于数据库恢复和主从复制,以及审计(audit)操作. 官方文档关于二进制日志(binary log)的介绍如下: T

关系型数据库之Mysql二进制日志管理(四)

MySQL二进制日志(Binary Log)1.它包含的内容及作用如下:包含了所有更新了数据或者已经潜在更新了数据(比如没有匹配任何行的一个DELETE)包含关于每个更新数据库(DML)的语句的执行时间信息不包含没有修改任何数据的语句,如果需要启用该选项,需要开启通用日志功能主要目的是尽可能的将数据库恢复到数据库故障点,因为二进制日志包含备份后进行的所有更新用于在主复制服务器上记录所有将发送给从服务器的语句启用该选项数据库性能降低1%,但保障数据库完整性,对于重要数据库值得以性能换完整.有些类似

mysql二进制日志。

mysql二进制日志: 命令行参数: --log-bin[=file_name]   文件名 --log-bin-index[=file] 文件索引 --max_binlog_size     单个文件大小 --binlog-do-db=db_name 对那些db记录.只对指定数据库进行记录 --binlog-ignore-db=db_name 忽略那些db.只忽略指定数据库,其他数据库记录 系统变量: log_bin binlog_cache_size max_binlog_cache_siz

MySQL二进制日志功能介绍

二进制日志记录所有更新数据的SQL语句,其中也包含可能更新数据的SQL语句,例如DELETE语句执行过程中无匹配的行.二进制日志中还包含了与执行SQL语句相关的内容,例如SQL语句执行的时间.错误代码等.  二进制日志功能介绍 MySQL中的二进制日志主要有两个功能:数据恢复和数据复制. 数据恢复--MySQL本身具备数据备份和恢复功能.例如我们可以每天午夜12:00进行数据备份.但是,此类备份功能并不是对数据库的实时备份,如果数据库在下午17:00出现故障无法恢复,那么从前一天午夜12:00到

mysql二进制日志的使用

mysql二进制日志也就是一些mysql命令操作的记录 删除二进制日志信息: 二进制日志会记录大量的信息(其中包含一些无用的信息).如果很长时间不清理二进制日志,将会浪费很多的磁盘空间.但是,删除之后可能导致数据库崩溃时无法进行恢复,所以若要删除二进制日志首先将其和数据库备份一份,其中也只能删除备份前的二进制日志,新产生的日志信息不可删(可以做即时点还原).也不可在关闭mysql服务器之后直接删除因为这样可能会给数据库带来错误的.若非要删除二进制日志需要做如下操作:导出备份数据库和二进制日志文件

MySQL二进制日志操作

二进制日志 概念 记录对数据发生或潜在发生更改的SQL语句,并且是以二进制格式保存的日志 使用用途 查看数据库变更历史 数据库增量备份 数据库灾难恢复 MySQL复制(主从.主主复制) 二进制日志性能影响 日志即影响MySQL性能又占用大量磁盘空间.因此,往往需要做采样分析时才会打开 即使做采样分析,也最好仅在一台测试机上开启 二进制日志由于用途广泛,大多数情况下会开启.需要制定合理的备份计划和管理策略 开启二进制日志 方法一:不重启修改二进制日志配置 SET @@global.log_bin=