MySQL binlog三种模式

原文出自 http://www.abcdocker.com/abcdocker/213

MySQ binlog三种模式及设置方法

1.1 Row Level  行模式

日志中会记录每一行数据被修改的形式,然后在slave端再对相同的数据进行修改
优点:在row level模式下,bin-log中可以不记录执行的sql语句的上下文相关的信息,仅仅只需要记录那一条被修改。所以rowlevel的日志内容会非常清楚的记录下每一行数据修改的细节。不会出现某些特定的情况下的存储过程或function,以及trigger的调用和触发无法被正确复制的问题
缺点:row level,所有的执行的语句当记录到日志中的时候,都将以每行记录的修改来记录,会产生大量的日志内容。

1.2 Statement Level(默认)

每一条会修改数据的sql都会记录到master的bin-log中。slave在复制的时候sql进程会解析成和原来master端执行过的相同的sql来再次执行
优点:statement level下的优点首先就是解决了row level下的缺点,不需要记录每一行数据的变化,减少bin-log日志量,节约IO,提高性能,因为它只需要在Master上锁执行的语句的细节,以及执行语句的上下文的信息。
缺点:由于只记录语句,所以,在statement level下 已经发现了有不少情况会造成MySQL的复制出现问题,主要是修改数据的时候使用了某些定的函数或者功能的时候会出现。

1.3 Mixed 自动模式

在Mixed模式下,MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志格式,也就是在Statement和Row之间选择一种。如果sql语句确实就是update或者delete等修改数据的语句,那么还是会记录所有行的变更。

行模式和语句模式的区别

1.语句模式:
100万条记录
只需1条delete * from test;就可以删除100万条记录
2.row模式
100万条记录
记录100万条删除命令

1.4 企业场景如何选择binlog模式

1、互联网公司,使用MySQL的功能相对少(存储过程、触发器、函数)
选择默认的语句模式,Statement Level(默认)
2、公司如果用到使用MySQL的特殊功能(存储过程、触发器、函数)
则选择Mixed模式
3、公司如果用到使用MySQL的特殊功能(存储过程、触发器、函数)又希望数据最大化一直,此时最好选择Row level模式

行模式和语句模式的区别
1.语句模式:
100万条记录
只需1条delete * from test;就可以删除100万条记录
2.row模式
100万条记录
记录100万条删除命令




1.5 如何配置binlog

在数据库中查看binlog模式
  1. root@oldboy 11:28:05->show global variables like '%binlog_format%';
  2. +---------------+-----------+
  3. | Variable_name | Value     |
  4. +---------------+-----------+
  5. | binlog_format | STATEMENT |
  6. +---------------+-----------+
  7. 1 row in set (0.00 sec)
配置文件参数如下:
  1. [myslqd]
  2. log-bin=mysql-bin
  3. #binlog_format="STATEMENT"
  4. #binlog_format="ROW"
  5. #binlog_format="MIXED"
运行时在线修改(临时);
  1. mysql>SET GLOBAL binlog_format = 'ROW';
  2. mysql>show global variables like '%binlog_format%';
  3. 其他模式命令为:
  4. SET GLOBAL binlog_format = 'MIXED';
  5. SET GLOBAL binlog_format = 'STATEMENT';
解释:
GLOBAL=全局会话
SESSION=当前会话
检验ROW模式下binlog日志记录效果
  1. [root@db01 3306]# mysqlbinlog --base64-output="decode-rows" --verbose mysql-bin.000248
  2. /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
  3. /*!40019 SET @@session.max_insert_delayed_threads=0*/;
  4. /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
  5. DELIMITER /*!*/;
  6. # at 4
  7. #160628 11:06:52 server id 1  end_log_pos 107   Start: binlog v 4, server v 5.5.49-log created 160628 11:06:52 at startup
  8. # Warning: this binlog is either in use or was not closed properly.
  9. ROLLBACK/*!*/;
  10. # at 107
  11. #160628 11:07:09 server id 1  end_log_pos 177   Query   thread_id=1     exec_time=0     error_code=0
  12. SET TIMESTAMP=1467083229/*!*/;
  13. SET @@session.pseudo_thread_id=1/*!*/;
  14. SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
  15. SET @@session.sql_mode=0/*!*/;
  16. SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
  17. /*!\C utf8 *//*!*/;
  18. SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
  19. SET @@session.lc_time_names=0/*!*/;
  20. SET @@session.collation_database=DEFAULT/*!*/;
  21. BEGIN
  22. /*!*/;
  23. # at 177
  24. # at 223
  25. #160628 11:07:09 server id 1  end_log_pos 223   Table_map: `oldboy`.`sc` mapped to number 33
  26. #160628 11:07:09 server id 1  end_log_pos 785   Update_rows: table id 33 flags: STMT_END_F
  27. ### UPDATE `oldboy`.`sc`
  28. ### WHERE
  29. ###   @1=1
  30. ###   @2=1001
  31. 显示的比较详细

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

contenttype添加field

1 $splist.contenttypes["News"].fieldlinks.add($fieldlink) contenttypes中添加field的方法。 下面这种则不起作用 1 $splist.contenttypes["News"].fields.add($spfield) http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spcontenttype.…

虚拟视频驱动程序vivi.c源码分析

虚拟视频驱动程序vivi.c源码分析以下先把上一篇文章中的最后一段,放在这里利于程序源码的分析: vivi.c 虚拟视频驱动程序----- 此代码模拟一个真正的视频设备V4L2 API (位于drivers/media/video目录下) 入口:int __init vivi_init(void) …

Cobar部署与测试

原文出自 http://www.abcdocker.com/abcdocker/84 Cobar部署与测试 一、Cobar介绍 1.1功能概述: Cobar是关系型数据的分布式处理系统,它可以在分布式的环境下看上去像传统数据库一样为您提供海量数据服务。 1.1.1 Cobar核心功能: 分布…

深度css:关于浮动(float,clear)的图形化理解

接触CSS以来,有人说浮动始终给人一种神秘的感觉,正因为有了它的一成不变的table布局开始了渐渐被divcss取代,它是控制传说中文本流核心和关键要素,懂得控制“块”的流动和布局即等于控制了网页的排版和布局。今天就以简单图文形式…

amoba读写分离

原文出自 http://www.abcdocker.com/abcdocker/81 1.AMOEBA是什么 Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba for Mysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的 时候充当SQL路由功能,专注于分布…

js的parseInt函数结果为0很奇怪的问题

当执行的代码为parseInt("08")时,结果为0 而执行的代码为parseInt("0X")时,其中X为1~9之间除过8的数字,结果都是正常的数字 不太明白为什么会出现这样的结果 参考:http://lhb-ljf.iteye.com/blog/1703631 今天…

MySQL事务及字符集介绍

原文 http://www.abcdocker.com/abcdocker/77 事务介绍 简单来说,事务就是指逻辑上的一组SQL语句操作,组成这组操作的各个SQL语句,执行时要么全成功要么全失败。 MySQL5.5支持事务的引擎:Innodb/ndb事务四大特性(ACID&…

为了IT人的荣耀,请大力支持《中国人的紧箍咒》!理由如下——

博友们请注意——老孙又出新书了! 先前,老孙从技术跨界到管理,出了一本《知道力》;如今又从管理跨界到文化,新出一本文化书《中国人的紧箍咒》。 作为登陆文化新战场的IT第一人,老孙正在诺曼底滩头独自奋战…

MyCat介绍与配置(精)

Mycat 前生今世如果我有一个32核心的服务器,我就可以实现1个亿的数据分片,我有32核心的服务器么?没有,所以我至今无法实现1个亿的数据库分片。---Mycats Plan Mycat 简介Mycat是什么? 从定义和分类来看,它是…

Linux 启动顺序

1,BIOS初始化 2,MBR(CENTOS 5.5 的bootloader分区表结束位512B) 3,GRUB (1)加载内核kernel为只读 (2)加载RAMDISK 4,INIT进程 运行文件如下: /etc…

mysql-mmm 集群高可用软件介绍

mysql-mmm 集群高可用软件介绍 MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器)关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个…

搜索提示时jquery的focusout和click事件冲突问题完美解决

在主流的搜索引擎上搜索时,输入内容,往往会弹出智能提示。输入框为input,智能提示区域为suggest。接下来一般有两种操作: 1.选择某一提示,则把内容复制到input中,自动关闭suggest; 2.点击网页其…

高可用MySQL MHA介绍

MySQL MHA介绍 MHA简介 MHA是一位日本MySQL大牛用Perl写一套MySQL故障切换方案,来保证数据库系统的高可用,在宕机的事件内(通常10-30秒),完成故障转意,部署MHA,可避免主从一致性问题&#xff0c…

Tizen有用的网站

Tizen的会议上周在旧金山,打开网页,因为向公众Tizen的开发人员手机现在有很多未来的相关信息。 与其他现在介绍一些有用的网站获取相关信息。 1 Tizen.org https://www.tizen.org/另一种是现在的官方网站。 开放haetguyo,写在九月底&#xff…

Xtrabackup安装以及应用

Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。 xtrabackup官方网址:https://www.percona.com/downloads/XtraBackup/MySQL Ba…

控件列[Coolite]上传文件

首先声明,我是一个菜鸟。一下文章中出现技术误导情况盖不负责 1 .配置及单简局布 2.经常用使组件绍介 2.1 Dropdownlist结合TreePanel 2.2 拟模进度条 2.3 上传文件 2.4 TabPanel基本用法 2.5 行执台后程序示提等待息信,运行终了消逝 2.6 历遍清空ext.net textbox控…

MySQL双主配置

双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步。对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致。 这样做的好处多。 1. 可以做灾备,其中一个坏了可以切换到另一个。 2. 可以做负载均衡&…

Ubuntu 12.10连接米2

通过USB线与米2手机连接后,在终端运行:lsusb 会看到一个新的USB设备,包含信息:2717:9039 首先在/etc/udev/rules.d/目录下面创建一个文件:52-android.rules (名称为51,52,53都无所谓…

MySQL常见错误代码(转)

MySQL常见错误代码及代码说明 1005&#xff1a;创建表失败 1006&#xff1a;创建数据库失败 1007&#xff1a;数据库已存在&#xff0c;创建数据库失败<可以忽略 1008&#xff1a;数据库不存在&#xff0c;删除数据库失败<可以忽略 1009&#xff1a;不能删除数据库文件导…

DSPBuilder笔记

一、位宽设置 在DSPBuilder中&#xff0c;数据在内部采用二进制定点数表示方法&#xff0c;数据可以设置成无符号整数、有符号整数和有符号小数等&#xff0c;其中有符号数由符号位、整数位和小数位组成&#xff08;有符号整数的小数位为0&#xff09;&#xff0c;位宽根据需求…