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

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

MySQL 5.6同步复制新特性详解

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

GTID的工作流程是这样的:

1.在master上一个事务提交,并写入binlog里。

2.binlog日志发送到slave,slave接收完并写入relay log中继日志里,slave读取到这个GTID,并设置gtid_next的值,例如:

SET@@SESSION.GTID_NEXT='B0869D03-D4A9-11E1-A2EE-000C290A6B8F:3';然后告诉slave接下来的事务必须使用GTID并写入到它自己的binlog里。

3.slave检查并确认这个GTID没有被使用并写入到它自己的binlog里。如果没有被使用,那么开始执行这个事务并写入到它自己的binlog里。

4.由于gtid_next的值不是空的,slave不会尝试去生成一个新的gtid,而是通过主从同步来获取GTID。

=============================================================

如何设置GTID方式的主从同步?

答:需要同时在master和slave上,在my.cnf文件上加入如下:

log-bin = mysql-bin
binlog_format = row
log_slave_updates
gtid-mode = ON
disable-gtid-unsafe-statements = ON

在master上导出:

mysqldump -uroot -p123456 -q --single-transaction -R -E --triggers --default-character-set=utf8 -B yourDB > ./yourDB.sql

在slave上导入:

mysql -uroot -p123456

然后做指向即可。

mysql> CHANGE MASTER TO
> MASTER_HOST = master-host,
> MASTER_PORT = master-port,
> MASTER_USER = repl-user,
> MASTER_PASSWORD = repl-password,
> MASTER_AUTO_POSITION = 1;

注:如果你使用了GTID,那么就不能再使用传统binlog和POS方式

CHANGE MASTER TO
MASTER_HOST='master2.mycompany.com',
MASTER_USER='replication',
MASTER_PASSWORD='bigs3cret',
MASTER_PORT=3306,
MASTER_LOG_FILE='master2-bin.001',
MASTER_LOG_POS=4,
MASTER_CONNECT_RETRY=10;

否则会报错:

MySQL 5.6同步复制新特性详解

顶一下(23)
88.46%

    文章评论

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