如上所述,我们创建了测试库、表、数据,这些数据变更被写入了二进制日志中,这样,其他节点将写入数据的组成员选做donor节点时,就可以通过这些二进制日志记录来做分布式恢复,从而实现数据同步 。2.1.6. 向组中添加实例 此时,组中已有一个成员s1,且其中包含一些数据 。现在,假设我们需要扩展s2和s3两个MySQL 到组中 。2.1.6.1. 添加第二个实例 首先,为名为s2的MySQL 创建配置文件 。与配置名为s1的MySQL 的系统变量相比,除了和之外,其余配置与s1中使用的配置类似 。如下:
[mysqld]## Disable other storage engines#disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"## Replication configuration parameters#server_id=2gtid_mode=ONenforce_gtid_consistency=ONbinlog_checksum=NONE## Group Replication configuration#transaction_write_set_extraction=XXHASH64group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"group_replication_start_on_boot=offgroup_replication_local_address= "s2:33061"group_replication_group_seeds= "s1:33061,s2:33061,s3:33061"group_replication_bootstrap_group= off
与s1的配置过程类似,在s2的进程启动完成之后,按照以下方式配置分布式恢复所需的用户凭证,建议使用与s1 配置过程中完全一致的语句进行操作 。
SET SQL_LOG_BIN=0;CREATE USER rpl_user@'%' IDENTIFIED BY 'password';GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';SET SQL_LOG_BIN=1;CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='password'FOR CHANNEL 'group_replication_recovery';
如果用户使用了SHA-2身份验证插件(MySQL 8中的默认插件),则启用加密连接相关的步骤参考"2.1.3. 用户凭证" 。如果需要动态加载MGR插件,可参考"2.1.4. 启动组复制" 。登录s2数据库中,使用如下语句启动组复制,此时,s2开始执行加入组的过程 。
# 对于启动组复制的操作步骤,与s1相比,少了使用系统变量group_replication_bootstrap_group来引导组的步骤,因为s1启动时,已经引导过组了,即,组已存在,后续加入组的其他Server不需要也不允许做引导组的操作,否则会导致脑裂 。s2要做的只是启动复制组,加入组即可mysql> START GROUP_REPLICATION;
注意:当s2的组复制成功启动并成功加入组时,它将检查s2的系统变量的值 。并动态将s2的系统变量设置为ON,同时同步到配置文件中进行持久化,以确保任何情况下只读节点都不能够接受写事务 。但是,如果应该以读写模式加入组,例如:作为单主模式中的主要节点,或者作为多主模式中的组成员(多主模式下,所有组成员都是主要节点),就算系统变量被设置为ON,在该加入组成功时,会自动将其设置为OFF,以便允许写事务访问 。查看.mbers表中的数据,可以发现组中已经存在2个处于状态的成员了 。
mysql> SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+| group_replication_applier | 395409e1-6dfa-11e6-970b-00212844f856 | s1 | 3306 | ONLINE | PRIMARY | 8.0.17 || group_replication_applier | ac39f1e6-6dfa-11e6-a69d-00212844f856 | s2| 3306 | ONLINE | SECONDARY | 8.0.17 |+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+2 rows in set (0.00 sec)
- 【Kerberos】开启了kerberos的ambari中组件shell访问
- Hadoop集群下安装并运行一个Hama实例
- conda无法更新或安装模块
- 电脑不能安装linux系统安装软件,没网情况用U盘安装Ubuntu20
- centos7 物理机安装后没有网卡解决办法
- 安装OpenWrt到电脑,安装包选哪个?
- Java swing中树状组件JTree的使用,左边点击不同菜单
- 电源全模组和直出线哪个好
- Ubuntu 20.04 安装一直卡在 “更新和其他软件“ 界面
- U盘安装Linux时非常卡