设为首页 收藏本站
查看: 669|回复: 0

[经验分享] MySQL-5.6.14基于GTID及多线程的复制

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-18 14:17:38 | 显示全部楼层 |阅读模式
实验环境 RHEL-6.6-x86_64

两台主机 MASTER 192.168.1.5      hostname : master.mingxiao.info
                SLAVE 192.168.1.6         hostname : slave.mingxiao.info


GTID简介

GTID(Global Transaction Identifier)是每一个事务提交时创建的一个全局唯一的标示符。
GTID由UUID:TID组成。
MySQL的UUID是怎么获得的呢?当启动MySQL时,尝试读取datadir/auto.cnf中的UUID,若没找到,生成一个新的UUID,并保存至auto.cnf文件中。MySQL5.6版本,复制的时候,主从都直到对应的UUID,可通过SHOW SLAVE HOSTS看到。
TID(transaction_id)是已提交的事务数量,随事务提交而递增。

GTID作用
  • 可以定位事务是在哪个实例上提交的
  • 方便复制时故障转移

wKioL1VUhCnhvALwAABAxMZK1GQ041.jpg
若Server A故障,需要将业务切换到Server B上。同时,我们又需要将Server C的复制源改成Server B,修改可使用CHANGE MASTER TO MASTER_HOST='XXX', MASTER_USER='XXX', MASTER_USER='XXX',MASTER_PASSWORD='XXX',MASTER_LOG_FILE='XXX',MASTER_LOG_POS='XXX'即可.由于同一个事务在每台机器上所在的binlog名字和位置都不一样,很难找到Server C当前同步停止点对应的MASTER_LOG_FILE和MASTER_LOG_POS是什么。
但是出现GTID后,就变得非常简单,由于同一事务的GTID在所有节点都一致,则根据Server C的当前停止点的GTID就能唯一定位到Server B上的GTID。由于MASTER_AUTO_POSITION功能的出现,我们根本不需要GTID的具体值,直接使用CHANGE MASTER TO MASTER_HOST='XXX', MASTER_USER='XXX', MASTER_PASSWORD='XXX', MASTER_AUTO_POSITION=1;就可以完成故障转移的工作。


具体步骤

具体步骤

  1、同步时间
  2、两台主机分别初始化MySQL
  3、修改配置文件


master上my.cnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[mysqld]
datadir=/mydata/data
socket = /tmp/mysql.sock
innodb-file-per-table = 1
server_id = 1
log-bin=master-bin
gtid-mode=on
binlog-format=ROW
log-slave-updates=true
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
report-port=3306
port=3306
report-host=master.mingxiao.info
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES





slave上my.cnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[mysqld]
log-bin=master-bin
binlog-format=ROW
log-slave-updates=true
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
server-id=11
report-port=3306
port=3306
log-bin=mysql-bin.log
datadir=/mydata/data
socket=/tmp/mysql.sock
report-host=slave.mingxiao.info
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES





master上
1
2
mysql > GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'192.168.1.6' IDENTIFIED BY 'xiaoming';
mysql > FLUSH PRIVILEGES;




slave上
1
2
mysql > GRANT MASTER TO MASTER_HOST='192.168.1.5', MASTER_USER='repluser',MASTER_PASSWORD='xiaoming',MASTER_AUTO_POSITION=1;
mysql > START SLAVE;




即可。


在master上查看从服务器信息。
1
2
3
4
5
6
7
mysql> SHOW SLAVE HOSTS;
+-----------+---------------------+------+-----------+--------------------------------------+
| Server_id | Host                | Port | Master_id | Slave_UUID                           |
+-----------+---------------------+------+-----------+--------------------------------------+
|        11 | slave.mingxiao.info | 3306 |         1 | 20459c95-f484-11e4-82a4-000c29c05a8a |
+-----------+---------------------+------+-----------+--------------------------------------+
1 row in set (0.00 sec)



在slave查看从服务器状态
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.5
                  Master_User: repluser
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: master-bin.000004
          Read_Master_Log_Pos: 332
               Relay_Log_File: slave-relay-bin.000007
                Relay_Log_Pos: 451
        Relay_Master_Log_File: master-bin.000004
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              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: 332
              Relay_Log_Space: 955
              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: 0
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: 1
                  Master_UUID: e168e12e-f5fc-11e4-8c3d-000c29b4e41b
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set: e168e12e-f5fc-11e4-8c3d-000c29b4e41b:1-5
            Executed_Gtid_Set:
                Auto_Position: 1
1 row in set (0.00 sec)



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-68202-1-1.html 上篇帖子: 使用Navicat for MySQL工具来连接centos 6.6系统中的MYSQL服务 下篇帖子: mysql修改密码及忘记密码如何处理 多线程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表