组复制

六、组复制

 1、修改
server_id=2
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW

transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="40223b85-80f5-11e8-9b54-5254009db25a"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "172.25.77.2:24901"
loose-group_replication_group_seeds= "172.25.77.2:24901,172.25.77.1:24901,172.25.77.3:24901"
loose-group_replication_bootstrap_group=off

loose-group_replication_ip_whitelist='127.0.0.1/8,172.25.77.0/24'
loose-group_replication_enforce_update_everywhere_checks=true
loose-group_replication_single_primary_mode=false

 2、server2主机配置
[root@server2 mysql]# pwd
/var/lib/mysql
[root@serve2 mysql]# rm -fr *
[root@server2 mysql]# /etc/init.d/mysqld start
[root@server2 mysql]# mysql -p

mysql> set sql_log_bin=0;
mysql> alter user root@localhost identified by 'Westos#123';
mysql> grant replication slave on *.* to repl@'%' identified by 'Westos#123';
mysql> flush privileges;
mysql> set sql_log_bin=1;
mysql> change master to master_user='repl',master_password='Westos#123' for channel 'group_replication_recovery';
mysql> install plugin group_replication soname 'group_replication.so';

mysql> set global group_replication_bootstrap_group=on;    ##只有server2主机做
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 | b9590fed-80f6-11e8-b64b-525400eec4fb | server2    |        3306 | ONLINE       |
+---------------------------+--------------------------------------+-------------+-------------+--------------+

 3、server1主机配置
##主配置文件只修改下面2行:
[root@server1 mysql]# vim /etc/my.cnf
server_id=1
loose-group_replication_local_address= "172.25.77.1:24901"

##启动脚本注释以下几行:
[root@server2 mysql]# vim /etc/init.d/mysqld
112             #[ $ret -ne 0 ] && return $ret
113             #initfile="$(install_validate_password_sql_file)"
114             #action $"Installing validate password plugin: " /usr/sbin/mysqld --data    dir="$datadir" --user=mysql --init-file="$initfile"
115             #ret=$?
116             #rm -f "$initfile"

##进入mysql配置
[root@server1 mysql]# /etc/init.d/mysqld start
[root@server2 mysql]# grep password /var/log/mysqld.log
[root@server2 mysql]# mysql -p

mysql> set sql_log_bin=0;
mysql> alter user root@localhost identified by 'Westos#123';
mysql> grant replication slave on *.* to repl@'%' identified by 'Westos#123';
mysql> flush privileges;
mysql> set sql_log_bin=1;
mysql> change master to master_user='repl',master_password='Westos#123' for channel 'group_replication_recovery';
mysql> install plugin group_replication soname 'group_replication.so';

mysql> set global group_replication_allow_local_disjoint_gtids_join=on;    ##server1和server3主机必须做

mysql> start group_replication;
mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-------------+-------------+--------------+
| group_replication_applier | 2e07d15c-80fd-11e8-ba64-5254009db25a | server3     |        3306 | ONLINE       |
| group_replication_applier | 39bb4704-80fe-11e8-ba10-5254008d996b | server1     |        3306 | ONLINE       |
| group_replication_applier | b9590fed-80f6-11e8-b64b-525400eec4fb | server2     |        3306 | ONLINE       |
+---------------------------+--------------------------------------+-------------+-------------+--------------+

 4、server3主机同上,即可实现

 5、测试:3个主机均可在mysql进行读写操作

MySQL复制是一种MySQL数据库的高可用性解决方案,它通过多个MySQL服务器节点之间的数据复制和同步来提供数据冗余和故障恢复能力。在复制中,多个MySQL节点被织成一个复制,其中一个节点被选举为主节点(Primary),其他节点作为备节点(Secondary)。 复制的主要特点如下: 1. 自动故障检测和恢复:当主节点发生故障时,系统会自动检测并将其中一个备节点提升为新的主节点,以保证数据的可用性和一致性。 2. 异步复制:主节点将更改操作记录到二进制日志(binary log),备节点通过读取主节点的二进制日志进行异步复制,保持数据的一致性。 3. 多主节点支持:复制允许多个主节点存在于同一个复制中,每个主节点可以独立地处理写入操作,并将更新传播到其他节点。 4. 自动拓扑调整:当新增或移除节点时,复制会自动调整拓扑结构,确保数据的连续性和高可用性。 5. 事务一致性:在复制中,事务在主节点上提交后才被认为是成功的,并且会同步到备节点上。 需要注意的是,复制并不是解决所有问题的银弹。在实际使用中,仍然需要注意数据一致性、网络延迟、节点故障切换等因素,以确保系统的可用性和性能。 这是对MySQL复制的简要解释,如需更详细的内容,请参考MySQL官方文档或其他相关资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值