怎样进行MySQL5.7.17- Group Replication搭建

怎样进行MySQL5.7.17- Group Replication搭建,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

背景:

  • mysql>INSTALL PLUGIN group_replication SONAME 'group_replication.so'


  • mysql> SHOW PLUGINS;
    +----------------------------+----------+--------------------+----------------------+-------------+
    | Name                       | Status   | Type               | Library              | License     |
    +----------------------------+----------+--------------------+----------------------+-------------+
    | binlog                     | ACTIVE   | STORAGE ENGINE     | NULL                 | PROPRIETARY |
    
    (...)
    
    | group_replication          | ACTIVE   | GROUP REPLICATION  | group_replication.so | PROPRIETARY |
    +----------------------------+----------+--------------------+----------------------+-------------+

    mysql> SET GLOBAL group_replication_bootstrap_group=ON;
    mysql> START GROUP_REPLICATION;
    mysql> SET GLOBAL group_replication_bootstrap_group=OFF;
    mysql> SELECT * FROM performance_schema.replication_group_members;
    +---------------------------+--------------------------------------+-------------+-------------+--------------+
    | CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
    +---------------------------+--------------------------------------+-------------+-------------+--------------+
    | group_replication_applier | 550a7cbd-ccce-11e6-829a-a2d813521b2e | sh347       |        3307 | ONLINE       |
    +---------------------------+--------------------------------------+-------------+-------------+--------------+
    1 row in set (0.00 sec)


2.4插入一些模拟数据

  1. mysql> CREATE DATABASE test;

  2. Query OK, 1 row affected (0.00 sec)


  3. mysql> use test;

  4. Database changed

  5. mysql> CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL);

  6. Query OK, 0 rows affected (0.00 sec)


  7. mysql> INSERT INTO t1 VALUES (1, 'Luis');

  8. Query OK, 1 row affected (0.01 sec)


3 往集群里面添加数据库实例

  1. 3.1修改第二台数据库配置文件


    1. [client]

    2. port = 24802

    3. socket = /home/data/mydata/3307/mysql.sock



    4. [mysqld]

    5. port = 24802

    6. socket = /home/data/mydata/3307/mysql.sock

    7. basedir = /home/data/mysql

    8. datadir = /home/data/mydata/3307

    9. pid-file = /home/data/mydata/3307/mysql.pid

    10. ##group replication####

    11. server_id = 2

    12. gtid_mode =ON

    13. enforce_gtid_consistency = ON

    14. master_info_repository = TABLE

    15. relay_log_info_repository=TABLE

    16. binlog_checksum = NONE

    17. log_slave_updates = ON

    18. log_bin=binlog

    19. binlog_format=ROW


    20. transaction_write_set_extraction=XXHASH64

    21. loose-group_replication_group_name = "77e497e2-c59a-11e6-9a68-525400159185"

    22. loose-group_replication_start_on_boot=off

    23. loose-group_replication_local_address="192.168.1.14:34062"

    24. loose-group_replication_group_seeds="192.168.1.247:34061,192.168.1.14:34062,192.168.1.242:34063"

    25. loose-group_replication_bootstrap_group=off

    26. loose-group_replication_single_primary_mode=false

    27. loose-group_replication_enforce_update_everywhere_checks=TRUE

  1. 3.2启动数据库进行配置

    1. SET SQL_LOG_BIN=0;

    2. CREATE USER rpl_user@'%';

    3. GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass';

    4. SET SQL_LOG_BIN=1;

    5. CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' FOR CHANNEL 'group_replication_recovery'


  1. 3.3 安装引擎,加入gp组

    1. mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';

    2. mysql> START GROUP_REPLICATION;

    3. mysql> SELECT * FROM performance_schema.replication_group_members;

    4. +---------------------------+--------------------------------------+---------------------------+-------------+--------------+

    5. | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |

    6. +---------------------------+--------------------------------------+---------------------------+-------------+--------------+

    7. | group_replication_applier | 29a03be3-cccf-11e6-9dac-00163e2d2c29 | interface.test.haodai.com | 24802 | ONLINE |

    8. | group_replication_applier | 550a7cbd-ccce-11e6-829a-a2d813521b2e | sh347 | 3307 | ONLINE |

    9. +---------------------------+--------------------------------------+---------------------------+-------------+--------------+

    10. 注意:与2操作相比少了两个步骤,千万别执行那两个步骤!那两个步骤是在搭建gp 初始化才需要执行的两个步骤

  2. 3.4检验数据

    1. mysql> show databases;

    2. +--------------------+

    3. | Database |

    4. +--------------------+

    5. | information_schema |

    6. | mysql |

    7. | performance_schema |

    8. | sys |

    9. | test |

    10. +--------------------+

    11. 5 rows in set (0.00 sec)


    12. mysql> select * from test.t1;

    13. +----+------+

    14. | c1 | c2 |

    15. +----+------+

    16. | 1 | Luis |

    17. +----+------+

    18. 1 row in set (0.00 sec)

4 模拟数据库down机
  1. 关闭247数据库

  2. mysql> SELECT * FROM performance_schema.replication_group_members;


  3. | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |


  4. | group_replication_applier | | | NULL | OFFLINE |


  5. 1 row in set (0.00 sec)


  6. mysql> start GROUP_REPLICATION;  ###重新打开即可

  7. Query OK, 0 rows affected (3.50 sec)


  8. mysql> SELECT * FROM performance_schema.replication_group_members;


  9. | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |


  10. | group_replication_applier | 29a03be3-cccf-11e6-9dac-00163e2d2c29 | interface.test.haodai.com | 24802 | ONLINE |

  11. | group_replication_applier | 550a7cbd-ccce-11e6-829a-a2d813521b2e | sh347 | 3307 | ONLINE |


  12. 2 rows in set (0.00 sec)


  13. mysql> stop GROUP_REPLICATION;

  14. Query OK, 0 rows affected (8.47 sec)


  15. mysql> SELECT * FROM performance_schema.replication_group_members;


  16. | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |


  17. | group_replication_applier | 550a7cbd-ccce-11e6-829a-a2d813521b2e | sh347 | 3307 | OFFLINE |


  18. 1 row in set (0.00 sec)


  19. mysql> start GROUP_REPLICATION;

  20. Query OK, 0 rows affected (5.49 sec)


  21. mysql> SELECT * FROM performance_schema.replication_group_members;


  22. | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |


  23. | group_replication_applier | 29a03be3-cccf-11e6-9dac-00163e2d2c29 | interface.test.haodai.com | 24802 | ONLINE |

  24. | group_replication_applier | 550a7cbd-ccce-11e6-829a-a2d813521b2e | sh347 | 3307 | ONLINE |


  25. 2 rows in set (0.00 sec)

至此,数据库集群组搭建完毕!

关于怎样进行MySQL5.7.17- Group Replication搭建问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。