MySQL主从同步加速 Transfer– FAQ

Q: Transfer是什么 A: 是一个解决MySQL原生主从同步延迟的方案。 Transfer本身是一个在MySQL源码上打的patch,可以用于当Slave,也可以用于当第三方工具,将Master的数据同步发给Slave。 利用多线程实现主从无延迟。 Q: Transfer目前的发布形式? A: Transfer

Q: Transfer是什么

A: 是一个解决MySQL原生主从同步延迟的方案。 Transfer本身是一个在MySQL源码上打的patch,可以用于当Slave,也可以用于当第三方工具,将Master的数据同步发给Slave。 利用多线程实现主从无延迟。

Q: Transfer目前的发布形式?

A: Transfer会在今年内开源,目前的发布形式是可执行的mysqld文件。 有两个版本,分别是官方的5.1.48 和 Percona Server 5.5.18.

Transfer.MySQL.5.1.48 下载地址   md5: 4d49f8d90e8bee8c870c1ef3a38cc979

Transfer.Percona.5.5.18 下载地址  md5: f4783971c38008e0780cca44a97368eb

最后更新日期 2012.9.12

(下载后先对一下md5 ^_^)

Q: Transfer是否会改变主库上的binlog在从库上的执行顺序,导致数据不一致?

A:会改变执行顺序。但Transfer保证对于相同记录的操作都是按顺序的,因此不会导致数据不一致。

Q: 我使用了transfer模式,但是transfer的错误日志为什么一直在输出 “trans->inner_events 3″,而从库上没有更新?

A: Transfer启动前需要保证Transfer里面要有与slave上相同的表和表结构,请先确认下,若无,则需要从slave把schema都dump 过去。

Q: 我用的是mysql5.1.48版本,我在transfer里面建表的时候会core dump

A: 若你用的是innodb_plugin版本,还需要替换ha_innodb_plugin.so.0.0.0 (lib/mysql/plugin 目录下) 下载地址

Q: 需要配置上做什么改变

A:请参考此文 http://www.linuxidc.com/Linux/2012-09/70627.htm

Q: 对主从库有什么配置限制

A:有以下限制

     1) 主库的binlog格式必须是row

     2) 主库的表必须有primary key

     3) 从库的 max_allowed_packet建议改为1G。主库的单个事务大小不能超过max_allowed_packet

Q: 我覆盖了mysqld后,Transfer整个实例起不来?

A:先确认一下mysqld是否有可执行权限, 若无,执行 chmod 755 mysqld.

Q: 我用slave模式,能够随时替换回原来的版本吗?

A: 如果要随时替换回原来的版本,可以把增加的参数都加上loose_前缀,这样替换mysqld,重启,start slave,就可以了。

Q: 什么情况下不适合用Transfer?

A: 其实一个简单的原则,如果你的原生从库不延迟,就不需要用(貌似是废话).

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;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/463840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
【Rust日报】2024-05-05 用于验证Rust代码正确性的工具
上一篇 2025年11月8日 04:41:00
Java 中的 Try-With-Resource 是什么?它与 Try-Catch-Finally 有何不同?
下一篇 2025年11月8日 04:41:13

相关推荐

  • MySQL中怎么启用并分析慢查询日志?

    本篇文章带大家了解一下mysql中的慢查询,介绍一下启用慢查询日志,并分析慢查询的方法,希望对大家有所帮助! Mysql有一项功能可以记录长时间查询的慢记录,具体是多长时间可以自己配置,但是慢查询也未必就是不良的SQL,也可能受其他查询影响,或者是系统资源限制导致的,它也是我们常用的性能分析工具。【…

    2026年9月4日
    400
  • 如何实现Linux网络故障转移 高可用网络配置实例

    如何实现Linux网络故障转移 高可用网络配置实例如何实现Linux网络故障转移 高可用网络配置实例如何实现Linux网络故障转移 高可用网络配置实例如何实现Linux网络故障转移 高可用网络配置实例

    在linux环境中构建可靠的网络服务需通过网络接口绑定和keepalived实现故障转移。1. 网络接口绑定(bonding/teaming)用于物理链路层冗余,常用模式包括active-backup(保障故障切换)、balance-rr(轮询负载均衡)和802.3ad(lacp标准,支持负载均衡与…

    2026年9月4日 用户投稿
    000
  • MySQL搞清什么是分区表?什么是临时表?

    什么是分区表?什么是临时表?下面本篇文章带大家了解一下mysql中的分区表和临时表,希望对大家有所帮助! 临时表 MySQL中有一种表叫做临时表,指的是用CREATE TEMPORARY TABLE语句创建的,它是一种特殊类型的表,它允许存储临时结果,可以在单个会话中多次重复使用,对其他连接是不可见…

    2026年9月4日
    200
  • 怎么快速使用MySQL Sandbox部署mysql

    使用MySQL Sandbox快速部署mysql MySQL Sandbox是一个非常简单快捷部署MySQL技术的一个工具套件,它可以让你在同一台机器上,更加快速的无干扰的去达到你的最终目的,比如,作为软件测试人员只是要测试软件系统的良好性不需要在mysql的安装上纠缠过多,不需要对MySQL数据库…

    用户投稿 2026年9月4日
    000
  • 详解mysql double master的配置方法

    mysql 的 double master 配置 假设两台机器  ip 分别为 机器一: 192.168.14.37  机器二:  192.168.14.38 ,服务器 为 linux rhel 5.9 在两台服务器中执行创建用户语句: mysql:>create user ‘repl’@’%…

    用户投稿 2026年9月4日
    100
  • 深入学习MySQL,了解InnoDB的逻辑存储结构

    本篇文章带大家了解一下innodb逻辑存储结构,希望对大家有所帮助! InnoDB逻辑存储结构 在InnoDB中我们创建的表还有对应的索引数据都存储在扩展名为.ibd 的文件中,这个文件路径可以先通过查mysql变量datadir来得到,然后进入对应的数据库名目录,会看到很多ibd,文件名就是表名,…

    2026年9月4日
    000
  • 教你怎么在线安装Mysql

    Mysql在线安装 一、 检查系统中是否已安装了mysql服务或开发包依赖等 [bigdata@bigdata-pro02 ~]$ rpm -qa | grep mysqlmysql-libs-5.1.73-3.el6_5.x86_64 如果检查存在一些安装包,则使用 rpm -e –n…

    用户投稿 2026年9月4日
    000
  • 深入浅析MySQL中常见的6种约束类型

    约束的字面意思就是规定或者限制某个事该如何去做,在MySQL中,约束就是对数据表中数据指定规则,也就是对数据进行限制,以此来确保可靠性,比如不允许某列出现Null值,实际中我们会遇到以下类型的约束。 NOT NULL : 确保列不能有NULL值CHECK : 确保列中的值满足特定条件UNIQUE :…

    2026年9月4日
    000
  • MySQL和Redis数据一致性:延迟双删与先改库再删缓存,哪种方案更优?

    MySQL和Redis数据一致性:如何选择延迟双删或先改库再删缓存? 在使用MySQL和Redis构建应用时,数据一致性至关重要。本文将对比分析两种常用的数据一致性方案:延迟双删和先修改数据库再删除缓存,并探讨其适用场景。 延迟双删策略 延迟双删是指先更新数据库,然后异步删除缓存。这种方法允许短暂的…

    2026年9月4日
    100
  • 详细解读MySql都有哪些顽疾

    MySql顽疾解读 1、默认编码集问题 在做前台数据展示的时候,查询全部select * from t_news可以查到所有内容。然后参数化查询的时候就不行。比如: Select * from t_news where title like ‘%源代码教育%’;查到0条数据。 Select * fr…

    用户投稿 2026年9月4日
    000
  • 深入学习MySQL中的逻辑查询

    查询是mysql中的最频繁操作,它也是用于构建delete、update的基础;而查询处理可分为逻辑查询和物理查询。今天我们就来给大家详细介绍一下逻辑查询,希望对大家有所帮助! 在MySQL中,查询是用于构建DELETE、UPDATE的基础,因为你要删除或者更新他们时,首先就是要查出这些记录,所以S…

    2026年9月4日
    000
  • 一文详解MySql分表、分库、分片和分区

                                                                                    一、前言 数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈。需要进行数据的处理,采用的手段是分区、分片、分库、分表。 二、分片(类…

    2026年9月4日
    000
  • MySQL学习之浅析联结查询和集合操作

    MySQL学习之浅析联结查询和集合操作MySQL学习之浅析联结查询和集合操作MySQL学习之浅析联结查询和集合操作MySQL学习之浅析联结查询和集合操作

    本篇带大家了解一下mysql中的联结查询和集合操作,希望对大家有所帮助! 联结查询 联结查询就是指两张或者以上的表之间进行匹配查询,一般称之为水平操作,就是最终结果会包含这几个表中所有的列,MySQL中有三种联结操作,交叉联结、内联结、外联结。【相关推荐:mysql视频教程】 交叉联结叫做CROSS…

    2026年9月4日 用户投稿
    100
  • MySQL数据迁移有哪些方案_如何保证数据一致性?

    MySQL数据迁移有哪些方案_如何保证数据一致性?MySQL数据迁移有哪些方案_如何保证数据一致性?MySQL数据迁移有哪些方案_如何保证数据一致性?MySQL数据迁移有哪些方案_如何保证数据一致性?

    mysql数据迁移需根据业务需求和数据量选择合适方案。一、逻辑导出导入(mysqldump + source)适用于小数据量,加–single-transaction参数可保证一致性快照;二、物理文件迁移(xtrabackup)适合大数据量且需不停机场景,恢复时注意版本与配置一致;三、主…

    2026年9月4日 用户投稿
    100
  • 深入了解MySQL中的索引(用处、分类、匹配方式)

    深入了解MySQL中的索引(用处、分类、匹配方式)深入了解MySQL中的索引(用处、分类、匹配方式)深入了解MySQL中的索引(用处、分类、匹配方式)深入了解MySQL中的索引(用处、分类、匹配方式)

    本篇文章带大家深入了解mysql中的索引,介绍一下索引的优点、用处、分类、技术名词以及匹配方式,希望对大家有所帮助! 对于高级开发,我们经常要编写一些复杂的sql,那么防止写出低效sql,我们有必要了解一些索引的基础知识。通过这些基础知识我们可以写出更高效的sql。【相关推荐:mysql视频教程】 …

    2026年9月4日 用户投稿
    000
  • mysql中什么是主从复制?怎么配置?

    本篇文章是mysql的进阶学习,介绍一下主从复制原理及其配置,希望对大家有所帮助! 对于现在的系统来说,在业务复杂的系统中,数据库往往是应用的瓶颈,单机往往是不能扛住大型系统的并发压力的,这时候需要从数据库方面下手解决其瓶颈,例如sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务…

    2026年9月4日
    000
  • 深入聊聊mysql索引为什么采用B+树结构

    深入聊聊mysql索引为什么采用B+树结构深入聊聊mysql索引为什么采用B+树结构深入聊聊mysql索引为什么采用B+树结构深入聊聊mysql索引为什么采用B+树结构

    本篇文章是mysql的进阶学习,介绍一下mysql使用b+树作为索引数据结构的原因,希望对大家有所帮助! 索引提高查询效率,就像我们看的书,想要直接翻到某一章,是不是不用一页一页的翻,只需要看下目录,根据目录找到其所在的页数即可。【相关推荐:mysql视频教程】 在计算机中我们需要一种数据结构来存储…

    2026年9月4日 用户投稿
    100
  • workbench是干什么的

    workbench是干什么的workbench是干什么的workbench是干什么的workbench是干什么的

    Workbench是一款专为MySQL设计的ER和数据库建模工具,它提供可视化设计、模型建立、以及数据库管理功能,有助于创建新的物理数据模型,并通过反向或正向工程和变更管理功能修改现有的MySQL数据库。 本教程操作环境:windows7系统、MySQL Workbench6.3.9版、DELL G…

    2026年9月4日 用户投稿
    100
  • Spring Boot连接MySQL数据库首次失败,后续却正常的原因是什么?

    Spring Boot连接MySQL数据库:首次连接失败,后续正常的原因及解决方法 在使用Spring Boot连接MySQL数据库时,常常遇到首次连接失败,后续连接却正常的情况。 这通常是因为MySQL服务器、JDBC驱动和数据库连接参数之间的兼容性问题导致的。 常见的错误信息是:“the las…

    2026年9月4日
    000
  • 深入解析MySQL中的LIMIT语句

    深入解析MySQL中的LIMIT语句深入解析MySQL中的LIMIT语句深入解析MySQL中的LIMIT语句深入解析MySQL中的LIMIT语句

    本篇文章带大家了解一下mysql中的limit语句,聊聊一个问题–mysql的limit这么差劲的吗?希望对大家有所帮助! 最近有多个小伙伴在答疑群里问了小孩子关于LIMIT的一个问题,下边我来大致描述一下这个问题。 问题 为了故事的顺利发展,我们得先有个表: CREATE TABLE …

    2026年9月4日 用户投稿
    000

发表回复

登录后才能评论
关注微信