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

在事务性语句执行过程中,服务器将会进行额外的处理,在服务器执行时多个事务是并行执行的,为了把他们的记录在一起,需要引入事务缓存的概念。在事务完成被提交的时候一同刷新到二进制日志。对于非事务性语句的处理。遵循以下3条规则:
1)如果非事务性语句被标记为事务性,那么将被写入事务缓冲。
2)如果没有标记为事务性语句,而且事务缓存中没有,那么直接写入二进制日志。
3)如果没有标记为事务性的,但是事务缓存中有,那么写入事务缓冲。
注意如果在一个事务中有非事务性语句,那么将会利用规则2,优先将该影响非事务表语句直接写入二进制日志。
相关推荐
-
mysql二进制日志文件恢复数据库
二进制日志的文件的作用 mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句.如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所做的操作,再和数据库备份配合使用,即可再现用户操作,使数据库恢复. 二进制日志文件的弊端 二进制日志文件开启后,所有对数据库操作的记录均会被记录到此文件, 所以,当长时间开启之后,日志文件会变得很大,占用磁盘空间. 使用二进制日志文件恢复数据库 开启日志文件 mysql默认是不开启日志文件的功能的,
-
解决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日志文件在哪 如何修改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数据库的日志文件(binlog)
如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据."mysqlbinlog:用于处理二进制日志文件的实用工具". 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径.如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出.启用二进制日志的选项为 --log-b
-
Mysql日志文件和日志类型介绍
日志文件类型 MySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情: 日志文件 记入文件中的信息类型 错误日志 记录启动.运行或停止mysqld时出现的问题. 查询日志 记录建立的客户端连接和执行的语句. 更新日志 记录更改数据的语句.不赞成使用该日志. 二进制日志 记录所有更改数据的语句.还用于复制. 慢日志 记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询. 默认情况下,所有日志创建于mysqld数据目录中.通过刷新日志,你可以强制 mys
-
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数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定位mysqld内部发生的事件,数据库性能故障,记录数据的变更历史,用户恢复数据库等等.本文主要描述MySQL的各种日志文件. MySQL日志文件分类 1.错误日志(Error Log) 2.二进制日志(Binary Log & Binary Log Index) 3.通用查询日志(query log) 4.慢查询日志(slow que
-
解析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 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):多个事
-
mysql binlog(二进制日志)查看方法
例如,在创建新表或更新现有表上的数据时,这些事件将存储在mysql binlog中,也就是MySQL数据库的二进制日志. 二进制日志在MySQL复制中非常有用,主服务器将数据从二进制日志发送到远程服务器. 当您在MySQL中执行任何类型的恢复操作时,您还将处理二进制日志文件. mysqlbinlog命令用于以可读的用户友好格式查看二进制日志的内容. 那么我们怎么获取查看mysql binlog(二进制日志)? 下面给大家介绍获取当前二进制日志列表的命令方法. 从mysql执行以下show bin
随机推荐
- 使用JavaScript的AngularJS库编写hello world的方法
- apache虚拟主机配置一例
- java 微信随机红包算法代码实例
- 我整理的PHP 7.0主要新特性
- 超级好用的一个php上传图片类(随机名,缩略图,加水印)
- js实现两个值相加alert出来精确到指定位
- php正则表达式(regar expression)
- jQuery后代选择器用法实例
- 写得不错的jquery table鼠标经过变色代码
- 解析dedeCMS验证码的实现代码
- Oracle复合索引与空值的索引使用问题小结
- Python 3.6 读取并操作文件内容的实例
- 浅谈Django+Gunicorn+Nginx部署之路
- node 标准输入流和输出流代码实例
- Spring Boot整合Spring Data JPA过程解析
- 浅谈Python脚本开头及导包注释自动添加方法
- Element-UI踩坑之Pagination组件的使用
- 解决使用json-lib包实现xml转json时空值被转为空中括号的问题
- 浅谈Vue.use的使用
- Pyinstaller打包.py生成.exe的方法和报错总结
其他
- cookie最大容量
- 小程序中webview页面多层history返回问题
- idea pom更改时自动更新
- python 数组平均分为n组
- vue3 点击实时监听
- idea回退git分支版本
- python listwidget焦点下移动
- python网页表格组件
- php获取cookie的值
- 易语言dll字节集到指针
- post发arraylist请求
- @Update注解批量更新始终报错
- jquery 光标最后
- vue项目转react
- Javascript获取IP
- java8 对象多属性去重合并
- python 提取区域外接矩形
- axios不能用use 只能修改原型链
- laravel model 查询某一列的值
- springboot实现查询到的值赋值给另外一个