MySQL 5.5 中对于二进制日志 (binlog) 有 3 种不同的格式可选:Mixed,Statement,Row,默认格式是 Statement.总结一下这三种格式日志的优缺点. MySQL Replication 复制可以是基于一条语句 (Statement Level) ,也可以是基于一条记录 (Row Level),可以在 MySQL 的配置参数中设定这个复制级别,不同复制级别的设置会影响到 Master 端的 bin-log 日志格式. 1. Row日志中会记录成每一行数据被修改…
主服务器的日志格式用哪种好? 有 statement,row, mixed3种,其中mixed是指前2种的混合. 以insert into xxtable values (x,y,z)为例, 影响: 1行,且为新增1行, 对于其他行没有影响. 这个情况,用row格式,直接复制磁盘上1行的新增变化. 以update xxtable set age=21 where name=’sss’; 这个情况,一般也只是影响1行. 用row也比较合适. 以过年发红包,全公司的人,都涨薪100元. update…
背景: 一个简单的主从结构,主的binlog format是Mixed模式,在执行一条简单的导入语句时,通过mysqlbinlog导出发现记录的Binlog全部变成了Row的格式(明明设置的是Mixed),现在就说说在什么情况下Binlog的Mixed模式会转变记录成Row格式. 概念: binlog format有三种形式:Statement.Mixed.Row,具体的信息可以自行到网上搜查. 分析(本文碰到的案例): 查看MySQL binlog format dba : dba_test…
1:错误日志大量错误 150602 14:40:02 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... SELECT... ON DUPLICATE KEY UPDATE is unsafe because the order in which rows are retrieved by the SELECT…
pt-archiver官方地址:https://www.percona.com/doc/percona-toolkit/3.0/pt-archiver.html 介绍:归档数据,比如将一年前的数据备份到其他mysql实例+删除一年前的数据,原表只保留最近一年,更好的方案我觉得应该是对大表做分区表.更多详细介绍参考官方或者其他博客. 常用的参数 pt-archiver --source h=$source_host,P=$source_port,u=$source_user,p=$source_p…
两种模式的对比: Statement 优点 历史悠久,技术成熟: 产生的 binlog 文件较小: binlog 中包含了所有数据库修改信息,可以据此来审核数据库的安全等情况: binlog 可以用于实时的还原,而不仅仅用于复制: 主从版本可以不一样,从服务器版本可以比主服务器版本高: Statement 缺点: 不是所有的 UPDATE 语句都能被复制,尤其是包含不确定操作的时候: 调用具有不确定因素的 UDF 时复制也可能出现问题: 运用以下函数的语句也不能被复制: * LOAD_FILE(…
在MYSQL中,执行建表语句时CREATE TABLE  aaaa  AS SELECT * FROM menu;  报: 错误代码: 1786Statement violates GTID consistency: CREATE TABLE ... SELECT. java后台报: Caused by: java.sql.SQLException: Statement violates GTID consistency: CREATE TABLE ... SELECT.        at c…
注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接: package day02_statement; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import util.JdbcUtil; /** * 使用statement执行DQL语句: * select * @author mzy * */ pub…
注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接: package day02_statement; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import util.JdbcUtil; /** * 使用Statement对象执行DML语句(insert/update/delete) * @author mzy * */ public class Dem…
Advantages of statement-based replication 1 技术成熟 2 对于大量的更新删除等操作,仅仅会写入少量的变更结果,加速日志获取或者备份的速度 3 日志文件包含了所有更改的语句,可以用来做验证数据库 Disadvantages of statement-based replication 1.1 在UDF自定义函数中的语句 1.2 在DELETE和UPATE中没有使用order by 进行限制的字句 1.3 以下函数不能在语句格式中进行复制 load_fil…