复制格式

基于语句级的复制

binlog=statement

优点:

(1)binlog文件较小。

(2)日志是包含用户执行的原始SQL,方便统计和审计。

(3)出现最早可binlog、兼容较好。

(4)binlog方便阅读,方便故障修复。

缺点:

存在安全隐患,可能导致主从不一致。

对一些系统函数不能准确复制或是不能复制:load file()、uuid()、user()、found rows()、sysdate()。

基于行级的复制

binlog=row

优点:

(1)相比statement更加安全的复制格式。

(2)在某些情况下复制速度更快(SQL复杂、表有主键)。

(3)系统的特殊函数也可以复制。

(4)更少的锁。

缺点:

(1)binary log比较大(MySQL 5.6 支持binlog row image)。

(2)单语句更新/删除的表执行过多,会形成大量binlog。

(3)无法从binlog看见用户执行的SQL(MySQL5.6增加一个新的Event binlog_rw_query_log_event记录用户的query)。

基于混合级复制

1.混个使用ROW和statement格式,对于DDL记录会stement,对于TABLE里的行操作记录为ROW格式。

2.如果使用innodb表,事务级别使用了read commeitted or read uncommitted 日志级别只能使用row格式。

3.单在使用row格式中DDL语句还是会记录成statement格式。

4.mixed格式,那么在以下几种情况会自动将binlog的模式由SBR模式改成RBR。

5.当DML语句更新一个NDB表时。

6.当函数中包含UUID()时。

7.2个及以上包含AUTO_INCREMENT字段的表被更新时。

8.行任何INSERT DELAYED语句时。

9.用UDF时。

10.视图中必须要求使用RBR时,例如创建视图是使用了UUID()函数。

采用哪种复制格式

生产环境里面全部采用 row格式。

时间: 2024-10-01 15:59:19

复制格式的相关文章

Origin复制图形格式

Origin复制图形格式 觉得有用的话,欢迎一起讨论相互学习~Follow Me 有时候需要画几张使用同样格式不同数据的表格,如果每次都去调整字体的大小,图形的标记和样式这样效率就很低.可以通过在一张图中复制格式的方式,快捷画图. 首先我们画好一张图 然后,右键,注意如果是选择ALL,那么连坐标轴和页背景都复制下来了,个人可以按照自己的需求,一般All Style Formats 差不多就够用了 接着,在另一个页面画图时,直接copy style就可以了~十分的方便,节省了手动调整格式的过程.特

MGR——Mysql的组复制之多主模式

组复制可以在两种模式下运行. 1.在单主模式下,组复制具有自动选主功能,每次只有一个 server成员接受更新.2.在多主模式下,所有的 server 成员都可以同时接受更新. 组复制与异步主从复制区别. 1.传统mysql主从复制,是在主节点执行和提交事务,然后把他们异步的发送到从节点,行复制的重新执行主节点的SQL语句,这是一个 shared-nothing 的系统,默认情况下所有 server 成员都有一个完整的数据副本. 2.半同步复制,它在协议中添加了一个同步步骤. 这意味着主节点在提

Mysql高可用复制原理及主从实例测试解析

一.Mysql复制简介 使用mysql复制功能可以将主数据的数据复制到多台从服务器上.默认情况下,采用异步传输方式,数据复制可以在各种不同的网路环境中进行.主从复制技术在企业生产中得到了广泛应用,它避免了数据库的单点故障,当一台服务器宕机,其他服务器一样可以提供稳定可靠的数据服务. 1 mysql 复制原理 Mysql复制功能是将数据分布在多个系统上,这种机制是通过将Mysql的某一台服务器(master)的数据复制到其它服务器(slaves)上来实现的.复制过程中一个服务器充当主服务器,而一个

MySQL复制

复制 复制是从一个MySQL服务器(master)将数据拷贝到另外一台或多台MySQL服务器(slaves)的过程.复制是异步进行的--slaves服务器不需要持续地保持连接来接收master的数据.依据配置的不同,可以复制所有数据库,或指定的数据库,甚至是某一数据库指定的表. 使用复制功能的目的在于: 向外扩展的解决方案 -- 通过在多台服务器之间分散负载来提高性能.在这种环境下,所有写和更新操作都在master服务器上进行,而读操作则发生在一台或多台slaves服务器上. 数据安全 -- 因

MySQL传统的同步复制的概念和要点

Mysql Classic Replication 一.传统复制的组成: 1.master server: 用户写数据. 生成binlog. 2.slave server: 接收master传来的binlog. 应用这些binlog从而达到重现master的用户操作. 二.传统复制的原理: 1.master跟新的数据,要写binlog. 2.slave在master注册一个i/o_thread进程,来捕获binlog日志的变更. 3.i/o_thread截取日志变更之后写入到本地的relay l

HBase复制

HBase复制是一种在不同HBase部署中复制数据的方法.它能够作为一种故障恢复的方法,并提供HBase层次的高可用性.在实际应用中,比如.能够将数据从一个面向页面的集群拷贝到一个MapReduce集群,后者能够同一时候处理新数据和历史数据.然后再自己主动将数据传回面向页面请求的集群. HBase复制中最主要的架构模式是"主推送"(master-push),由于每一个region server都有自己的WAL(或HLog).所以非常easy保存如今正在复制的位置.正如众所周知的解决方式

[MGR——Mysql的组复制之多主模式 ] 详细搭建部署过程

组复制可以在两种模式下运行. 1.在单主模式下,组复制具有自动选主功能,每次只有一个 server成员接受更新.2.在多主模式下,所有的 server 成员都可以同时接受更新. 组复制与异步主从复制区别. 1.传统mysql主从复制,是在主节点执行和提交事务,然后把他们异步的发送到从节点,行复制的重新执行主节点的SQL语句,这是一个 shared-nothing 的系统,默认情况下所有 server 成员都有一个完整的数据副本. 2.半同步复制,它在协议中添加了一个同步步骤. 这意味着主节点在提

涂抹mysql笔记-mysql复制特性

<>mysql复制特性:既可以实现整个服务(all databases)级别的复制,也可以只复制某个数据库或某个数据库中的某个指定的表对象.即可以实现A复制到B(主从单向复制),B再复制到C.也可以实现A直接复制到B和C(单主多从复制),甚至A的数据复制给B,B的数据也复制会A(双主复制) <>mysql复制处理数据时,有三种不同的模式: 1.基于语句复制(Statement Based Replication):基于实际执行的sql语句的模式方案简称SBR 2.基于记录复制(Ro

MySQL 5.7并发复制和mysqldump相互阻塞引起的复制延迟

本来MySQL BINLOG和SHOW PROCESSLIST命令属于八竿子打不着的两个事务,但在最近故障排查中,发现主库和从库已经存在很严重的复制延迟,但从库上显示slave_behind_master值为0,复制SQL线程与备份线程之间相互阻塞,但未报死锁. 在从库上执行SHOW PROCESSLIST发现复制的SQL线程等待锁,而等待SQL的WHERE条件竟然是类似于WHERE C1='ABC' AND C2>'2018-03-01' AND C2<'2018-03-26' 这种个范围查