标签:编码 tran sql 开始 global server replicat bootstra 17.
1、组Replication Server设置
[mysqld]
# server configuration
datadir=<full_path_to_data>/data/s1
basedir=<full_path_to_bin>/mysql-8.0/
port=24801
socket=<full_path_to_sock_dir>/s1.sock
注意
使用非默认端口24801是因为在本教程中,三个服务器实例使用相同的主机名。在具有三台不同机器的设置中,这不是必需的。
2、复制框架配置
在my.cnf中的[mysqld]下添加以下信息
server_id=1
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_checksum=NONE
log_bin=binlog
log_slave_updates=ON
binlog_format=ROW
master_info_repository=TABLE
relay_log_info_repository=TABLE
3、组复制设置
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= "188.102.17.179:2525"
loose-group_replication_group_seeds= "188.102.17.179:2525,188.102.17.180:2525,188.102.4.131:2525"
loose-group_replication_bootstrap_group=off
注意:
如果在启动服务器时尚未加载组复制插件,则上述变量loose-使用 的前缀 group_replication指示服务器继续启动。
配置 transaction_write_set_extraction
指示服务器对于每个事务,它必须收集写集并使用XXHASH64散列算法将其编码为散列。从MySQL 8.0.2开始,此设置是默认设置,因此可以省略此行。
配置 group_replication_group_name
必须是有效的UUID。在二进制日志中为组复制事件设置GTID时,将在内部使用此UUID。使用SELECT UUID()生成一个UUID。
配置 group_replication_start_on_boot
指示插件在服务器启动时不自动启动操作。这在设置组复制时很重要,因为它确保您可以在手动启动插件之前配置服务器。
配置成员后,可以设置 group_replication_start_on_boot 为on,以便在服务器引导时自动启动Group Replication。
配置 group_replication_local_address
告诉插件本机使用网络地址127.0.0.1和端口24901与组中的其他成员进行内部通信。
重要
组复制使用此地址进行使用XCom的内部成员到成员连接。此地址必须与用于SQL的主机名和端口不同,并且不得用于客户端应用程序。
在运行组复制时,必须为组成员之间的内部通信保留它。
配置的网络地址 group_replication_local_address
必须可由所有组成员解析。例如,如果每个服务器实例位于具有固定网络地址的其他计算机上,则可以使用计算机的IP,例如10.0.0.1。
如果使用主机名,则必须使用完全限定名称,并确保它可通过DNS,正确配置的/etc/hosts 文件或其他名称解析过程进行解析。
建议的端口 group_replication_local_address 是33061.在本教程中,我们使用在一台计算机上运行的三个服务器实例,因此端口24901到24903用于内部通信网络地址。
配置 group_replication_group_seeds
设置组成员的主机名和端口,新成员使用它们建立与组的连接。这些成员称为种子成员。建立连接后,将列出组成员身份信息 performance_schema.replication_group_members。
通常,group_replication_group_seeds 列表包含hostname:port每个组成员的列表 group_replication_local_address,但这不是强制性的,可以选择组成员的子集作为种子。
重要,该hostname:port列在 group_replication_group_seeds 是种子构件的内部网络地址,由被配置 group_replication_local_address ,
而不是SQL hostname:port用于客户端连接,并且例如在显示 performance_schema.replication_group_members 表中。
4、具体部署操作
1)、创建复制账号
(可在加入组复制前,各节点先创建账号,就无需关闭打开日志)
SET SQL_LOG_BIN=0;(可无)
CREATE USER rpl_user@‘%‘ IDENTIFIED BY ‘password‘;
GRANT REPLICATION SLAVE ON *.* TO rpl_user@‘%‘;
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;(可无)
CHANGE MASTER TO MASTER_USER=‘repli‘, MASTER_PASSWORD=‘repli@%‘ FOR CHANNEL ‘group_replication_recovery‘;
2)、安装组插件
INSTALL PLUGIN group_replication SONAME ‘group_replication.so‘;
3)、查看安装情况及设置白名单
SHOW PLUGINS;
show global variables like ‘group_replication_ip_whitelist‘;
SET GLOBAL group_replication_ip_whitelist="188.102.17.179,188.102.17.180,188.102.4.131";
(成功后在添加到配置文件中,永久生效)
4)、启动同步复制
SET GLOBAL group_replication_bootstrap_group=ON; (主节点必须执行,其他节点不需要执行)
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group = OFF; (主节点必须执行,其他节点不需要执行)
查看集群节点情况:
SELECT * FROM performance_schema.replication_group_members;
查看事务复制信息:
select * from performance_schema.replication_connection_status\G
5、测试
主节点:
CREATE DATABASE test;
USE test;
CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL);
INSERT INTO t1 VALUES (1, ‘Luis‘);
SELECT * FROM t1;
SHOW BINLOG EVENTS;
从节点:
show databases;
use test
show tables;
select * from t1;
标签:编码 tran sql 开始 global server replicat bootstra 17.
原文地址:https://www.cnblogs.com/mysql-hongling/p/9556679.html