一、背景
该案例仅用于学习参考
二、MHA概念及结构
MGR(MySQL Group Replication)是MySQL 5.7.17版本诞生的,是MySQL自带的一个插件,可以灵活部署。
保证数据一致性又可以自动切换,具备故障检测功能、支持多节点写入。
集群是多个MySQL Server节点共同组成的分布式集群,每个Server都有完整的副本,它是基于ROW格式的二进制日志文件和GTID特性。
三、MGR相关概念及结构
1)主要组成
APIs接口层
组件层
复制协议模块层
GCS API+Paxos 引擎层
2)架构图

四、配置步骤说明
1、配置参数文件my.cnf
2、初始化三套数据库,创建复制账号
3、安装插件
4、配置MGR环境(先主,再到备库执行change master操作)
5、检查主备情况
五、配置详情
1、生成3份MySQL配置文件
节点角色及主机名 |
my.cnf |
master:node1 |
[client] port = 3306 socket = /tmp/3306.sock #secure_auth = false [mysqld] port = 3306 socket = /tmp/3306.sock datadir = /data/mysql/3306/data #read_only = on #--- GLOBAL ---# character_set_server = utf8 lower_case_table_names = 1 log-output = FILE log-error = /data/mysql/3306/logs/mysql-error.log #general_log general_log_file = /data/mysql/3306/logs/mysql.log pid-file = /data/mysql/3306/mysql.pid slow-query-log = 1 slow_query_log_file = /data/mysql/3306/logs/mysql-slow.log tmpdir = /tmp/ long_query_time = 2 innodb_force_recovery = 0 #innodb_buffer_pool_dump_at_shutdown = 1 #innodb_buffer_pool_load_at_startup = 1 #--------------# #thread_concurrency = 8 thread_cache_size = 51 table_open_cache = 16384 open_files_limit = 65535 table_definition_cache = 16384 sort_buffer_size = 2M join_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 8M key_buffer_size = 32M bulk_insert_buffer_size = 16M myisam_sort_buffer_size = 64M tmp_table_size = 32M max_heap_table_size = 16M query_cache_size = 32MB gtid_mode=on log_slave_updates=1 enforce_gtid_consistency=1 # 关闭binlog校验(MGR强制要求) binlog_checksum=NONE #--- NETWORK ---# back_log = 103 max-connections = 512 max_connect_errors = 100000 max_allowed_packet = 32M interactive_timeout = 600 wait_timeout = 600 skip-external-locking #max_user_connections = 0 external-locking = FALSE #skip-name-resolve #--- REPL ---# server-id = 103306 sync_binlog = 1 log-bin = mysql-bin binlog_format = row expire_logs_days = 10 relay-log = relay-log replicate-ignore-db = test log_slave_updates =1 #skip-slave-start binlog_cache_size =4M max_binlog_cache_size =8M max_binlog_size =1024M #--- INNODB ---# default_storage_engine = InnoDB innodb_data_file_path = ibdata1:10M:autoextend innodb_buffer |