新云软件园:请安心下载,绿色无病毒!

软件提交最近更新热门排行
您现在的位置:首页››软件教程››应用集锦››数据管理系统

MySQL 5.6同步复制新特性详解

2013-11-16 11:23作者:hcymysql来源:Linux社区浏览:2223 评论:0

有4个Waiting for an event from Coordinator线程

分别开两个终端,用sysbench分别对两个库进行压力测试,

sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=100000 --max-requests=1000 --num-threads=16 --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-db=test --mysql-socket=/tmp/mysql.sock run

sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=100000 --max-requests=1000 --num-threads=16 --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-db=test1 --mysql-socket=/tmp/mysql.sock run

然后select * from mysql.slave_worker_info\G; 你会发现:

mysql> select * from mysql.slave_worker_info\G;

*************************** 1. row ***************************
                 Master_id: 165
                 Worker_id: 0
            Relay_log_name:
             Relay_log_pos: 0
           Master_log_name:
            Master_log_pos: 0
 Checkpoint_relay_log_name:
  Checkpoint_relay_log_pos: 0
Checkpoint_master_log_name:
 Checkpoint_master_log_pos: 0
          Checkpoint_seqno: 0
     Checkpoint_group_size: 64
   Checkpoint_group_bitmap:
*************************** 2. row ***************************
                 Master_id: 165
                 Worker_id: 1
            Relay_log_name:
             Relay_log_pos: 0
           Master_log_name:
            Master_log_pos: 0
 Checkpoint_relay_log_name:
  Checkpoint_relay_log_pos: 0
Checkpoint_master_log_name:
 Checkpoint_master_log_pos: 0
          Checkpoint_seqno: 0
     Checkpoint_group_size: 64
   Checkpoint_group_bitmap:
*************************** 3. row ***************************
                 Master_id: 165
                 Worker_id: 2
            Relay_log_name: ./mysql5_6-relay-bin.000009
             Relay_log_pos: 2091034
           Master_log_name: mysql-bin.000003
            Master_log_pos: 2090832
 Checkpoint_relay_log_name: ./mysql5_6-relay-bin.000009
  Checkpoint_relay_log_pos: 2082941
Checkpoint_master_log_name: mysql-bin.000003
 Checkpoint_master_log_pos: 2082739
          Checkpoint_seqno: 5
     Checkpoint_group_size: 64
   Checkpoint_group_bitmap: 0
*************************** 4. row ***************************
                 Master_id: 165
                 Worker_id: 3
            Relay_log_name: ./mysql5_6-relay-bin.000009
             Relay_log_pos: 2954634
           Master_log_name: mysql-bin.000003
            Master_log_pos: 2954432
 Checkpoint_relay_log_name: ./mysql5_6-relay-bin.000009
  Checkpoint_relay_log_pos: 2951772
Checkpoint_master_log_name: mysql-bin.000003
 Checkpoint_master_log_pos: 2951570
          Checkpoint_seqno: 1
     Checkpoint_group_size: 64
   Checkpoint_group_bitmap: 
4 rows in set (0.01 sec)

有两个Worker_id的数值在不断的变化,那么多线程复制就开始起作用了。

注:如果一个库有N个请求,那么不会使用多线程复制,但是两个库有N个请求,那么会使用多线程复制。尽可能的把一个库中的表,按照业务逻辑拆分成多个库保存,这样在写操作时,slave上就会开启多线程复制,减少了同步延时。2个库slave就有2个IO/SQL线程,3个库slave就有2个IO/SQL线程,依次类推。

如下图所示:

MySQL 5.6同步复制新特性详解

此外,

relay_log_info_repository=TABLE

relay_log_info_repository=TABLE
master_info_repository=TABLE

会将master.info和relay.info保存在表中,默认是Myisam引擎,官方建议用

alter table slave_master_info engine=innodb;
alter table slave_relay_log_info engine=innodb;
alter table slave_worker_info engine=innodb;

改为Innodb引擎,防止表损坏后自行修复。

MySQL 5.6同步复制新特性详解

顶一下(23)
88.46%

    文章评论

    请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!
      验证码:     登录   注册
    网友评论