mysql5.7的GROUP REPLICATION操作步骤
2018-01-18 17:25
337 查看
mysql5.7的GROUP REPLICATION操作步骤
MySql:5.7.18-enterprise-commercial-advanced-logCentos:7.3
环境:
centos128 192.168.44.128 centos129 192.168.44.129 centos130 192.168.44.130
一、设置配置文件
[root@centos128 3306]# cat my.cnf [mysqld] # basic settings user = mysql port = 3306 server-id=1 socket = /data/3306/mysql.sock basedir = /data/mysql datadir = /data/3306/data pid_file= /data/3306/mysql.pid innodb_log_group_home_dir = /data/3306/data innodb_undo_directory = /data/3306/data tmpdir = /tmp sql_mode= STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION autocommit = 1 character_set_server=utf8 transaction_isolation = READ-COMMITTED explicit_defaults_for_timestamp = 1 max_allowed_packet = 16777216 event_scheduler = 1 large-pages thread_cache_size=0 plugin-load=thread_pool.so binlog_checksum=NONE slave_parallel_type = LOGICAL_CLOCK slave_preserve_commit_order = ON #group replication transaction_write_set_extraction=XXHASH64 loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" loose-group_replication_start_on_boot=off loose-group_replication_local_address= "192.168.44.128:33061" loose-group_replication_group_seeds= "192.168.44.128:33061,192.168.44.129:33061,192.168.44.130:33061" loose-group_replication_bootstrap_group= off loose-group_replication_single_primary_mode=FALSE loose-group_replication_enforce_update_everywhere_checks= TRUE # connection # interactive_timeout = 1800 wait_timeout = 1800 lock_wait_timeout = 1800 skip_name_resolve = 1 max_connections = 512 max_connect_errors = 1000000 #slave-skip-errors=1236 relay_log_space_limit=1024 # table cache performance settings innodb_data_file_path=ibdata1:500M:autoextend table_open_cache = 4096 table_definition_cache = 4096 table_open_cache_instances = 128 # session memory settings # read_buffer_size = 16M read_rnd_buffer_size = 32M sort_buffer_size = 32M tmp_table_size = 64M join_buffer_size = 128M thread_cache_size = 64 # log settings # log_error = /data/3306/logs/error.log slow_query_log = 1 slow_query_log_file =/data/3306/logs/slow.log log_queries_not_using_indexes = 1 log_slow_admin_statements = 1 log_slow_slave_statements = 1 log_throttle_queries_not_using_indexes = 10 expire_logs_days = 7 long_query_time = 2 min_examined_row_limit = 100 binlog_format = ROW binlog-rows-query-log-events = 1 log-bin-trust-function-creators = 1 log_bin = /data/3306/logs/log/mysql_bin log_bin_index = /data/3306/logs/log/mysql_bin.index expire-logs-days = 3 log-slave-updates = 1 relay_log_purge=0 slave_parallel_workers=5 # innodb settings # innodb_page_size = 16384 innodb_buffer_pool_size = 1G [memory/2] innodb_buffer_pool_instances = 1 innodb_buffer_pool_load_at_startup = 1 innodb_buffer_pool_dump_at_shutdown = 1 innodb_lru_scan_depth = 4096 innodb_lock_wait_timeout = 5 innodb_io_capacity = 1000 innodb_io_capacity_max = 1000 innodb_flush_method = O_DIRECT innodb_file_format = Barracuda innodb_file_format_max = Barracuda innodb_undo_logs = 128 innodb_undo_tablespaces = 3 innodb_flush_neighbors = 0 innodb_log_file_size = 256M innodb_log_files_in_group = 2 innodb_log_buffer_size = 16777216 innodb_purge_threads = 4 innodb_large_prefix = 1 innodb_thread_concurrency = 64 innodb_print_all_deadlocks = 1 innodb_strict_mode = 1 innodb_sort_buffer_size = 67108864 innodb_write_io_threads = 16 innodb_read_io_threads = 16 innodb_file_per_table = 1 innodb_stats_persistent_sample_pages = 64 innodb_autoinc_lock_mode = 2 innodb_online_alter_log_max_size=1G innodb_open_files=4096 metadata_locks_hash_instances=64 secure_file_priv=/tmp master_info_repository=TABLE relay_log_info_repository=TABLE gtid_mode=on enforce_gtid_consistency=on
注意各节点的my.cnf的差异:
centos128上:
server-id=1 loose-group_replication_local_address= "192.168.44.128:33061"
centos129上:
server-id=2 loose-group_replication_local_address= "192.168.44.129:33061"
centos130上:
server-id=3 loose-group_replication_local_address= "192.168.44.130:33061"
其它的都一样。
另外每个库的uuid也要是唯一的,否则,开启复制时会报
2018-01-16T12:10:56.431527Z 0 [ERROR] Plugin group_replication reported: 'This member has more executed transactions than those present in the group. Local transactions: b376058d-5762-11e7-baa0-000c29e6b568:1-2 > Group transactions: ' 2018-01-16T12:10:56.431608Z 0 [ERROR] Plugin group_replication reported: 'The member contains transactions not present in the group. The member will now exit the group.' 2018-01-16T12:10:56.431624Z 0 [Note] Plugin group_replication reported: 'To force this member into the group you can use the group_replication_allow_local_disjoint_gtids_join option'
并且各member都不在一个组里。原因是因为建库时只是复制数据库到其它节点服务器上的,没有修改datadir下的auto.cnf文件里的uuid。把各uuid改成不一样就可以正常加入组,并正常的复制。
通过
SELECT * FROM performance_schema.replication_group_members
可以查看memeber_id,如果member_id一样说不定就是这样的问题
二、建库
1, mysql 下载及解压
解压路径:
tar zxvf mysql-advanced-5.7.18-linux-glibc2.5-x86_64.tar.gz
移到目录/usr/local/,并更名为mysql:
mv mysql-advanced-5.7.18-linux-glibc2.5-x86_64 /data/mysql
2,mysql 路径及用户的创建
添加用户及组:
groupadd mysql useradd -g mysql mysql
生成路径
mkdir -p /data/3306/data /data/3306/logs/log /data/3307/data /data/3307/logs/log
设置mysql目录的所有者及组:
chown -R mysql:mysql /data
3,创建DB instance
/data/3306/必须为空
defaults-file 在5.7.14版本之后就不再使,如果使用就会报错
./mysqld --initialize-insecure --datadir=/data/3306/data --basedir=/data/mysql/ --user=mysql --defaults-file=/data/3306/my.cnf
这里说明下,初始化参数我使用了–initialize-insecure,这样不会设置初始化root密码,如果是 –initialize的话,会随机生成一个密码:
在5.7.14版本之后就不再使,如果使用就会报错
[root@centos128 bin]# mysqld --initialize-insecure --datadir=/data/3306/data --basedir=/data/mysql/ --user=mysql --defaults-file=/data/3306/my.cnf 2017-06-22T13:38:42.569214Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-06-22T13:38:42.693496Z 0 [Warning] InnoDB: New log files created, LSN=45790 2017-06-22T13:38:42.733273Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2017-06-22T13:38:42.793859Z 0 [ERROR] unknown variable 'defaults-file=/data/3306/my.cnf' 2017-06-22T13:38:42.793908Z 0 [ERROR] Aborting
传一个正常的my.cnf文件到/etc下
[root@centos128 bin]# mysqld --initialize-insecure --datadir=/data/3306/data --basedir=/data/mysql/ --user=mysql #直接采用默认的/etc/my.cnf
创建成功
这里是initialize-insecure可以初始mysql是不需要密码,如果需要看【修改登录密码】
修改登录密码:
5.7版本:
``` mysqld_safe --defaults-file=/data/3307/my.cnf --user=mysql --skip-grant-tables --skip-networking --datadir=/data/3307/data & mysql -u root mysql --socket=/data/3307/mysql.sock update mysql.user set authentication_string=password('root') where USER='root' and host='root' or host='localhost'; flush privileges;
restart:
mysqladmin shutdown -u root -proot --socket=/data/3307/mysql.sock
/data/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf >/dev/null 2>&1 > /dev/null &
mysql -uroot -p --socket=/data/3307/mysql.sock -hlocalhost
set password for 'root'@'localhost'=password('root'); flush privileges;
如法炮制cenos129,centos130.
mysqld --initialize-insecure --datadir=/data/3306/data --basedir=/data/mysql/ --user=mysql
三、搭建GR
my.cnf中搭建GR的重要参数必段有:
server_id=1 #设置复制过程是不同的server_id gtid_mode=ON #开启GTID事务模式 enforce_gtid_consistency=ON #开启GTID事务模式 master_info_repository=TABLE #slave的master_info放在TABLE里 relay_log_info_repository=TABLE #slave的relay_log_info放在TABLE里 binlog_checksum=NONE #关闭binlog的checksum log_slave_updates=ON #接收master的log信息并写入slave的binary log里 log_bin=binlog #开启binary log binlog_format=ROW #binary log的日志格式为row transaction_write_set_extraction=XXHASH64 #server为每个事务收集write set并用XXHASH64哈唏算法编码这个set loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" #表示plugin连接、创建的group的名称 loose-group_replication_start_on_boot=off #当server开启时,plugin并不会自动开启 loose-group_replication_local_address= "192.168.44.128:33061" #表示本地以IP,PORT与group中的其它member进行连接 loose-group_replication_group_seeds= "192.168.44.128:33061,192.168.44.129:33061,192.168.44.130:33061" #告诉plugin这些IP加入group中通过port相互联系。那些想加入group的就是seed member loose-group_replication_bootstrap_group= off #关闭boostrap the group loose-group_replication_single_primary_mode=FALSE #关闭single_primary_mode loose-group_replication_enforce_update_everywhere_checks= TRUE #当multi-master时对任何更改开启强一制性检查
a.centos128 开启GR设置:
SET SQL_LOG_BIN=0; #当前用户的操作不记录到binary log CREATE USER rpl_user@'%'; #创建复制用户rpl_user@'%' GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass'; #授用户rpl_user@'%'复制权限 SET SQL_LOG_BIN=1; #当前用户的操作录记到binary log CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' FOR CHANNEL 'group_replication_recovery'; #来自其它member的恢复需要的user credentials FLUSH PRIVILEGES; INSTALL PLUGIN group_replication SONAME 'group_replication.so'; #安装Group Replication plugin SHOW PLUGINS; SET GLOBAL group_replication_bootstrap_group=ON;
#开启bootstrap the group
START GROUP_REPLICATION; #开启GR SET GLOBAL group_replication_bootstrap_group=OFF; #关闭bootstrap the group
SELECT * FROM performance_schema.replication_group_members; root@localhost:(none) 04:29:21>SELECT * FROM performance_schema.replication_group_members; +---------------------------+--------------------------------------+-------------+-------------+--------------+ | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | +---------------------------+--------------------------------------+-------------+-------------+--------------+ | group_replication_applier | b376058d-5762-11e7-baa0-000c29e6b568 | centos128 | 3306 | ONLINE | +---------------------------+--------------------------------------+-------------+-------------+--------------+
b.centos129 开启GR设置:
SET SQL_LOG_BIN=0; #当前用户的操作不记录到binary log CREATE USER rpl_user@'%'; #创建复制用户rpl_user@'%' GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass'; #授用户rpl_user@'%'复制权限 SET SQL_LOG_BIN=1; #当前用户的操作录记到binary log CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' FOR CHANNEL 'group_replication_recovery'; #来自其它member的恢复需要的user credentials FLUSH PRIVILEGES; INSTALL PLUGIN group_replication SONAME 'group_replication.so'; #安装Group Replication plugin SHOW PLUGINS; START GROUP_REPLICATION; #开启GR,这里不需要开启bootstrap the group,只需要只启一次就够了 SELECT * FROM performance_schema.replication_group_members; root@localhost:(none) 04:42:45>SELECT * FROM performance_schema.replication_group_members; +---------------------------+--------------------------------------+-------------+-------------+--------------+ | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | +---------------------------+--------------------------------------+-------------+-------------+--------------+ | group_replication_applier | 574d6e9a-fc15-11e7-9fcf-000c29879d51 | centos129 | 3306 | ONLINE | | group_replication_applier | b376058d-5762-11e7-baa0-000c29e6b568 | centos128 | 3306 | ONLINE | +---------------------------+--------------------------------------+-------------+-------------+--------------+
可以看见centos128的member 以及新添加的centos129的member
b.centos130 开启GR设置:
SET SQL_LOG_BIN=0; #当前用户的操作不记录到binary log CREATE USER rpl_user@'%'; #创建复制用户rpl_user@'%' GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass'; #授用户rpl_user@'%'复制权限 SET SQL_LOG_BIN=1; #当前用户的操作录记到binary log CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' FOR CHANNEL 'group_replication_recovery'; #来自其它member的恢复需要的user credentials FLUSH PRIVILEGES; INSTALL PLUGIN group_replication SONAME 'group_replication.so'; #安装Group Replication plugin SHOW PLUGINS; START GROUP_REPLICATION; #开启GR,这里不需要开启bootstrap the group,只需要只启一次就够了 SELECT * FROM performance_schema.replication_group_members; root@localhost:(none) 04:45:00>SELECT * FROM performance_schema.replication_group_members; +---------------------------+--------------------------------------+-------------+-------------+--------------+ | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | +---------------------------+--------------------------------------+-------------+-------------+--------------+ | group_replication_applier | 574d6e9a-fc15-11e7-9fcf-000c29879d51 | centos129 | 3306 | ONLINE | | group_replication_applier | b376058d-5762-11e7-baa0-000c29e6b568 | centos128 | 3306 | ONLINE | | group_replication_applier | e87b5168-fc15-11e7-9fcf-000c29879d51 | centos130 | 3306 | ONLINE | +---------------------------+--------------------------------------+-------------+-------------+--------------+
可以看见centos128,centos129的member和新添加的centos130
四、GR相关的视图
查看GR中的memeber:
SELECT * FROM performance_schema.replication_group_members \G ; root@localhost:(none) 04:29:26>SELECT * FROM performance_schema.replication_group_members; +---------------------------+--------------------------------------+-------------+-------------+--------------+ | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | +---------------------------+--------------------------------------+-------------+-------------+--------------+ | group_replication_applier | 574d6e9a-fc15-11e7-9fcf-000c29879d51 | centos129 | 3306 | ONLINE | | group_replication_applier | b376058d-5762-11e7-baa0-000c29e6b568 | centos128 | 3306 | ONLINE | | group_replication_applier | e87b5168-fc15-11e7-9fcf-000c29879d51 | centos130 | 3306 | ONLINE | +---------------------------+--------------------------------------+-------------+-------------+--------------+
查看GR中的memeber的统计信息:
select * from performance_schema.replication_group_member_stats \G ; root@localhost:(none) 04:45:07>select * from performance_schema.replication_group_member_stats \G ; *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier VIEW_ID: 15162633783937117:7 MEMBER_ID: b376058d-5762-11e7-baa0-000c29e6b568 COUNT_TRANSACTIONS_IN_QUEUE: 0 COUNT_TRANSACTIONS_CHECKED: 0 COUNT_CONFLICTS_DETECTED: 0 COUNT_TRANSACTIONS_ROWS_VALIDATING: 0 TRANSACTIONS_COMMITTED_ALL_MEMBERS: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1-12 LAST_CONFLICT_FREE_TRANSACTION: root@localhost:(none) 04:47:41>select * from performance_schema.replication_group_member_stats \G ; *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier VIEW_ID: 15162633783937117:7 MEMBER_ID: 574d6e9a-fc15-11e7-9fcf-000c29879d51 COUNT_TRANSACTIONS_IN_QUEUE: 0 COUNT_TRANSACTIONS_CHECKED: 0 COUNT_CONFLICTS_DETECTED: 0 COUNT_TRANSACTIONS_ROWS_VALIDATING: 0 TRANSACTIONS_COMMITTED_ALL_MEMBERS: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1-12 LAST_CONFLICT_FREE_TRANSACTION: root@localhost:(none) 04:47:07>select * from performance_schema.replication_group_member_stats \G; *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier VIEW_ID: 15162633783937117:7 MEMBER_ID: e87b5168-fc15-11e7-9fcf-000c29879d51 COUNT_TRANSACTIONS_IN_QUEUE: 0 COUNT_TRANSACTIONS_CHECKED: 0 COUNT_CONFLICTS_DETECTED: 0 COUNT_TRANSACTIONS_ROWS_VALIDATING: 0 TRANSACTIONS_COMMITTED_ALL_MEMBERS: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1-12 LAST_CONFLICT_FREE_TRANSACTION:
查看replication连接status:
select * from performance_schema.replication_connection_status \G ; root@localhost:(none) 04:58:01>select * from performance_schema.replication_connection_status \G ; *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier GROUP_NAME: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa SOURCE_UUID: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa THREAD_ID: NULL SERVICE_STATE: ON COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1-5:8-15 LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00 *************************** 2. row *************************** CHANNEL_NAME: group_replication_recovery GROUP_NAME: SOURCE_UUID: THREAD_ID: NULL SERVICE_STATE: OFF COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00 root@localhost:tt 04:53:51>select * from performance_schema.replication_connection_status \G: *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier GROUP_NAME: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa SOURCE_UUID: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa THREAD_ID: NULL SERVICE_STATE: ON COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1-14 LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00 *************************** 2. row *************************** CHANNEL_NAME: group_replication_recovery GROUP_NAME: SOURCE_UUID: THREAD_ID: NULL SERVICE_STATE: OFF COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00 root@localhost:tt 04:53:10>select * from performance_schema.replication_connection_status \G ; *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier GROUP_NAME: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa SOURCE_UUID: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa THREAD_ID: NULL SERVICE_STATE: ON COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1-14 LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00 *************************** 2. row *************************** CHANNEL_NAME: group_replication_recovery GROUP_NAME: SOURCE_UUID: THREAD_ID: NULL SERVICE_STATE: OFF COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
查看replicaton的applier的状态:
select * from performance_schema.replication_applier_status \G ; root@localhost:(none) 04:59:09>select * from performance_schema.replication_applier_status ; +----------------------------+---------------+-----------------+----------------------------+ | CHANNEL_NAME | SERVICE_STATE | REMAINING_DELAY | COUNT_TRANSACTIONS_RETRIES | +----------------------------+---------------+-----------------+----------------------------+ | group_replication_applier | ON | NULL | 0 | | group_replication_recovery | OFF | NULL | 0 | +----------------------------+---------------+-----------------+----------------------------+ root@localhost:tt 04:59:16>select * from performance_schema.replication_applier_status ; +----------------------------+---------------+-----------------+----------------------------+ | CHANNEL_NAME | SERVICE_STATE | REMAINING_DELAY | COUNT_TRANSACTIONS_RETRIES | +----------------------------+---------------+-----------------+----------------------------+ | group_replication_applier | ON | NULL | 0 | | group_replication_recovery | OFF | NULL | 0 | +----------------------------+---------------+-----------------+----------------------------+ root@localhost:tt 04:54:03>select * from performance_schema.replication_applier_status ; +----------------------------+---------------+-----------------+----------------------------+ | CHANNEL_NAME | SERVICE_STATE | REMAINING_DELAY | COUNT_TRANSACTIONS_RETRIES | +----------------------------+---------------+-----------------+----------------------------+ | group_replication_applier | ON | NULL | 0 | | group_replication_recovery | OFF | NULL | 0 | +----------------------------+---------------+-----------------+----------------------------+
查看哪个是primary
select *from performance_schema.replication_group_members where member_id =(select variable_value from performance_schema.global_status WHERE VARIABLE_NAME= 'group_replication_primary_member');
五、重置操作:
a,重新声明组操作(关闭其它的库)
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' FOR CHANNEL 'group_replication_recovery'; SET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group=OFF;
其它的组上:
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' FOR CHANNEL 'group_replication_recovery'; START GROUP_REPLICATION;
b.允许当前server加入group,即便有事务不存在当前group:
group_replication_allow_local_disjoint_gtids_join = true
c.uninstall plugin:
UNINSTALL PLUGIN group_replication
问题:
1.表必须有主键(创建无主键的表不会报错,但在插入数据的时候会抛出:ERROR 3098 (HY000): The table does not comply with the requirements by an external plugin.)
create table t ( t int primary key)
2.
2018-01-16T12:10:56.431527Z 0 [ERROR] Plugin group_replication reported: 'This member has more executed transactions than those present in the group. Local transactions: b376058d-5762-11e7-baa0-000c29e6b568:1-2 > Group transactions: ' 2018-01-16T12:10:56.431608Z 0 [ERROR] Plugin group_replication reported: 'The member contains transactions not present in the group. The member will now exit the group.' 2018-01-16T12:10:56.431624Z 0 [Note] Plugin group_replication reported: 'To force this member into the group you can use the group_replication_allow_local_disjoint_gtids_join option'
group_replication_allow_local_disjoint_gtids_join = true
原因是因为建库时只是复制数据库到其它节点服务器上的,没有修改datadir下的auto.cnf文件里的uuid。把各uuid改成不一样就可以正常加入组,并正常的复制。
相关文章推荐
- MySQL-group-replication 配置步骤(推荐)
- centos7安装mysql5.7操作步骤
- MySQL5.7的安装与配置详细操作步骤
- 2440的PWM操作步骤
- 关闭防火墙操作步骤
- 为工作站安装原生Linux系统【操作步骤】 {Universal USB Installer}{第一版试验}
- c#创建WINDOWS服务新手实验操作步骤
- Group操作
- hadoop主节点(NameNode)备份策略以、恢复方法、操作步骤
- 学习笔记_JDBC_1_Demo1_连接数据库的基本操作和步骤
- Linux下通过script 命令记录(数据库)操作步骤
- gradle assemble打包操作简单步骤
- 新唐ISP操作步骤(转)
- 机器维护检查操作步骤详解
- Xcode工程项目改名的操作步骤
- JAVA连接SQL Server数据库的端口配置操作步骤
- 测试环境搭建(Jenkins)的一般操作步骤-Linux系统
- Centos7部署并破解confluence(知识库)详细操作步骤
- mysql 主从的复制的原理及操作步骤
- MySQL Group Replication简介