背景
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里面的[mysqld]下新增如下几行配置:
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
建议修改Slave上的配置(非必需)
net_read_timeout=3600
max_allowed_packet=1073741824
c) 将Slave中需要同步的表结构,导入到Transfer中。注意,只需要表结构,不需要数据。
其中remote_slave系列配置的是一个有super权限访问Slave的帐号。
重启即可。
在Transfer中的操作与在Slave中原本的操作相同,只是现在的关系是,Transfer注册为Master的主库,得到操作步骤后,更新Slave.
系统限制
1、Master上binlog格式必须是row based
2、每个表必须要有主键(显示的primay key)
Transfer变身Slave
有的同学说我不想维护多一个实例。其实就so easy,只要把trasnfer的目标指向自己即可。
为了安全起见,配置规则必须是
remote_slave_hostname配置为127.0.0.1 且 remote_slave_port与Transfer端口相同。
当然,如果Transfer自己是slave,配置时还少了一步拷贝表结构
分享到:
相关推荐
自2006年发布第一个版本之后,一路走来,JTBC已经在四个主流环境(asp access/mssql php mysql dotnet access/mssql jsp mysql/sqlite)中分别实现了特有的建站模式,任何熟知JTBC的人都可以很快的从一个环境转换到...
自2006年发布第一个版本之后,一路走来,JTBC已经在四个主流环境(asp access/mssql php mysql dotnet access/mssql jsp mysql/sqlite)中分别实现了特有的建站模式,任何熟知JTBC的人都可以很快的从一个环境转换到...
自2006年发布第一个版本之后,一路走来,JTBC已经在四个主流环境(asp access/mssql php mysql dotnet access/mssql jsp mysql/sqlite)中分别实现了特有的建站模式,任何熟知JTBC的人都可以很快的从一个环境转换到...
自2006年发布第一个版本之后,一路走来,JTBC已经在四个主流环境(asp access/mssql php mysql dotnet access/mssql jsp mysql/sqlite)中分别实现了特有的建站模式,任何熟知JTBC的人都可以很快的从一个环境转换到...
2009年11月4日发布 KOA ASP类 WebShell(木马)扫描工具2.0 更新和增加了如下内容: 1.优化了代码。 2.修正了“查找IIS解析漏洞的文件”时,当文件夹有大写字母没识别的错误。 3.修正了“查找IIS解析漏洞...
是由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小组进行开发。是自1999年http1.1发布后的首个更新。HTTP 2.0在2013年8月进行首次合作共事性测试。在开放互联网上HTTP 2.0将只用于...
TransferCL是根据Mozilla Public License 2.0发布的。 1.为什么选择TransferCL? 最近的移动设备配备了多个传感器,可以深入了解移动用户的个人资料。 我们认为,此类信息可用于为特定用户定制移动体验。 ...
2009年11月4日发布 更新和增加了如下内容: 1.优化了代码。 2.修正了“查找IIS解析漏洞的文件”时,当文件夹有大写字母没识别的错误。 3.修正了“查找IIS解析漏洞的文件”时,当文件没后缀名时没识别的错误。 ...
ease4.0中的probe也有增强,可以计算调制转移函数mtf (modulated transfer function) 和快速语言传输指数 rasti (rapid speech transmission index)。ease3.0中的rasti是由辅音清晰度损失alcons计算而来的,而ease ...
2000年 4月,发表了 USB 规范的 2.0版本,它支持高达 480 Mbps 的传输率。今天,USB 在高速(视频、图像、储存)和全速(音频、宽带、麦克风)数据传输应用中起了关键作用。它还使各种低速设备(键盘、鼠标、游戏外设、...