Q: Transfer是什么
A: 是一个解决MySQL原生主从同步延迟的方案。 Transfer本身是一个在MySQL源码上打的patch,可以用于当Slave,也可以用于当第三方工具,将Master的数据同步发给Slave。 利用多线程实现主从无延迟。
Q: Transfer目前的发布形式?
A: 目前的发布形式是可执行的mysqld文件。
最后更新日期 2013-12-01
Transfer.2.3 下载地址
Q: Transfer模式下,主库执行grant 语句会导致同步停止?
报错信息为 Access denied for user 'xxx'@'xx.xx.xx.xx' (using password: YES). (Thanks @落叶思雪)
A: 在Transfer模式下需要在transfer中配置访问真实slave的帐号信息,该帐号必须是root权限,且必须包括grant权限。
Q: 怎么看多线程的效果?
A: mysqladmin --socket=run/mysql.sock -uroot extended-status --relative --sleep=1 | grep Com_ts
详细说明见 此文
Q: 若出现很多serial_number,怎么分析原因?
A: set global transfer_verbos= on; 看errlog的输出。
Q: Transfer是否会改变主库上的binlog在从库上的执行顺序,导致数据不一致?
A:会改变执行顺序。但Transfer保证对于相同记录的操作都是按顺序的,因此不会导致数据不一致。
Q: 我使用了transfer模式,但是transfer的错误日志为什么一直在输出 "trans->inner_events 3",而从库上没有更新?
A: Transfer启动前需要保证Transfer里面要有与slave上相同的表和表结构,请先确认下,若无,则需要从slave把schema都dump 过去。
Q: 需要配置上做什么改变
A:若使用Slave模式,可直接替换mysqld,无须修改配置
transfer 模式请参考此文
Q: 对主从库有什么配置限制
A:有以下限制
1) 主库的binlog格式必须是row
2) 主库的表建议有unique key ,若无则会降低提升的倍数
3) 主库的单个事务大小不能超过 1G
Q: 我覆盖了mysqld后,Transfer整个实例起不来?
A:先确认一下mysqld是否有可执行权限, 若无,执行 chmod 755 mysqld.
若提示errmsg.sys相关的错误,则需要替换对应based版本的errmsg.sys文件
Q: 我用slave模式,能够随时替换回原来的版本吗?
A: 若原先没有修改过任何参数,可以直接替换;若有,则可以把增加的参数都加上loose_前缀,这样替换mysqld,重启,start slave,就可以了。
Q: 什么情况下不适合用Transfer?
A: 其实一个简单的原则,如果你的原生从库不延迟,就不需要用(貌似是废话).
Q: 如何监控transfer是否延迟
A: 在Transfer里面检测是否同步请用 Master_Log_File=Relay_Master_Log_File 且 Read_Master_Log_Pos=Exec_Master_Log_Pos
Q: 我的测试场景下transfer的TPS比原生的还慢?感谢 @-周博
A: 若是从空表开始压力,并且你的BP开很大,io性能很好,更新语句简单,qps很高(这个case里是12w/s),此时单线程完全能够执行得飞快。Transfer模型中的生产+消费环节和多线程争用反而会导致性能下降(在这个case里面是6w/s)。
在实际线上场景中,更多的情况是io瓶颈,此时才能利用好多线程的效果,Transfer的效果才能体现出来。在我们一个线上场景的测试中是原生500/s,用Transfer后6000/s.
PS: 个人比较建议用源码安装,Percona Server的 源码地址
我的cmake参数
CFLAGS="-O3 -g -fno-exceptions -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
CXX=gcc
CXXFLAGS="-O3 -g -fno-exceptions -fno-rtti -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
export CFLAGS CXX CXXFLAGS
#cmake . -DCMAKE_INSTALL_PREFIX=/home/dingqi.lxb/mysql5 -DEXTRA_CHARSETS=all
cmake . \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DSYSCONFDIR:PATH=/home/mysql5 \
-DCMAKE_INSTALL_PREFIX:PATH=/home/mysql5 \
-DENABLED_PROFILING:BOOL=ON \
-DENABLE_DEBUG_SYNC:BOOL=OFF \
-DMYSQL_DATADIR:PATH=/home/dingqi.lxb/mysql5/data \
-DMYSQL_MAINTAINER_MODE:BOOL=OFF \
-DWITH_EXTRA_CHARSETS:STRING=all \
-DWITH_BIG_TABLES:BOOL=ON \
-DWITH_FAST_MUTEXES:BOOL=ON \
-DENABLE-PROFILING:BOOL=ON \
-DWITH_SSL:STRING=bundled \
-DWITH_UNIT_TESTS:BOOL=OFF \
-DWITH_ZLIB:STRING=bundled \
-DWITH_PARTITION_STORAGE_ENGINE:BOOL=ON \
-DWITH_PLUGINS=heap,csv,partition,innodb_plugin,myisam \
-DDEFAULT_CHARSET=gbk -DDEFAULT_COLLATION=gbk_chinese_ci -DWITH_EXTRA_CHARSETS=ALL \
-DENABLED_ASSEMBLER:BOOL=ON \
-DENABLED_LOCAL_INFILE:BOOL=ON \
-DENABLED_THREAD_SAFE_CLIENT:BOOL=ON \
-DENABLED_EMBEDDED_SERVER:BOOL=OFF \
-DWITH_CLIENT_LDFLAGS:STRING=all-static \
-DINSTALL_LAYOUT:STRING=STANDALONE \
-DCOMMUNITY_BUILD:BOOL=ON;
相关推荐
docker_compose搭建mysql主从复制
12.1: MySQL主从同步 、 主从同步模式 、 总结和答疑.docx
关于博客: https://blog.csdn.net/qq_42413011/article/details/126914080 的搭建脚本
Mysql主从同步备份策略 五月 18th, 2009 at 17:30 - 3,803 views 环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2 一. MySQL主服务器配置 1.编辑配置文件/etc/my.cnf # ...
文档内容:概念、二进制安装MySQL、对库的操作、对表的操作、表结构操作、表的插入、修改和删除记录、约束、查询、条件查询、函数、分组...以及高级应用的MySQL主从架构、读写分离、cluster集群、mgr集群、MHA高可用。
Linux运维-运维课程d6-MySQL主从复制架构-06-MySQL主从复制核心思路.mp4
mysql主从同步配置 mysql主从同步配置 mysql主从同步配置
mysql主从同步原理和一些主从同步出现问题解决方案,干货多多
Linux-Mysql主从同步详解...公司内部教学!!!!!!!
希望能帮助读者朋友们解决关于主从同步中的一些疑问。八怪写作风格很是严谨,几乎每篇都是从源码入手去剖析MySQL主从复制相关的知识点。 强烈推荐大家订阅本专栏 业界大咖推荐序 从2016年开始八怪(本名高鹏)经常...
详细描述MySQL主从同步配置过程
如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致slave mysql容器配置配置Dockerfile设置server_id,一般设置为
详细介绍windows下mysql主从同步备份步骤,简单,明了
Linux运维-运维课程d6-MySQL主从复制架构-08-MySQL主从复制之SLAVE从服务器软件的
mysql主从同步检查脚本 。主要运用于日常maysql运行主从同步状态检查。
MySQL主从复制类型简介入门
mysql主从同步搭建修改优化版.pdf
手把手说明如何在linux下配置MySQL的主从同步,windows下同样适宜,仅与Linux系统中的MySQL配置文件名不同而已
Mysql主从同步(1) - 概念和原理介绍 以及 主从_主主模式 部署记录 - 散尽浮华 - 博客园1