系统结构 :
传统的主从结构是 [Master] à [Slave], Master和slave主从关系;
使用transfer以后,[Master] à [Transfer] .--> [Slave], Master和Transfer主从关系,Transfer和Slave是Client-Server关系。
服务器环境:
主库:192.168.15.216 (3306端口)
从库:192.168.15.217 (3306端口)
Transfer: 192.168.15.217 (3307端口)
MySQL版本:mysql-5.5.18-linux2.6-x86_64.tar.gz
存储引擎:Innodb
Database: rocdata
MySQL-Transfer:Transfer.2.1-based-PS-5.5.18
注:
Tranfsfer相同的表使用同一个线程更新,若只有一个表,性能与原生版本相同。要体现效果,一般16个表或以上,考虑到线上大库都有分表,这个条件比较容易满足。
一、192.168.15.216主库配置
首先确认主库上使用row格式的binlog,配置/etc/my.cnf:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld1]
port = 3306
socket = /tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/mysqldata/
bind-address=192.168.15.216
skip-external-locking
skip-name-resolve
user=mysql
max_allowed_packet = 256M
query_cache_size=256M
max_connections=2000
max_connect_errors=10000
key_buffer_size=6000M
read_buffer_size=32M
read_rnd_buffer_size = 32M
myisam_sort_buffer_size=512M
tmp_table_size=1024M
old-passwords