MySQL高可用架构之MySQL5.7组复制MGR
###########################################################################################
规划MGR:
host1.us.oracle.com 10.10.20.95
host2.us.oracle.com 10.10.20.97
host3.us.oracle.com 10.10.20.132
MySQL版本:5.7.21
MySQL实例是33061端口

server-id=330611 330612 330613

###########################################################################################
host1:

MySQL实例是33061端口
mysql> select @@port;
+--------+
| @@port |
+--------+
| 33061 |
+--------+
1 row in set (0.01 sec)
[root@host1 ]#cat /etc/hosts
#FOR TEST MGR
10.10.20.132 host3.us.oracle.com
10.10.20.95 host1.us.oracle.com
10.10.20.97 host2.us.oracle.com

vi /data/mysql_33061/my.cnf

  1. [client]
  2. port = 33061
  3. socket = /data/mysql_33061/run/mysql.sock
  4. [mysqld]
  5. port = 33061
  6. socket = /data/mysql_33061/run/mysql.sock
  7. pid_file = /data/mysql_33061/run/mysql.pid
  8. basedir = /usr/local/mysql
  9. datadir = /data/mysql_33061/data
  10. default_storage_engine = InnoDB
  11. max_allowed_packet = 128M
  12. max_connections = 1024
  13. open_files_limit = 65535
  14.  
  15. server-id=330611
  16. skip-name-resolve
  17. lower_case_table_names=1
  18.  
  19. character-set-server = utf8mb4
  20. collation-server = utf8mb4_unicode_ci
  21. init_connect='SET NAMES utf8mb4'
  22.  
  23. innodb_buffer_pool_size = 4096M
  24. innodb_buffer_pool_instances = 8
  25. innodb_buffer_pool_load_at_startup = 1
  26. innodb_buffer_pool_dump_at_shutdown = 1
  27. innodb_file_per_table = 1
  28. innodb_flush_log_at_trx_commit = 2
  29. innodb_data_home_dir=/data/mysql_33061/data/
  30. innodb_log_group_home_dir=/data/mysql_33061/logs/
  31. innodb_log_files_in_group=3
  32. innodb_log_file_size=512M
  33. innodb_data_file_path=ibdata1:512M:autoextend
  34. log_slave_updates=1
  35. binlog_format=ROW
  36. key_buffer_size = 16M
  37. innodb_log_buffer_size = 32M
  38. innodb_io_capacity = 4000
  39. innodb_io_capacity_max = 8000
  40. innodb_flush_method = O_DIRECT
  41. innodb_print_all_deadlocks = 1
  42.  
  43. log-error = /data/mysql_33061/logs/mysql_error.log
  44. log-bin = /data/mysql_33061/logs/mysql_bin
  45. slow_query_log = 1
  46. slow_query_log_file = /data/mysql_33061/logs/mysql_slow_query.log
  47. long_query_time = 2
  48. sync_binlog = 600
  49. relay_log_recovery = 1
  50.  
  51. tmp_table_size = 64M
  52. max_heap_table_size = 64M
  53.  
  54. #FOR MGR
  55. transaction_write_set_extraction = XXHASH64
  56. loose-group_replication_group_name = 'ce9be252-2b71-11e6-b8f4-00212889f856' #不能用主机的GTID
  57. loose-group_replication_start_on_boot = off
  58. loose-group_replication_bootstrap_group = off
  59. loose-group_replication_ip_whitelist = '10.10.20.95,10.10.20.132,10.10.20.97'
  60. loose-group_replication_local_address = '10.10.20.95:33066' #写自己主机所在IP,端口自选
  61. loose-group_replication_group_seeds ='10.10.20.95:33066,10.10.20.97:33066,10.10.20.132:33066'#写MGR组内主机所在IP,端口自选
  62. loose-group_replication_single_primary_mode = off #关闭单主模式的参数
  63. loose-group_replication_enforce_update_everywhere_checks = off #开启多主模式的参数
  64. init_slave = 'set sql_mode=STRICT_ALL_TABLES'
  65. #自动启动组复制
  66. #loose-group_replication_start_on_boot = on
  67. #group_replication_allow_local_disjoint_gtids_join = on
  68.  
  69. #FOR GTID
  70. gtid_mode=on
  71. enforce_gtid_consistency=on
  72. binlog_gtid_simple_recovery=1
  73. log_slave_updates=1
  74. binlog_checksum=NONE
  75. master_info_repository=TABLE
  76. relay_log_info_repository=TABLE

my.cnf

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

mysql> show plugins;
+----------------------------+----------+--------------------+----------------------+---------+
......
| BLACKHOLE         | ACTIVE | STORAGE ENGINE | NULL | GPL |
| FEDERATED         | DISABLED | STORAGE ENGINE | NULL | GPL |
| ngram             | ACTIVE | FTPARSER | NULL | GPL |
| group_replication | ACTIVE | GROUP REPLICATION | group_replication.so | GPL |
+----------------------------+----------+--------------------+----------------------+---------+
45 rows in set (0.00 sec)

mysql>GRANT REPLICATION SLAVE ON *.* TO 'dbsync'@'10.10.%.%' IDENTIFIED BY 'xxxxxxx';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> CHANGE MASTER TO MASTER_USER='dbsync',MASTER_PASSWORD='xxxxxxx' FOR CHANNEL 'group_replication_recovery';
Query OK, 0 rows affected, 2 warnings (0.27 sec)
mysql> set global group_replication_ip_whitelist="10.10.20.95,10.10.20.132,10.10.20.97";
Query OK, 0 rows affected (0.00 sec)
mysql> SET GLOBAL group_replication_bootstrap_group=ON;
Query OK, 0 rows affected (0.00 sec)
mysql> set auto_increment_offset=5555;
Query OK, 0 rows affected (0.00 sec)
mysql> START GROUP_REPLICATION;
Query OK, 0 rows affected (2.04 sec)

mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-----------------------+-------------+--------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-----------------------+-------------+--------------+
| group_replication_applier | 57bc1e44-a447-11e8-8e78-5254000f067d | host1.us.oracle.com | 33061 | ONLINE |
+---------------------------+--------------------------------------+-----------------------+-------------+--------------+
1 row in set (0.00 sec)
###########################################################################################

host2:

[root@host2 ]#cat /etc/hosts
#FOR TEST MGR
10.10.20.132 host3.us.oracle.com
10.10.20.95 host1.us.oracle.com
10.10.20.97 host2.us.oracle.com

vi /data/mysql_33061/my.cnf

  1. [client]
  2. port = 33061
  3. socket = /data/mysql_33061/run/mysql.sock
  4.  
  5. [mysqld]
  6. port = 33061
  7. socket = /data/mysql_33061/run/mysql.sock
  8. pid_file = /data/mysql_33061/run/mysql.pid
  9. basedir = /usr/local/mysql
  10. datadir = /data/mysql_33061/data
  11. default_storage_engine = InnoDB
  12. max_allowed_packet = 128M
  13. max_connections = 1024
  14. open_files_limit = 65535
  15.  
  16. skip-name-resolve
  17. lower_case_table_names=1
  18.  
  19. character-set-server = utf8mb4
  20. collation-server = utf8mb4_unicode_ci
  21. init_connect='SET NAMES utf8mb4'
  22.  
  23. innodb_buffer_pool_size = 4096M
  24. innodb_buffer_pool_instances = 8
  25. innodb_buffer_pool_load_at_startup = 1
  26. innodb_buffer_pool_dump_at_shutdown = 1
  27. innodb_file_per_table = 1
  28. innodb_flush_log_at_trx_commit = 2
  29. innodb_data_home_dir=/data/mysql_33061/data/
  30. innodb_log_group_home_dir=/data/mysql_33061/logs/
  31. innodb_log_files_in_group=3
  32. innodb_log_file_size=512M
  33. innodb_data_file_path=ibdata1:512M:autoextend
  34. log_slave_updates=1
  35. binlog_format=ROW
  36. key_buffer_size = 16M
  37. innodb_log_buffer_size = 32M
  38. innodb_io_capacity = 4000
  39. innodb_io_capacity_max = 8000
  40. innodb_flush_method = O_DIRECT
  41. innodb_print_all_deadlocks = 1
  42.  
  43. log-error = /data/mysql_33061/logs/mysql_error.log
  44. log-bin = /data/mysql_33061/logs/mysql_bin.log
  45. slow_query_log = 1
  46. slow_query_log_file = /data/mysql_33061/logs/mysql_slow_query.log
  47. long_query_time = 2
  48. sync_binlog = 600
  49. relay_log_recovery = 1
  50.  
  51. tmp_table_size = 64M
  52. max_heap_table_size = 64M
  53.  
  54. server-id=330612
  55.  
  56. #FOR MGR
  57. transaction_write_set_extraction = XXHASH64
  58. loose-group_replication_group_name = 'ce9be252-2b71-11e6-b8f4-00212889f856' #不能用主机的GTID
  59. loose-group_replication_start_on_boot = off
  60. loose-group_replication_bootstrap_group = off
  61. loose-group_replication_ip_whitelist = '10.10.20.95,10.10.20.132,10.10.20.97'
  62. loose-group_replication_local_address = '10.10.20.97:33066' #写自己主机所在IP,端口自选
  63. loose-group_replication_group_seeds ='10.10.20.95:33066,10.10.20.97:33066,10.10.20.132:33066'#写MGR组内主机所在IP,端口自选
  64. loose-group_replication_single_primary_mode = off #关闭单主模式的参数
  65. loose-group_replication_enforce_update_everywhere_checks = off #开启多主模式的参数
  66. init_slave = 'set sql_mode=STRICT_ALL_TABLES'
  67.  
  68. #FOR GTID
  69. gtid_mode=on
  70. enforce_gtid_consistency=on
  71. binlog_gtid_simple_recovery=1
  72. log_slave_updates=1
  73. binlog_checksum=NONE
  74. master_info_repository=TABLE
  75. relay_log_info_repository=TABLE

my.cnf

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

mysql> CHANGE MASTER TO MASTER_USER='dbsync',MASTER_PASSWORD='xxxxxxx' FOR CHANNEL 'group_replication_recovery';
Query OK, 0 rows affected, 2 warnings (0.56 sec)
mysql> set global group_replication_ip_whitelist="10.10.20.95,10.10.20.132,10.10.20.97";
Query OK, 0 rows affected (0.00 sec)

mysql> set auto_increment_offset=5555;
Query OK, 0 rows affected (0.00 sec)

mysql> set global group_replication_allow_local_disjoint_gtids_join=ON;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> START GROUP_REPLICATION;
Query OK, 0 rows affected, 1 warning (6.88 sec)

###########################################################################################
host3:
[root@host3 ]#cat /etc/hosts
#FOR TEST MGR
10.10.20.132 host3.us.oracle.com
10.10.20.95 host1.us.oracle.com
10.10.20.97 host2.us.oracle.com

vi /data/mysql_33061/my.cnf

  1. [client]
  2. port = 33061
  3. socket = /data/mysql_33061/run/mysql.sock
  4.  
  5. [mysqld]
  6. port = 33061
  7. socket = /data/mysql_33061/run/mysql.sock
  8. pid_file = /data/mysql_33061/run/mysql.pid
  9. basedir = /usr/local/mysql
  10. datadir = /data/mysql_33061/data
  11. default_storage_engine = InnoDB
  12. max_allowed_packet = 128M
  13. max_connections = 1024
  14. open_files_limit = 65535
  15.  
  16. skip-name-resolve
  17. lower_case_table_names=1
  18.  
  19. character-set-server = utf8mb4
  20. collation-server = utf8mb4_unicode_ci
  21. init_connect='SET NAMES utf8mb4'
  22.  
  23. innodb_buffer_pool_size = 4096M
  24. innodb_buffer_pool_instances = 8
  25. innodb_buffer_pool_load_at_startup = 1
  26. innodb_buffer_pool_dump_at_shutdown = 1
  27. innodb_file_per_table = 1
  28. innodb_flush_log_at_trx_commit = 2
  29. innodb_data_home_dir=/data/mysql_33061/data/
  30. innodb_log_group_home_dir=/data/mysql_33061/logs/
  31. innodb_log_files_in_group=3
  32. innodb_log_file_size=512M
  33. innodb_data_file_path=ibdata1:512M:autoextend
  34. log_slave_updates=1
  35. binlog_format=ROW
  36. key_buffer_size = 16M
  37. innodb_log_buffer_size = 32M
  38. innodb_io_capacity = 4000
  39. innodb_io_capacity_max = 8000
  40. innodb_flush_method = O_DIRECT
  41. innodb_print_all_deadlocks = 1
  42.  
  43. log-error = /data/mysql_33061/logs/mysql_error.log
  44. log-bin = /data/mysql_33061/logs/mysql_bin.log
  45. slow_query_log = 1
  46. slow_query_log_file = /data/mysql_33061/logs/mysql_slow_query.log
  47. long_query_time = 2
  48. sync_binlog = 600
  49. relay_log_recovery = 1
  50.  
  51. tmp_table_size = 64M
  52. max_heap_table_size = 64M
  53.  
  54. server-id=330613
  55.  
  56. #FOR MGR
  57. transaction_write_set_extraction = XXHASH64
  58. loose-group_replication_group_name = 'ce9be252-2b71-11e6-b8f4-00212889f856' #不能用主机的GTID
  59. loose-group_replication_start_on_boot = off
  60. loose-group_replication_bootstrap_group = off
  61. loose-group_replication_ip_whitelist = '10.10.20.95,10.10.20.132,10.10.20.97'
  62. loose-group_replication_local_address = '10.10.20.132:33066' #写自己主机所在IP,端口自选
  63. loose-group_replication_group_seeds ='10.10.20.95:33066,10.10.20.97:33066,10.10.20.132:33066'#写MGR组内主机所在IP,端口自选
  64. loose-group_replication_single_primary_mode = off #关闭单主模式的参数
  65. loose-group_replication_enforce_update_everywhere_checks = off #开启多主模式的参数
  66. init_slave = 'set sql_mode=STRICT_ALL_TABLES'
  67.  
  68. #FOR GTID
  69. gtid_mode=on
  70. enforce_gtid_consistency=on
  71. binlog_gtid_simple_recovery=1
  72. log_slave_updates=1
  73. binlog_checksum=NONE
  74. master_info_repository=TABLE
  75. relay_log_info_repository=TABLE

my.cnf

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

mysql> CHANGE MASTER TO MASTER_USER='dbsync',MASTER_PASSWORD='xxxxxxx' FOR CHANNEL 'group_replication_recovery';
Query OK, 0 rows affected, 2 warnings (0.56 sec)
mysql> set global group_replication_ip_whitelist="10.10.20.95,10.10.20.132,10.10.20.97";
Query OK, 0 rows affected (0.00 sec)
mysql> set auto_increment_offset=5555;
Query OK, 0 rows affected (0.00 sec)
mysql> set global group_replication_allow_local_disjoint_gtids_join=ON;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> START GROUP_REPLICATION;
Query OK, 0 rows affected, 1 warning (3.27 sec)

mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-----------------------+-------------+--------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-----------------------+-------------+--------------+
| group_replication_applier | 041eac3b-a40a-11e8-b11f-545200297bd8 | host2.us.oracle.com | 33061 | ONLINE |
| group_replication_applier | 57bc1e44-a447-11e8-8e78-5254000f067d | host1.us.oracle.com | 33061 | ONLINE |
| group_replication_applier | e3d6b2db-a44e-11e8-8769-545200494892 | host3.us.oracle.com | 33061 | ONLINE |
+---------------------------+--------------------------------------+-----------------------+-------------+--------------+
3 rows in set (0.00 sec)

host1:
mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-----------------------+-------------+--------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-----------------------+-------------+--------------+
| group_replication_applier | 041eac3b-a40a-11e8-b11f-545200297bd8 | host2.us.oracle.com | 33061 | ONLINE |
| group_replication_applier | 57bc1e44-a447-11e8-8e78-5254000f067d | host1.us.oracle.com | 33061 | ONLINE |
| group_replication_applier | e3d6b2db-a44e-11e8-8769-545200494892 | host3.us.oracle.com | 33061 | ONLINE |
+---------------------------+--------------------------------------+-----------------------+-------------+--------------+
3 rows in set (0.00 sec)
host2:
mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-----------------------+-------------+--------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-----------------------+-------------+--------------+
| group_replication_applier | 041eac3b-a40a-11e8-b11f-545200297bd8 | host2.us.oracle.com | 33061 | ONLINE |
| group_replication_applier | 57bc1e44-a447-11e8-8e78-5254000f067d | host1.us.oracle.com | 33061 | ONLINE |
| group_replication_applier | e3d6b2db-a44e-11e8-8769-545200494892 | host3.us.oracle.com | 33061 | ONLINE |
+---------------------------+--------------------------------------+-----------------------+-------------+--------------+
3 rows in set (0.00 sec)

查询主节点:

select variable_value from performance_schema.global_status where variable_name='group_replication_primary_member';

查看当前实例是否有延迟等性能问题(通过队列深度判断)的方法:
select * from performance_schema.replication_group_member_stats\G;
通过查看COUNT_TRANSACTIONS_IN_QUEUE的值,可以判断等待处理的事务数。

参考:

http://www.cnblogs.com/xinysu/p/6674832.html

https://www.cnblogs.com/manger/p/7211932.html

https://www.cnblogs.com/lemon-le/p/9241984.html

MySQL高可用架构之MySQL5.7组复制MGR的更多相关文章

  1. MySQL高可用架构之MySQL5.7.19 PXC

    CentOS7.3下Percona-XtraDB-Cluster-5.7.19集群部署PXC三节点安装:node1:10.10.10.11 node2:10.10.10.12node3:10.10.1 ...

  2. mysql高可用架构之MHA,haproxy实现读写分离详解

    MySQL高可用架构之MHA 一.运维人员需要掌握的MySQL技术: 1.基本SQL语句 2.基本的管理[库表数据的管理    权限的管理] 3.容灾       保证数据不丢失. 二.工作中MySQ ...

  3. (转)MySQL高可用架构之MHA

    MySQL高可用架构之MHA  原文:http://www.cnblogs.com/gomysql/p/3675429.html 简介: MHA(Master High Availability)目前 ...

  4. MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解

    MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Mycat介绍 1>.什么是Mycat Mycat背后是 ...

  5. 032:基于Consul和MGR的MySQL高可用架构

    目录 一.Consul 1.Consul简介 2.准备环境 3.Consul 安装 4.Consul配置文件 5.Consul 服务检查脚本 6.Consul启动 二.MGR搭建 1.MGR配置 2. ...

  6. MySQL 高可用架构在业务层面的应用分析

    MySQL 高可用架构在业务层面的应用分析 http://mp.weixin.qq.com/s?__biz=MzAxNjAzMTQyMA==&mid=208312443&idx=1&a ...

  7. 从mysql高可用架构看高可用架构设计

    高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间. 假设系统一直能够提供服务,我们说系统的可用性是100%.如果 ...

  8. MySQL高可用架构应该考虑什么? 你认为应该如何设计?

    一.MySQL高可用架构应该考虑什么? 对业务的了解,需要考虑业务对数据库一致性要求的敏感程度,切换过程中是否有事务会丢失 对于基础设施的了解,需要了解基础设施的高可用的架构.例如 单网线,单电源等情 ...

  9. mysql高可用架构MHA搭建(centos7+mysql5.7.28)

    无论是传统行业,还是互联网行业,数据可用性都是至关重要的,虽然现在已经步入大数据时代,nosql比较流行,但是作为数据持久化及事务性的关系型数据库依然是项目首选,比如mysql. 现在几乎所有的公司项 ...

随机推荐

  1. java 如何重写equal 和hashcode方法(最佳实践)

    先看完理解这篇:Java hashCode() 和 equals()的若干问题解答 实现高质量的equals方法的诀窍包括 使用==操作符检查“参数是否为这个对象的引用”: 使用instanceof操 ...

  2. 微信小程序获得微信头像和昵称

    微信小程序之登录态的探索 { wx.getSetting({ success: res => { if (res.authSetting && res.authSetting[' ...

  3. 【FAQ】P3. 为什么 torch.cuda.is_available() 是 False

    为什么 torch.cuda.is_available() 是 False torch.cuda.is_available(),这个指令的作用是看,你电脑的 GPU 能否被 PyTorch 调用. 如 ...

  4. win 10 自带 Ubuntu 系统的文件位置

    win 10 自带 Ubuntu 系统的文件位置 Ubuntu 作为最为流行 Linux 系统中的一种,是用来学习 Linux 相关知识是最好不过的选择.专门搞一个 Ubuntu 系统的电脑不太现实, ...

  5. 2019 湖湘杯 Reverse WP

    0x01 arguement 下载链接:https://www.lanzous.com/i7atyhc 1.准备 获取到信息: 32位的文件 upx加密文件 在控制台打开文件 使用"upx ...

  6. CentOS7部署CDH6.0.1大数据平台

    Cloudera’s Distribution Including Apache Hadoop,简称“CDH”,基于Web的用户界面,支持大多数Hadoop组件,包括HDFS.MapReduce.Hi ...

  7. author认证模块

    author认证模块 用auth模块 你就用全套 不是自己写一部分 用别人一部分 ​ 创建超级管理员,用于登录DJango admin的后台管理 ​ 命令:createsuperuser,输入顺序用户 ...

  8. 安装RF

    pip install robotframework wxPython pip install robotframework-ride pip install --pre --upgrade robo ...

  9. CDate()函数

    CDate 函数 返回表达式,此表达式已被转换为 Date 子类型的 Variant. CDate(date) date 参数是任意有效的日期表达式. 说明 IsDate 函数用于判断 date 是否 ...

  10. 3Linux - 常用 Linux 命令的基本使用

    常用 Linux 命令的基本使用 转自 目标 理解学习 Linux 终端命令的原因 常用 Linux 命令体验 01. 学习 Linux 终端命令的原因 Linux 刚面世时并没有图形界面,所有的操作 ...