MySQL 5.6 GTID模式的主从复制

4 篇文章 0 订阅
1 篇文章 0 订阅

介绍

MySQL 5.6引入的GTID(Global Transaction IDs)使得其复制功能的配置、监控及管理变得更加易于实现,且更加健壮。
gtid是一个 unique 唯一的表示符,他是由服务器的uuid 全局唯一标示,是由128位的随机符组成,mysql-5.6是依靠server-id和uuid 来标示复制架构中的每一个主机,因为是128位的随机字符串在全局都不会重复,server-id 和uuid以及每一个mysql事物的事物序号组成了唯一的gtid ,自从引进mysql-5.6之后每一个二进制日志当中在每一个事物的首部都会写上gtid 标记,因此gtid使得追踪和比较复制事物变得非常简单而且能够实现从崩溃中快速恢复。尤其是innodb 引擎要想实现高可用功能必须要借助于gtid来实现。


要在MySQL 5.6中使用复制功能,其服务配置段[mysqld]中于少应该定义如下选项:

binlog-format:二进制日志的格式,有row、statement和mixed几种类型;
需要注意的是:当设置隔离级别为READ-COMMITED必须设置二进制日志格式为ROW,现在MySQL官方认为STATEMENT这个已经不再适合继续使用;但mixed类型在默认的事务隔离级别下,可能会导致主从数据不一致;
log-slave-updates、gtid-mode、enforce-gtid-consistency、report-port和report-host:用于启动GTID及满足附属的其它需求;
master-info-repository和relay-log-info-repository:启用此两项,可用于实现在崩溃时保证二进制及从服务器安全的功能;
sync-master-info:启用之可确保无信息丢失;
slave-paralles-workers:设定从服务器的SQL线程数;0表示关闭多线程复制功能;
binlog-checksum、master-verify-checksum和slave-sql-verify-checksum:启用复制有关的所有校验功能;
binlog-rows-query-log-events:启用之可用于在二进制日志记录事件相关的信息,可降低故障排除的复杂度;www.it165.net
log-bin:启用二进制日志,这是保证复制功能的基本前提;
server-id:同一个复制拓扑中的所有服务器的id号必须惟一.

 

环境介绍:

Centos6.4(64 bit)

Mysql 5.6.14

服务器信息

Mysql master:192.168.1.10

Mysql slave:192.168.1.11

 

安装Mysql5.6(Master 和Slave都一样,注意server-id不能重复)

首先到http://dev.mysql.com/downloads/mysql/#downloads下载最新的Mysql安装包,我系统是Centos6 64-bit 所以选择Oracle&Red Hat Linux6 的版本,并下载MySQL-server-5.6.14-1.el6.x86_64.rpmMySQL-client-5.6.14-1.el6.x86_64.rpm这两个安装包。

然后安装并启动数据库

 

rpm -ivh MySQL-server-5.6.14-1.el6.x86_64.rpmMySQL-client-5.6.14-1.el6.x86_64.rpm

service mysql start



 

这里需要注意的是,mysql5.6以后的版本,安装好后root用户的密码不再为空,而是随机的,保存在/root/.mysql_secret 中,而且用这个密码登陆后需要马上更改密码才能执行操作,修改命令如下:

set password=password('root');

 

接下来需要复制my.cnf文件到/etc目录下

cp /usr/share/mysql/my-default.cnf /etc/my.cnf

 

编辑my.cnf文件,加入主从复制的一些配置

 

server-id=1 #主从服务器的id不能重复

binlog-format=ROW

log-slave-updates

gtid-mode=on

enforce-gtid-consistency=true

master-info-repository=TABLE

relay-log-info-repository=TABLE

sync-master-info=1

slave-parallel-workers=2

binlog-checksum=CRC32

master-verify-checksum=1

slave-sql-verify-checksum=1

binlog-rows-query-log_events=1

 

 

最后重启Mysql服务器

service mysql restart



在mysql中查查看是否已经启动GTID功能

 

show global variables like '%gtid%';

+--------------------------+-------+

| Variable_name            | Value |

+--------------------------+-------+

| enforce_gtid_consistency | ON   |

| gtid_executed           |       |

| gtid_mode                 | ON   |

| gtid_owned              |       |

| gtid_purged             |       |

+--------------------------+-------+

5 rows in set (0.07 sec)

 

授权用于复制的帐号信息

 

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%'IDENTIFIED BY 'slave';

flush privileges;

 

 

在从服务器上启动从Master复制

change master to master_host='192.168.1.10', master_user='slave',master_password='slave',master_auto_position=1;

start slave;

show slave status\G;

*************************** 1. row***************************
               Slave_IO_State: Waitingfor master to send event
                  Master_Host:192.168.1.10
                  Master_User:slave
                  Master_Port:3306
                Connect_Retry: 60
              Master_Log_File:mysql-bin.000009
          Read_Master_Log_Pos: 1072664
               Relay_Log_File:slave1_mysql-relay-bin.000031
                Relay_Log_Pos: 1072827
        Relay_Master_Log_File: mysql-bin.000009
             Slave_IO_Running: Yes
           Slave_SQL_Running: Yes

 

两个yes表示已经成功开始主从复制了。

 

 




 









 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值