- 浏览: 246164 次
-
文章分类
最新评论
mysqld在每个二进制日志名后面添加一个数字扩展名。每次你启动服务器或刷新日志时该数字则增加。如果当前的日志大小达到max_binlog_size,还会自动创建新的二进制日志。如果你正使用大的事务,二进制日志还会超过max_binlog_size:事务全写入一个二进制日志中,绝对不要写入不同的二进制日志中。
为了能够知道还使用了哪个不同的二进制日志文件,mysqld还创建一个二进制日志索引文件,包含所有使用的二进制日志文件的文件名。默认情况下与二进制日志文件的文件名相同,扩展名为'.index'。你可以用--log-bin-index[=file_name]选项更改二进制日志索引文件的文件名。当mysqld在运行时,不应手动编辑该文件;如果这样做将会使mysqld变得混乱。
max_binlog_size默认大小是1G,http://dev.mysql.com/doc/refman/ ... ion.html#binary-log
InnoDB跟MyISAM引擎不一样的。。。。InnoDB引擎是先把日志写到日志缓存中,然后是根据是执行comit还是rollback,再根据设置的..innodb_flush_commit=N,N的值
觉得什么时候写到日志文件中。
我去帮你找下原话吧。。毕竟我的理解未必就是正确的
使用道具 举报
jinguanding
临时会员
签到天数: 25 天
[LV.4]偶尔看看III
阅读权限10积分34主题0帖子853日志0
串个门加好友打招呼发消息
12楼
发表于 2008-5-12 20:57:47 |只看该作者
对非事务表的更新执行完毕后立即保存到二进制日志中。对于事务表,例如BDB或InnoDB表,所有更改表的更新(UPDATE、DELETE或INSERT) 被缓存起来,直到服务器接收到COMMIT语句。在该点,执行完COMMIT之前,mysqld将整个事务写入二进制日志。当处理事务的线程启动时,它为缓冲查询分配binlog_cache_size大小的内存。如果语句大于该值,线程则打开临时文件来保存事务。线程结束后临时文件被删除。
Binlog_cache_use状态变量显示了使用该缓冲区(也可能是临时文件)保存语句的事务的数量。Binlog_cache_disk_use状态变量显示了这些事务中实际上有多少必须使用临时文件。这两个变量可以用于将binlog_cache_size调节到足够大的值,以避免使用临时文件。
max_binlog_cache_size(默认4GB)可以用来限制用来缓存多语句事务的缓冲区总大小。如果某个事务大于该值,将会失败并 回滚。
如果你正使用更新日志或二进制日志,当使用CREATE ... SELECT or INSERT ... SELECT时,并行插入被转换为普通插入。这样通过在备份时使用日志可以确保重新创建表的备份。
请注意MySQL 5.1值的二进制日志格式与以前版本的MySQL不同,因为复制改进了。参见6.5节,“不同MySQL版本之间的复制兼容性”。
默认情况下,并不是每次写入时都将二进制日志与硬盘同步。因此如果操作系统或机器(不仅仅是MySQL服务器)崩溃,有可能二进制日志中最后的语句丢失了。要想防止这种情况,你可以使用sync_binlog全局变量(1是最安全的值,但也是最慢的),使二进制日志在每N次二进制日志写入后与硬盘同步。参见5.3.3节,“服务器系统变量”。即使sync_binlog设置为1,出现崩溃时,也有可能表内容和二进制日志内容之间存在不一致性。例如,如果使用InnoDB表,MySQL服务器处理COMMIT语句,它将整个事务写入二进制日志并将事务提交到InnoDB中。如果在两次操作之间出现崩溃,重启时,事务被InnoDB回滚,但仍然存在二进制日志中。可以用--innodb-safe-binlog选项解决该问题,可以增加InnoDB表内容和二进制日志之间的一致性。(注释:在MySQL 5.1中不需要--innodb-safe-binlog;由于引入了XA事务支持,该选项作废了)。
该选项可以提供更大程度的安全,还应对MySQL服务器进行配置,使每个事务的二进制日志(sync_binlog =1)和(默认情况为真)InnoDB日志与硬盘同步。该选项的效果是崩溃后重启时,在滚回事务后,MySQL服务器从二进制日志剪切 回滚的InnoDB事务。这样可以确保二进制日志反馈InnoDB表的确切数据等,并使从服务器保持与主服务器保持同步(不接收 回滚的语句)。
请注意即使MySQL服务器更新其它存储引擎而不是InnoDB,也可以使用--innodb-safe-binlog。在InnoDB崩溃恢复时,只从二进制日志中删除影响InnoDB表的语句/事务。如果崩溃恢复时MySQL服务器发现二进制日志变短了(即至少缺少一个成功提交的InnoDB事务),如果sync_binlog =1并且硬盘/文件系统的确能根据需要进行同步(有些不需要)则不会发生,则输出错误消息 ("二进制日志<名>比期望的要小")。在这种情况下,二进制日志不准确,复制应从主服务器的数据快照开始。
写入二进制日志文件和二进制日志索引文件的方法与写入MyISAM表相同。参见A.4.3节,“MySQL处理磁盘满的方式”。
发表评论
-
RAID write back write through
2014-07-09 13:44 962RAID write back指的是raid控制器能够将写 ... -
druid PreparedStatementCache设置
2014-07-08 14:34 3631druid的连接池配置中有PreparedStatement ... -
innodb 插入缓冲
2014-07-01 16:07 709插入缓冲是InnoDB存储引 ... -
Innodb配置,将数据与日志放在不同磁盘可以加快性能
2012-12-06 19:23 753An advanced my.cnf example ... -
character_set_client character_set_connection character_set_results
2012-11-19 20:21 3257之前一直纠结各种编码的却别:character_set_c ... -
amoeba-mysql的安装使用和读写分离(转)
2012-11-16 16:11 1044http://blog.csdn.net/chen861201 ... -
mysqlcheck myisamchk
2012-11-07 17:45 768mysqlcheck的功能类似myisamchk,但其工作不同 ... -
mysqlbinlog乱码
2012-11-06 19:49 5458使用mysqlbinlog查看二进制文件发现 /*!40019 ... -
auto-rehash
2012-11-05 19:20 4148mysql auto-rehash:读取表信息和列信 ... -
MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
2012-09-19 20:21 781MySQL主从复制(Master-Slave)与读写分离(My ... -
mysql显示见表语句
2012-09-03 19:13 1192show create table mysql.slow_l ... -
mysql主从同步延迟问题
2012-08-30 14:18 865见http://www.ixpub.net/thread-13 ... -
备份恢复数据库
2012-08-28 20:18 838全备份 mysqldump -utest -ptest -- ... -
mysql用户修改密码
2012-08-28 19:37 774mysqladmin -utest -ptest passwo ... -
set session sql_log_bin=0
2012-08-21 15:22 4051引自http://blog.sina.com.cn/s/blo ... -
字符串转换成date
2012-08-15 20:00 934SELECT STR_TO_DATE('Tue 05 June ... -
selecting top N records per group
2012-08-15 18:56 926http://code.openark.org/blog/my ... -
MySQL DELAY_KEY_WRITE
2012-08-02 20:03 1145MySQL DELAY_KEY_WRITE 引自http:// ... -
Mysql Merge表的优点
2012-07-09 13:52 965在Mysql数据库中,Mysql Me ... -
MySQL线程共享内存参数
2012-07-03 16:48 899MySQL线程共享内存参数 引用 http://mxohy. ...
相关推荐
把二进制文件转换为文本16进制文本输出,用于查看设备记录的日志,要求每一行字节数相等,打开日志文件,把窗体拉倒合适的宽度,可以方便的看清每一行的数据.
一、查看二进制日志文件 使用以下命令来查看二进制日志文件: ```sql SHOW BINARY LOGS; ``` 这将显示当前 MySQL 服务器上的所有二进制日志文件。 二、查看二进制日志事件 使用以下命令来查看二进制日志事件: ...
mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句。如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所做的操作,再和数据库备份配合...
`mysqlbinlog`是MySQL提供的一款命令行实用程序,专门用于处理和解析二进制日志文件。 在MySQL配置文件`my.cnf`或`my.ini`中启用二进制日志记录,需要在`mysqld`段落中添加`log-bin`选项,指定日志文件的名称或路径...
MySQL二进制日志文件的使用和mysqlbinlog工具的应用 MySQL二进制日志文件是MySQL数据库中的一种日志文件,用于记录数据库的所有操作,包括增、删、改、查等操作。二进制日志文件的主要作用是用于数据库的备份和恢复...
例如,调试程序时,可能需要查看二进制日志文件的内容,或者分析硬件设备产生的原始数据。 该转换器的工作原理基于数据解码和编码的概念。首先,它读取二进制文件的每个字节,并将其转换为相应的十六进制、ASCII或...
MySQL二进制日志是数据库管理系统中用于记录所有更改数据的事件序列的一种机制,它对于数据库的备份、恢复以及故障排查至关重要。二进制日志查看工具则为开发者和DBA提供了一种方便的方式来分析、理解和操作这些日志...
2. **应用二进制日志**:接下来,使用`mysqlbinlog`工具解析二进制日志文件(例如`gbichot2-bin.000007`和`gbichot2-bin.000008`),并将其中的SQL事件导出为可读文本格式,然后通过管道(`|`)传递给`mysql`客户端...
它可以打开和查看任何类型的二进制文件,无论是程序可执行文件、日志文件还是数据块。通过这款工具,用户可以逐字节地浏览文件,查看其内部结构,并进行必要的检索和修改。这对于软件调试、数据分析、病毒分析以及...
**二进制文件读取与Binary Viewer** 在计算机科学领域,二进制文件是指由机器可以直接理解和执行的数据格式,它们不包含任何人类可读的文本信息。这些文件通常包括音频、视频、图像、程序和系统文件等。由于二进制...
2. **下载二进制日志文件**:使用MySQL客户端工具(如`mysqlbinlog`)下载所需的二进制日志到本地。例如,`mysqlbinlog --no-defaults --raw --start-position=LOG_POS LOG_FILE > binlog_file_name`。 3. **解析二...
"二进制文件查看器"是一款专为查看和分析二进制数据而设计的应用程序,它允许用户以二进制和十六进制模式检查文件内容。这种工具在处理非文本格式的数据,如图像、音频、视频文件或者系统底层的数据时非常有用。下面...
MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个: * 数据回复 * 主从数据库。用于slave端执行增删改,保持与master同步。 1.开启binary log功能 需要修改mysql的...
在二进制文件中搜索特定的数据是计算机编程中常见的任务,特别是在分析日志、调试程序或处理二进制数据时。Python作为一种强大的脚本语言,提供了丰富的库和工具来处理这种工作。本教程将深入探讨如何使用Python进行...
在处理文件格式转换时,如将二进制日志文件转换为人类可读的文本格式;或者在网络通信中,理解二进制数据如何编码成HTTP请求或TCP/IP包的头部信息。 二进制到文本的转换通常涉及对每个字节进行解码,对于ASCII来说...
日志解析工具是一个可以执行的exe文件,它根据二进制文件中的日志ID,在下载到本地的数据字典中查找对应的日志静态部分,然后将数据字典中的静态内容和二进制日志文件中的动态内容结合成一条完整的日志。 在设备上...
`dst.txt`可能是合并工具的说明文档或者记录合并过程的日志文件。 了解以上知识点后,我们可以使用二进制文件合并工具有效地处理和组合多个二进制文件,以满足特定的应用场景。在实际应用中,这类工具的灵活性和...
MySQL二进制文件开启及查看详解,就解释了如何分析日志文件 .