IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Transfer 2.0 介绍

淘宝核心系统团队博客 2012-09-18 23:53:27 累计浏览 2,521 次
本机暂存

           Transfer是一个主从多线程同步工具,直接patch在MySQL中。2011年开发完成。于去年的12.12上线,并撑住高峰期主从,保证从库无延迟,使得应用能够直接从从库上读数据。

           对Transfer1.0背景有兴趣的同学可以看我以前的一篇博客

    新功能

           Transfer第一版本存在两个可改进的点:单表并发和事务支持。

    a)      Transfer2.0支持单表并发,基本原理就是按照更新行的主键id (因此有一个限制是同步的表必须要有主键)。

    b)      Transfer2.0支持slave回放主库事务时以事务为单位执行。

     内部基本结构

    Transfer1.0

    原图已失效

    为什么不直接写到slave里面?由于DBA同学觉得直接写在slave里面担心数据安全性,因此改造成第一个第三方工具。

    Transfer2.0

    原图已失效

           外部主库和备库的行为相同,Trasnfer内部改为

    性能效果

           上周五在一个紧急项目中由于其他方案出问题,上线测试,从库tps性能从300+提升到2000+。

    安装配置

           Transfer的推荐配置结构是

          Master  ==> Transfer ==> Slave

           假设你已经有Master和Slave,Transfer建议部署在slave同一个机器,当时我们上线是这么配置的,当然如果你机器多,也可以考虑放在单独一个机器,只是不必要。

           Transfer的安装步骤:

    a)    附件中三个mysqld,分别是官方版本mysql-5.1.48, percona 版本5.5.18和淘宝MySQL分支5.5.18打入patch后生成的三个bin文件。

       需要你先安装你选择的对应的官方版本,然后替换mysqld。

    b)   My.cnf里面新增如下几行配置:

    remote_slave_hostname = 127.0.0.1

     remote_slave_username = root

     remote_slave_password =

     remote_slave_port = 3306

     transfer_slave_thread = 16

     slave_skip_errors=1062,1032

    c)      将Slave中需要同步的表结构,导入到Transfer中。注意,只需要表结构,不需要数据。

            其中remote_slave系列配置的是一个有super权限访问Slave的帐号。

           重启即可。

    在Transfer中的操作与在Slave中原本的操作相同,只是现在的关系是,Transfer注册为Master的主库,得到操作步骤后,更新Slave.

    Transfer变身Slave

           有的同学说我不想维护多一个实例。其实就so easy,只要把trasnfer的目标指向自己即可。

     为了安全起见,配置规则必须是

     remote_slave_hostname配置为127.0.0.1 且 remote_slave_port与Transfer端口相同。

     当然,如果Transfer自己是slave,配置时还少了一步拷贝表结构

    三个可执行文件下载地址

同分类推荐文章

  1. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
  2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
  3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

查看更多 数据库 文章 →

建议继续学习

  1. 用Hyer来进行网站的抓取 (累计阅读 158,250)
  2. MySQL数据库在实际应用一些方面的介绍 (累计阅读 36,397)
  3. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
  4. 一种常见的并发编程场景的处理 (累计阅读 23,588)
  5. Mysql监控指南 (累计阅读 21,350)
  6. 由浅入深探究mysql索引结构原理、性能分析与优化 (累计阅读 16,522)
  7. 在Apache2.2.XX下安装Mod-myvhost模块 (累计阅读 13,056)
  8. 15个最好的免费开源电子商务平台 (累计阅读 12,541)
  9. 浅谈MySQL索引背后的数据结构及算法 (累计阅读 11,904)
  10. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,708)