MySQL二进制日志binlog简单使用
MySQL数据库进行了哪些CUD操作,通过binlog二进制文件可以查看。binlog不仅可以记录CUD的操作(select操作不包括在内),还是主从备份的基础。主库的操作记录成binlog文件,定期地从主库拷贝到从库。实际中使用binlog要考虑到文件大小的问题,要有定期删除的功能,否则会积累大量的文件。
在my.ini下添加:
log-bin=mysql-bin
long_query_time=0.1
log-slow-queries="\Temp\slow.log"
log-queries-not-using-indexes=TRUE
log-error="\Temp\log-error.log"
上面的配置将打开binlog记录功能,缓慢查询的记录功能,错误查询的记录功能等。
mysql> show variables like '%datadir%';
+---------------+----------------------+
| Variable_name | Value |
+---------------+----------------------+
| datadir | D:\NNM5\MySQL5\data\ |
+---------------+----------------------+
1 row in set (0.00 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 170435 | | |
+------------------+----------+--------------+------------------+
则现在正在使用的binlog文件是D:\NNM5\MySQL5\data\mysql-bin.000001
日志文件的生成将遵循如下规则:
1. 每天生成一个新的文件,例如每天将生成mysql-bin.000002
2. 文件大小超过设置的值时将生成新的文件:
mysql> show variables like '%max_binlog%';
+----------------------------+----------------------+
| Variable_name | Value |
+----------------------------+----------------------+
| max_binlog_cache_size | 18446744073709547520 |
| max_binlog_size | 1073741824 |
| max_binlog_stmt_cache_size | 18446744073709547520 |
+----------------------------+----------------------+
希望查看进行了哪些数据库操作,可以使用mysql自带的工具mysqlbinlog.exe
D:\NNM5\MySQL5\bin>mysqlbinlog D:\NNM5\MySQL5\data\mysql-bin.000001
可以看到类似下面的输出,从中可以找到已有的操作。
SET TIMESTAMP=1415604740/*!*/;
update versions set ver = "1.0.2" where module = 'WebNATService'
/*!*/;
# at 12755
#141110 15:32:20 server id 1 end_log_pos 12782 Xid = 188
COMMIT/*!*/;
# at 12782
#141110 15:32:23 server id 1 end_log_pos 12850 Query thread_id=3 exec_time=0 error_code=0
SET TIMESTAMP=1415604743/*!*/;
BEGIN
/*!*/;
# at 12850
#141110 15:32:23 server id 1 end_log_pos 13123 Query thread_id=3 exec_time=0 error_code=0
SET TIMESTAMP=1415604743/*!*/;
另外MySQL安装目录data目录下的ib_logfile0和ib_logfile1虽然也是二进制文件,但是是记录innodb的操作,是不能使用mysqlbinlog.exe来查看的。
MySQL无法启动或者启动时的一些遗产可以查看MySQL安装目录data目录下的RCYF-2265.err,其中RCYF-2265是操作系统的用户名。
注意:
开启了二进制文件而且数据库中有函数或存储过程,可能在数据库运行过程中会出现下面的错误:
you *might* want to use the less safe log_bin_trust_function_creators variable
出现上面的异常时,my.ini中需要添加:log-bin-trust-function-creators=1
如果程序中有大量的sql操作时,记录日志就意味着大量的IO操作,会记录大量日志文件,影响软件的性能。慢查询的时间也需要考虑,太短会有问题,会记录到大部分的查询,影响系统的性能。
MySQL二进制日志binlog简单使用的更多相关文章
- 小记---------maxwell 一个可以实时读取mysql二进制日志binlog,并生成JSON格式的消息,作为生产者发送给kafka,Redis,文件或其他平台的应用程序
maxwell主要提供了下列功能 支持 SELECT * FROM table 的方式进行全量数据初始化 支持在主库发生failover后,自动回复binlog位置(GTID) ...
- mysql导出csv/sql/newTable/txt的方法,mysql的导入txt/sql方法...mysql备份恢复mysqlhotcopy、二进制日志binlog、直接备份文件、备份策略、灾难恢复.....................................................
mysql备份表结构和数据 方法一. Create table new_table_nam备份到新表:MYSQL不支持: Select * Into new_table_name from old_t ...
- mysql dba系统学习(6)二进制日志binlog之二
MySQL 5.5 中对于二进制日志 (binlog) 有 3 种不同的格式可选:Mixed,Statement,Row,默认格式是 Statement.总结一下这三种格式日志的优缺点.MySQL R ...
- mysql 开发进阶篇系列 39 mysql日志之二进制日志(binlog)
一.概述 二进制日志(binlog)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但是不包括数据查询语句, 语句以"事件"的形式保存,它描述了数据的更改过程, ...
- MySQL二进制日志总结
二进制日志简单介绍 MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句.二进制日志(binary log)中记录了对MySQL数据 ...
- MySQl Study学习之--MySQl二进制日志管理
MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log) a.它包括的内容及作用例如以下: 包括了全部更新了数据或者已经潜在更新了数据(比方没 ...
- 必须了解的mysql三大日志-binlog、redo log和undo log
日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息.mysql日志主要包括错误日志.查询日志.慢查询日志.事务日志.二进制日志几大类.作为开发,我们重点需要关注的是二进制日志( ...
- mysql 二进制日志后缀数字最大为多少
之前看到mysql二进制日志后面会加一个以数字递增为结尾的后缀,一直在想当尾数到达999999后会发生什么情况,先查了一下官网,对后缀有这样一句介绍:The server creates binary ...
- MySQL二进制日志的备份和恢复
二进制日志:记录数据库修改的相关操作,作用是即时点回复,主从复制 可以按时间滚动,也可以按大小滚动 server-id:服务器身份标识 一.二进制文件的删除方法,千万不要手动删除 PURGE BINA ...
随机推荐
- Android中与task相关的几个属性
1.与任务相关的属性 taskAffinity :修改任何给定Activity的关联 系统使用包名标识应用的默认任务关联: taskAffinity属性取字符串值,必须不同于包名: taskAffin ...
- event.target与event.srcElement
target 事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素.文档或窗口. 在标准浏览器下我们一般使用event.target就能解决,然而低版本IE浏览器总是会出些幺蛾子,这时候 ...
- Unity Object Pool
using System.Collections; using System.Collections.Generic; using UnityEngine; [System.Serializable] ...
- .31-浅析webpack源码之doResolve事件流(2)
放个流程图: 这里也放一下request对象内容,这节完事后如下(把vue-cli的package.json也复制过来了): /* { context: { issuer: '', compiler: ...
- mybatis sql循环的使用
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close. ...
- Hadoop问题:The auxService:mapreduce_shuffle does not exist
问题描述:The auxService:mapreduce_shuffle does not exist INFO mapreduce.Job: Task Id : attempt_146180833 ...
- java.lang.NoClassDefFoundError: javax/mail/Authenticator
摘录自:http://stackoverflow.com/questions/1630002/java-lang-noclassdeffounderror-javax-mail-authenticat ...
- git学习网址
git的学习网址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/
- C#总结(四)调用C++动态库
由于公司很多底层的SDK,都是C++开发,上层的应用软件却是C# Winform程序.在实际工作的过程中,就经常碰到了C# 程序调用C++ 动态库的问题.最近一直在和C++ 打交道,C# 怎么调用C+ ...
- [转]如何使用PHP实现javascript的escape和unescape函数
前端开发工程师都知道javascript有编码函数escape()和对应的解码函数unescape(),而php中只有个urlencode和urldecode,这个编码和解码函数对encodeURI和 ...