如何搭建MySQL组复制测试环境

分类:编程技术 时间:2024-02-20 16:02 浏览:0 评论:0
0
本文与大家分享如何搭建MySQL Group Replication测试环境。小编觉得还是比较实用的,所以分享给大家,作为参考。下面就跟随小编来看看吧。

最近看了一下MySQL 5.7中的闪亮功能Group Replication,并花了很多时间做了一些测试,发现在某些方面的性能确实不错。当然,模拟这样的环境还是需要花费很大的功夫的。一般来说,是一个三节点环境。在实践中,找到这样的环境并不容易。我们如何快速模拟呢?一种方法是在一台服务器上设置多个实例。

这样服务器问题就解决了,接下来要解决的问题就困难多了,那就是部署环境。

可以看到各个博客都有详细的解释,官方文档也花了大量的篇幅来讲解构建过程,每一个步骤,每一个操作化,各参数含义。但尽管如此,一次性搭建成功这个环境的概率还是很低的。且不说初始化部分,就是添加节点的时候总是会出现一些问题。这些问题已经折磨了我好几天了。在许多情况下,故障排除需要减法。熟能生巧。搭建了十多次之后,我也简单总结一下我的经验。剧本就是这样的本质之一。

当然,这是一个非常初始的脚本。没有动态变量,也没有复杂的条件判断。我只是厌倦了订购这么多代码。经过反复尝试,我可以在一分钟内构建出一个满足基本要求的脚本。的环境.

我只会写一个相对简单的脚本。其实严格来说,它并不是一个剧本。初始化环境部分

mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/home/mysql/data/s1 --explicit_defaults_for_timestamp
mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/home/mysql/data/s2 --explicit_defaults_for_timestamp
mysqld --initialize-insecure --basedir= /usr/local/mysql --datadir =/home/mysql/data/s3 --explicit_defaults_for_timestamp
配置参数文件
chown -R mysql:mysql s1 s2 s3
cp s1.cnf s1
cp s2.cnf s2
cp s3 .cnf s3

chown -R mysql:mysql s1 s2 s3
启动MySQL服务
/usr/ local/mysql/bin/mysqld_safe --defaults-file=/home/mysql/data/s1/s1.cnf &
/usr/local/mysql/bin/mysqld_safe --defaults-file=/home/mysql /data/s2/s2.cnf &
/usr/local/mysql/bin/mysqld_safe --defaults-file=/home/mysql/data/s3/s3.cnf &
暂停几下秒保证服务能够正常启动
sleep 10
连接各个实例,查看数据库是否可用
/usr/local/mysql/bin/mysql -P24081 -S /home /mysql/s1.sock -e "显示数据库"
/usr/local/mysql/bin/mysql -P24082 -S /home/mysql/s2.sock -e "显示数据库"
/usr/local/mysql/bin/mysql -P24083 -S /home/mysql/s3.sock -e "显示数据库"

< p>
连接第一个节点,运行以下脚本,初始化安装GR插件,并进行基本配置 mysql -P24081 -S /home/ mysql/s1.sock -e "
SET SQL_LOG_BIN=0;
创建用户 rpl_user@'%';
将 *.* 上的复制从属授予由 'rpl_pass' 标识的 rpl_user@'%';
刷新权限;< br/>SET SQL_LOG_BIN=1;
将 MASTER 更改为 MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass'
                 FOR CHANNEL 'group_replication_recovery';
安装插件 group_replication SONAME 'group_replication.so'; FOR CHANNEL 'group_replication_recovery';
安装插件 group_replication SONAME 'group_replication.so';LICATION;
设置全局 group_replication_bootstrap_group =OFF;
select *from Performance_schema.replication_group_members;
"

连接第二个节点,初始化GR插件及基本配置,和一个节点略有不同。 mysql -P24082 -S /home/mysql/s2.sock -e "
SET SQL_LOG_BIN=0;
CREATE USER rpl_user@'%';
GRANT *.* 上的复制从站到由 'rpl_pass' 标识的 rpl_user@'%';
SET SQL_LOG_BIN=1;
将主服务器更改为 MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass'
         FOR频道 'group_replication_recovery';
安装插件 group_replication SONAME 'group_replication.so';
set global group_replication_allow_local_disjoint_gtids_join=on;
start group_replication;
select *from Performance_schema.replication_group_members;
"

连接到第二个节点,初始化GR插件及基本配置,与第一个节点略有不同 mysql -P24083 -S /home/mysql/s3.sock -e "
SET SQL_LOG_BIN=0;
CREATEUSER rpl_user@'%';
将 *.* 上的复制从属授予由 'rpl_pass' 标识的 rpl_user@'%';
SET SQL_LOG_BIN=1;
将 MASTER 更改为 MASTER_USER='rpl_user ', MASTER_PASSWORD='rpl_pass'
        FOR CHANNEL 'group_replication_recovery';
安装插件 group_replication SONAME 'group_replication.so';
设置全局 group_replication_allow_local_disjoint_gtids_join=on;
启动 group_replication ;
select *from Performance_schema.replication_group_members;
"参数文件的模板如下,除了红色部分,其他都可以保持不变。这里我使用的端口是24801,不是默认的3306,当然没有限制。

[mysqld]

#服务器配置
datadir=/home/mysql/data/s1
basedir=/ usr/local/mysql

port=24801
socket=/home/mysql/s1.sock


server_id=1
gtid_mode =ON
enforce_gtid_consistency=ON
master_info_repository=表
relay_log_info_repository=表
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW

transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="1bb1b861-f776-11e6- be42-782bcb377193"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "127.0.0.1:24901"
loose-group_replication_group_seeds= "127.0.0.1:24901,127.0.0.1:24902,127.0 .0.1:24903"
loose-group_replication_bootstrap_group= off

运行脚本输出如下,最后显示节点添加成功。

+----- ----------------------+-------------------- -------- ----------+-------------+-------------+--- ------- ----+
|频道名称 |会员 ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
+------------------------ --+---------------------------- ----------------------+-------- -----+---------- ---+--------------+
|组复制应用程序b3684636-f83d-11e6-bd53-782bcb377193 |测试| 24801 | 24801在线|
|组复制应用程序b4a7d208-f83d-11e6-be4e-782bcb377193 |24802 |在线|
|组复制应用程序b5eecf1d-f83d-11e6-80d7-782bcb377193 |测试| | 24803 | 24803在线 |
+------------------ ---------+---------------- --------------------------+- ------------+--------- ----+-------------+

感谢您的阅读!这篇关于《如何搭建MySQL Group Replication测试环境》的文章就分享到这里。希望以上内容能够给大家带来一些帮助,让大家学到更多的知识。如果您觉得文章不错,可以分享给其他人。让更多人看到!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何搭建MySQL组复制测试环境

用户评论