docker&&mgr&&maxscale

docker容器下的mgr集群,研究maxscale的转发规则

docker快速启动mysql集群

docker下载&&安装&&启动

wget https://mirrors.cloud.tencent.com/docker-ce/linux/static/stable/x86_64/docker-19.03.9.tgz
tar -xf docker-19.03.9.tgz
mv docker /usr/local/
ln -s /usr/local/docker/* /usr/local/bin/
dockerd &
docker version

load docker镜像

docker load < aa65c3d806de.tar
docker images

创建docker容器通信网段

docker network create --subnet=172.18.0.0/16 mynetwork

mv newdk /usr/local/bin/
newdk 80 1 在172.18.80.x网段创建172.18.80.1的ip,使用这个ip创建一个mysql的镜像容器

#newdk文件内容
#!/bin/bash

if (( $2<10 ))
then
  name_tail=0$2
else
  name_tail=$2
fi

if (( $1==57 ))
then
  docker run --hostname mysql80-${name_tail} --name mysql57-${name_tail} --network mynetwork --ip 172.18.57.$2 -it -d -w /root mysql-autostart:5.7.30 /bin/bash
elif (( $1==80 ))
then
  docker run --hostname mysql80-${name_tail} --name mysql80-${name_tail} --network mynetwork --ip 172.18.80.$2 -it -d -w /root mysql-autostart:8.0.21 /bin/bash
else
  docker run --hostname dk-${name_tail} --name dk-${name_tail} --network mynetwork --ip 172.18.1.$2 -it -d -w /root --privileged=true centos-custom:7.4 /usr/sbin/init
fi

docker ps -a

CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS                    PORTS               NAMES
771dfad329d1        mysql-autostart:8.0.21   "/root/docker-entryp…"   9 days ago          Up 8 days                                     mysql80-01

关闭selinux 防火墙

setenforce 0
systemctl stop firewalld

启动其他几个mysql实例
newdk 80 2

newdk 80 3

登陆容器并进入mysql

docker exec -it 容器id bash
mysql -uroot -pletsg0 -h172.18.80.1 -P3306
which mysql
yum install crypto*

mgr学习资料

环境:

docker容器启动的mysql实例

CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS                    PORTS               NAMES
58308933687b        mysql-autostart:8.0.21   "/root/docker-entryp…"   9 days ago          Up 8 days                                     mysql80-09
64773d2e3a28        mysql-autostart:8.0.21   "/root/docker-entryp…"   9 days ago          Up 8 days                                     mysql80-08
771dfad329d1        mysql-autostart:8.0.21   "/root/docker-entryp…"   9 days ago          Up 8 days                                     mysql80-07

修改配置文件

#### Group Replication #mgr配置的相关参数 需要group_replication插件
plugin-load-add='group_replication.so'
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_enforce_update_everywhere_checks=off
loose-group_replication_ip_whitelist='0.0.0.0/0'                            #格式类似于阿里云的http白名单
loose-group_replication_local_address='172.18.80.7:33061'                   #都写当前机器的ip 端口
loose-group_replication_group_seeds='172.18.80.7:33061,172.18.80.8:33061,172.18.80.9:33061'   #其群中所有机器的ip &&端口
loose-group_replication_bootstrap_group=off
loose-group_replication_single_primary_mode=on
loose-group_replication_clone_threshold=50000

#### Clone Plugin   #利用clone plugin 主从搭建,初始化从库,达到跟主库基本一致的环境。也可以通过xtrbackup进行主从搭建
plugin-load-add=mysql_clone.so
loose-clone_autotune_concurrency=ON
loose-clone_max_concurrency=16
loose-clone_max_data_bandwidth=100
loose-clone_max_network_bandwidth=100
loose-clone_ddl_timeout=300
#### 修改后重启mysql实例

配置文件参数:

group_replication_group_seeds参数为种子节点的service地址

group_replication_local_address为当前节点service地址 

  >就是本机的ip

group_replication_start_on_boot在有PRIMARY节点时,建议重新设置为ON

group_replication_clone_threshold为超过指定事务延迟数量后触发Clone Plugin重搭备库 #----自动解决主从延迟问题

从库clone主库数据(初次创建可忽略)

可参考https://blog.csdn.net/n88Lpo/article/details/105872240

SET GLOBAL clone_valid_donor_list = '[主库ip]:[主库数据库端口]'
CLONE INSTANCE FROM '[主库管理权限账号]'@'[主库ip]':[主库数据库端口] IDENTIFIED BY '[用户密码]' ;
集群创建
  • 创建用户(可以加入到docker-entrypoint.sh)
mysql> SET SQL_LOG_BIN=0;
mysql> CREATE USER rpl_user@'%' IDENTIFIED WITH mysql_native_password BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
mysql> GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';
  • 配置复制通道(所有members都指定复制通道)
mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='password' FOR CHANNEL 'group_replication_recovery';
  • 启动集群
### 引导节点启动
mysql> SET GLOBAL group_replication_bootstrap_group=ON;
mysql> START GROUP_
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值