注册 登录
MySQL社区 返回首页

叶金荣的个人空间(优秀博客 ) http://mysqlpub.com/?19248 [收藏] [复制] [RSS] 这也是个博客小样!里面内容全部来自imysql.com(如果有发布日志时没权限,是因为还没有邮箱认证。)

日志

MySQL 5.7版本新特性连载(五)

已有 3750 次阅读2015-9-21 16:46 |个人分类:MySQL 5.7新特性|系统分类:转载| 新特性, MySQL57, MySQL57

本文是基于MySQL-5.7.7-rc版本,未来可能 还会发生更多变化。


1、支持多源复制(Multi-source replication),这对采用分库分表的同学绝对是个超级重磅福音。可以把多个MASTER的数据归并到一个实例上, 有助于提高SLAVE服务器的利用率。不过如果是同一个表的话,会存在主键和唯一索引冲突的风险,需要提前做好规划。


【新特性实践】

MySQL 5.7的多源复制采用多通道的模式,例如用以下方法可以创建多个复制通道,将多个MASTER上的数据复制到同一个SLAVE节点中去:


-- 需要先把 MASTER_INFO_REPOSITORY 和 RELAY_LOG_INFO_REPOSITORY 改成 TABLE 模式

[yejr@imysql.com]> SET GLOBAL MASTER_INFO_REPOSITORY = "TABLE";

Query OK, 0 rows affected (0.00 sec)

[yejr@imysql.com]> SET GLOBAL RELAY_LOG_INFO_REPOSITORY = "TABLE";

Query OK, 0 rows affected (0.00 sec)


-- 创建第一个复制通道

[yejr@imysql.com]> CHANGE MASTER TO MASTER_HOST='1.2.3.4', MASTER_USER='user', MASTER_PASSWORD='repl' FOR CHANNEL 'MASTER-01';

Query OK, 0 rows affected, 2 warnings (0.00 sec)


-- 创建第二个复制通道

[yejr@imysql.com]> CHANGE MASTER TO MASTER_HOST='2.3.4.5', MASTER_USER='user', MASTER_PASSWORD='repl' FOR CHANNEL 'MASTER-02';

Query OK, 0 rows affected, 2 warnings (0.00 sec)


-- 查看第二个复制通道的状态

[yejr@imysql.com]> SHOW SLAVE STATUS FOR CHANNEL 'MASTER-02';

*************************** 1. row ***************************

               Slave_IO_State: 

                  Master_Host: 2.3.4.5

                  Master_User: user

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: 

          Read_Master_Log_Pos: 4

               Relay_Log_File: yejr-relay-bin-master@002d02.000001

                Relay_Log_Pos: 4

        Relay_Master_Log_File: 

             Slave_IO_Running: No

            Slave_SQL_Running: No

              Replicate_Do_DB: 

          Replicate_Ignore_DB: 

           Replicate_Do_Table: 

       Replicate_Ignore_Table: 

      Replicate_Wild_Do_Table: 

  Replicate_Wild_Ignore_Table: 

                   Last_Errno: 0

                   Last_Error: 

                 Skip_Counter: 0

          Exec_Master_Log_Pos: 0

              Relay_Log_Space: 154

              Until_Condition: None

               Until_Log_File: 

                Until_Log_Pos: 0

           Master_SSL_Allowed: No

           Master_SSL_CA_File: 

           Master_SSL_CA_Path: 

              Master_SSL_Cert: 

            Master_SSL_Cipher: 

               Master_SSL_Key: 

        Seconds_Behind_Master: NULL

Master_SSL_Verify_Server_Cert: No

                Last_IO_Errno: 0

                Last_IO_Error: 

               Last_SQL_Errno: 0

               Last_SQL_Error: 

  Replicate_Ignore_Server_Ids: 

             Master_Server_Id: 0

                  Master_UUID: 

             Master_Info_File: mysql.slave_master_info

                    SQL_Delay: 0

          SQL_Remaining_Delay: NULL

      Slave_SQL_Running_State: 

           Master_Retry_Count: 86400

                  Master_Bind: 

      Last_IO_Error_Timestamp: 

     Last_SQL_Error_Timestamp: 

               Master_SSL_Crl: 

           Master_SSL_Crlpath: 

           Retrieved_Gtid_Set: 

            Executed_Gtid_Set: f0df162a-1a39-11e5-883a-782bcb65f419:1-11025782

                Auto_Position: 0

         Replicate_Rewrite_DB: 

                 Channel_Name: master-02

1 row in set (0.00 sec)


其他和复制相关的SQL指令和以往也基本一样,只需在加上 FOR CHANNEL ‘CHANNEL-NAME’ 子句即可。


此外,还支持在线修改replication filter规则,不过不是太建议使用filter规则,因此不重点介绍了。执行下面的SQL命令可以完成filter规则修改:


[yejr@imysql.com]> CHANGE REPLICATION FILTER

 REPLICATE_DO_DB = (d1), REPLICATE_IGNORE_DB = (d2);

 

2、支持多线程复制(Multi-Threaded Slaves, 简称MTS),在5.6版本中实现了SCHEMA级别的并行复制,不过意义不大,因为我们线上大部分实例的读写压力基本集中在某几个数据表,基本无助于缓解复制延迟问题。倒是MariaDB的多线程并行复制大放异彩,有不少人因为这个特性选择MariaDB(比如我也是其一,呵呵)。


MySQL 5.7 MTS支持两种模式,一种是和5.6一样,另一种则是基于binlog group commit实现的多线程复制,也就是MASTER上同时提交的binlog在SLAVE端也可以同时被apply,实现并行复制。关于MTS的更多详细介绍可以查看姜承尧的分享 MySQL 5.7 并行复制实现原理与调优,我这里就不重复说了。


值得一提的是,经过对比测试,5.7采用新的并行复制后,仍然会存在一定程度的延迟,只不过相比5.6版本减少了86%,相比MariaDB的并行复制延迟也小不少

 

下一期,我们继续讲讲5.7的其他新特性。


转载自:http://imysql.com/2015/07/26/mysql-57-new-feature-part-5.shtml

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|申请友链|小黑屋|Archiver|手机版|MySQL社区 ( 京ICP备07012489号   
联系人:周生; 联系电话:13911732319

GMT+8, 2024-3-29 20:47 , Processed in 0.045742 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部