解析mysql二进制日志处理事务与非事务性语句的区别

在事务性语句执行过程中,服务器将会进行额外的处理,在服务器执行时多个事务是并行执行的,为了把他们的记录在一起,需要引入事务缓存的概念。在事务完成被提交的时候一同刷新到二进制日志。对于非事务性语句的处理。遵循以下3条规则:

1)如果非事务性语句被标记为事务性,那么将被写入事务缓冲。

2)如果没有标记为事务性语句,而且事务缓存中没有,那么直接写入二进制日志。

3)如果没有标记为事务性的,但是事务缓存中有,那么写入事务缓冲。

注意如果在一个事务中有非事务性语句,那么将会利用规则2,优先将该影响非事务表语句直接写入二进制日志。

(0)

相关推荐

  • mysql二进制日志文件恢复数据库

    二进制日志的文件的作用 mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句.如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所做的操作,再和数据库备份配合使用,即可再现用户操作,使数据库恢复. 二进制日志文件的弊端 二进制日志文件开启后,所有对数据库操作的记录均会被记录到此文件, 所以,当长时间开启之后,日志文件会变得很大,占用磁盘空间. 使用二进制日志文件恢复数据库 开启日志文件 mysql默认是不开启日志文件的功能的,

  • MySQL中Binary Log二进制日志文件的基本操作命令小结

    MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个: * 数据回复 * 主从数据库.用于slave端执行增删改,保持与master同步. 1.开启binary log功能 需要修改mysql的配置文件,本篇的实验环境是win7,配置文件为mysql安装目录\MySQL Server 5.1下的my.ini,添加一句log_bin = mysql_bin即可 eg: [mysqld] ...... log_bin = mysq

  • Mysql日志文件和日志类型介绍

    日志文件类型 MySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情: 日志文件 记入文件中的信息类型 错误日志 记录启动.运行或停止mysqld时出现的问题. 查询日志 记录建立的客户端连接和执行的语句. 更新日志 记录更改数据的语句.不赞成使用该日志. 二进制日志 记录所有更改数据的语句.还用于复制. 慢日志 记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询. 默认情况下,所有日志创建于mysqld数据目录中.通过刷新日志,你可以强制 mys

  • MySQL日志文件详解

    概述 日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等.本文主要描述MySQL的各种日志文件. MySQL日志文件分类 1.错误日志(Error Log) 2.二进制日志(Binary Log & Binary Log Index) 3.通用查询日志(query log) 4.慢查询日志(slow que

  • 解决Mysql收缩事务日志和日志文件过大无法收缩问题

    一.MS SQL SERVER 2005 --1.清空日志       exec('DUMP TRANSACTION 数据库名 WITH NO_LOG') --2.截断事务日志:      exec('BACKUP LOG 数据库名 WITH NO_LOG') --3.收缩数据库文件(如果不压缩,数据库的文件不会减小      exec('DBCC SHRINKDATABASE(数据库名) ') --4.设置自动收缩      exec('EXEC sp_dboption 数据库名,autosh

  • 教你自动恢复MySQL数据库的日志文件(binlog)

    如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据."mysqlbinlog:用于处理二进制日志文件的实用工具". 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径.如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出.启用二进制日志的选项为 --log-b

  • mysql日志文件在哪 如何修改MySQL日志文件位置

    MySQL日志文件相信大家都有很多的了解,MySQL日志文件一般在:/var/log/mysqld.log,下面就教您修改MySQL日志文件位置的方法,供您参考. 今天需要改MySQL日志文件的位置,发现在/etc/my.cnf中怎么也改不了. 后来发现MySQL日志位是指定的: [root@localhost etc]# ps aux|grep mysqld root 11830 0.5 0.0 4524 1204 pts/0 S 03:03 0:00 /bin/sh /usr/bin/mys

  • 解析mysql二进制日志处理事务与非事务性语句的区别

    在事务性语句执行过程中,服务器将会进行额外的处理,在服务器执行时多个事务是并行执行的,为了把他们的记录在一起,需要引入事务缓存的概念.在事务完成被提交的时候一同刷新到二进制日志.对于非事务性语句的处理.遵循以下3条规则: 1)如果非事务性语句被标记为事务性,那么将被写入事务缓冲. 2)如果没有标记为事务性语句,而且事务缓存中没有,那么直接写入二进制日志. 3)如果没有标记为事务性的,但是事务缓存中有,那么写入事务缓冲. 注意如果在一个事务中有非事务性语句,那么将会利用规则2,优先将该影响非事务表

  • Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍

    先来定义分页语句将要用到的几个参数: int currentPage ; //当前页 int pageRecord ; //每页显示记录数 以之前的ADDRESSBOOK数据表为例(每页显示10条记录): 一.SqlServe下载 分页语句 String sql = "select top "+pageRecord +" * from addressbook where id not in (select top "+(currentPage-)*pageRecor

  • 解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别

    mysql 中:UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)若无参数调用,则返回一个Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒数) 作为无符号整数.若用date 来调用UNIX_TIMESTAMP(),它会将参数值以'1970-01-01 00:00:00' GMT后的秒数的形式返回.date 可以是一个DATE 字符串.一个 DATETIME字符串.一个 TIMESTAMP或一个当地时间的YYMMDD 或YYYM

  • Mysql中二进制日志操作方法说明

    目录 二进制日志 开启二进制日志 查看二进制日志 删除二进制日志 1.根据编号删除二进制日志 2.根据时间删除二进制日志 3.删除所有二进制日志 临时开启与关闭二进制 二进制日志 二进制日志中以“事件”的形式记录了数据库中数据的变化情况,对于MySQL数据库的灾难恢复起着重要的作用. 开启二进制日志 可以在 my.cnf 文件或者 my.ini 文件中进行如下配置来开启二进制日志. [mysqld] log_bin = /data/mysql/log/bin_log/mysql-bin binl

  • mysql binlog二进制日志详解

    基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句. 作用: 1.二进制日志的主要目的是在恢复使能够最大可能地更新数据库,因为二进制日志包含备份后进行的所有更新. 2.二进制日志还用于在主复制服务器上记录所有将发送给从服务器的语句. 不良影响: 运行服务器时若启用二进制日志则性能大约慢1%. 如何启动: 通过 –log-bin=file选项可以启用 (更改my.ini文件) 日志位置 >>如果没有指定文件名,则Mysql使

  • 详解如何通过Mysql的二进制日志恢复数据库数据

    经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响.所以本文我们将和大家一起分享学习下如何通过Mysql的二机制日志(binlog)来恢复数据. 系统环境: 操作系统:CentOS 6.5 X64  (虚拟机): WEB服务:PHP+Mysql+apache: 网站:为方便,直接在本地用蝉知系统搭建一个DEMO站点: 操作步骤: 1.开启binlog功能及基本操作: 2.往站点添加数据: 3.刷新binlog日志: 4.删除

  • 深入解析MySQL 事务

    目录 事务的四大特性 ( ACID ) 脏读 不可重复读 幻读 MySQL的隔离级别 事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败. 事务的四大特性 ( ACID ) 原子性(Atomicity):一个事物是一个不可分割的单位,要么全都执行,要么都不执行: 一致性(Consistency):事务执行前后,数据处于合法的状态: 持久性(Isolation):事务执行完后,数据的修改是持久的,不会因为其他操作或故障而对其产生影响: 隔离性(Durability):多个事

  • 深入解析MySQL 事务

    目录 事务的四大特性 ( ACID ) 脏读 不可重复读 幻读 MySQL的隔离级别 事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败. 事务的四大特性 ( ACID ) 原子性(Atomicity):一个事物是一个不可分割的单位,要么全都执行,要么都不执行: 一致性(Consistency):事务执行前后,数据处于合法的状态: 持久性(Isolation):事务执行完后,数据的修改是持久的,不会因为其他操作或故障而对其产生影响: 隔离性(Durability):多个事

随机推荐