您的位置:首页 > 数据库 > MySQL

MySQL Group Replication 搭建[Multi-Primary Mode]

2017-06-06 14:31 375 查看

1.环境准备

CentOS7.3

percona-server-5.7.18-14

两台服务器ip地址和主机名

10.0.68.206yhjr-osd-mysql01-uat

10.0.68.207yhjr-osd-mysql02-uat

1.配置/etc/hosts使各台主机能够互相解析

mysql安装参考
http://www.cnblogs.com/soysauce/p/6934483.html
其中大部分配置是为了打开groupreplication必须配置的,详见:

http://mysqlhighavailability.com/mysqlha/gr/doc/limitations.html

详细配置文件

[mysqld]
log_timestamps=SYSTEM
port=3306
socket=/data/mysql/run/mysql.sock
basedir=/usr/local/mysql
datadir=/data/mysql/data
tmpdir=/data/mysql/tmp
slow_query_log_file=/data/mysql/logs/slow.log
innodb_log_group_home_dir=/data/mysql/logs
innodb_data_home_dir=/data/mysql/data
innodb_data_file_path=ibdata1:1000M:autoextend
log-error=/data/mysql/logs/error.log
log-bin=/data/mysql/logs/mysql-bin
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-external-locking
key_buffer_size=16M
max_allowed_packet=1M
table_open_cache=64
sort_buffer_size=512K
net_buffer_length=8K
read_buffer_size=256K
read_rnd_buffer_size=512K
myisam_sort_buffer_size=8M
lower_case_table_names=1
init_connect='SETNAMESutf8mb4'
log_bin_trust_function_creators=TRUE
default-storage-engine=InnoDB
character_set_server=utf8mb4
expire_logs_days=14
slow-query-log=1
long_query_time=3
server-id=34176
innodb_buffer_pool_size=8000M
innodb_log_file_size=2G
innodb_log_buffer_size=4G
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=50
lower_case_table_names=1
gtid-mode=on
enforce-gtid-consistency=1
binlog_format=row

query_cache_size=0
tmp_table_size=256M
max_heap_table_size=256M
max_connections=1000
default-time-zone='+8:00'
###
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
#######mgr#######
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="f06db57c-3072-11e7-80a0-005056a34175"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address="10.0.68.206:6606"
loose-group_replication_group_seeds="10.0.68.206:6606,10.0.68.207:6606"
loose-group_replication_bootstrap_group=off
loose-group_replication_single_primary_mode=FALSE
loose-group_replication_enforce_update_everywhere_checks=TRUE

[mysqldump]
quick
max_allowed_packet=16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size=20M
sort_buffer_size=20M
read_buffer=2M
write_buffer=2M

[mysqlhotcopy]
interactive-timeout

2.启动实例

servicemysqlstart

登陆之后建议修改root登陆密码,通过以下语句修改:

SETSQL_LOG_BIN=0;
ALTERUSER'root'@'localhost'IDENTIFIEDBY'mysql';
SETSQL_LOG_BIN=1;


mysql命令行下创建groupreplication所需要的用户:

SETSQL_LOG_BIN=0;
CREATEUSERrpl_user@'%';
GRANTREPLICATIONSLAVEON*.*TOrpl_user@'%'IDENTIFIEDBY'rpl_pass';
FLUSHPRIVILEGES;
SETSQL_LOG_BIN=1;
CHANGEMASTERTOMASTER_USER='rpl_user',MASTER_PASSWORD='rpl_pass'FORCHANNEL'group_replication_recovery';


[/code]

3.开启组复制

mysql命令行下执行安装插件:

mysql>INSTALLPLUGINgroup_replicationSONAME'group_replication.so';

看见插件安装成功
mysql>
showplugins



接下来执行下面的语句,启动groupreplication:

SETGLOBALgroup_replication_bootstrap_group=ON;
STARTGROUP_REPLICATION;
SETGLOBALgroup_replication_bootstrap_group=OFF;


执行下面的语句,验证groupreplication已经成功启动:

mysql>SELECT*FROMperformance_schema.replication_group_members;


创建测试用的库和表:

mysql>createdatabaestest1;

mysql>createtabletest(c1INTPRIMARYKEY,c2TEXTNOTNULL);
mysql>INSERTINTOtestVALUES(1,'bruce');


4.增加新成员

修改用户密码:

SETSQL_LOG_BIN=0;
ALTERUSER'root'@'localhost'IDENTIFIEDBY'mysql';
SETSQL_LOG_BIN=1;


之后配置groupreplication需要的用户:

SETSQL_LOG_BIN=0;
CREATEUSERrpl_user@'%';
GRANTREPLICATIONSLAVEON*.*TOrpl_user@'%'IDENTIFIEDBY'rpl_pass';
FLUSHPRIVILEGES;
SETSQL_LOG_BIN=1;
CHANGEMASTERTOMASTER_USER='rpl_user',MASTER_PASSWORD='rpl_pass'FORCHANNEL'group_replication_recovery';


接下来安装groupreplication插件:

mysql>INSTALLPLUGINgroup_replicationSONAME'group_replication.so';

mysql>setglobalgroup_replication_allow_local_disjoint_gtids_join=ON;

mysql>STARTGROUP_REPLICATION;

查看同步状态:
mysql>SELECT*FROMperformance_schema.replication_group_members;
[/code]



group_replication_allow_local_disjoint_gtids_join要设置为on否则会报错。[/code]

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: