栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

mysql pxc 高可用多主机离线部署

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql pxc 高可用多主机离线部署

mysql pxc高可用

跨主机部署pxc

本文使用docker进行安装,主机间通过docker swarm网络进行通讯。不了解Docker的请自行先网上看以下教程入门一下。这里没有深入的Docker知识,只要跟着命令做就可以了。

三台主机都安装好了docker:

虚拟ip主机IP
node1192.168.56.100
192.168.56.120node2192.168.56.101
node3192.168.56.102
1. 在3台主机上配置swarm

创建 /home/pxc

mkdir -p /home/pxc && cd /home/pxc

3台机器分别将package拷贝到 /home/pxc3台主机安装docker

cd /home/pxc/package/installDockerEnv && chmod +x installDocker.sh && ./installDocker.sh

在node1上执行:

docker swarm init --advertise-addr 192.168.56.100

返回类似以下内容:

docker swarm join --token SWMTKN-1-614xi9dvksycykobgifxb4pgopc1wwgczwqct5wqkq8zao6tmx-0ds4jj3ozclrr2wukcaoakxso 192.168.56.100:2377

在node2、node3上执行上面的返回结果:

shell docker swarm join --token SWMTKN-1-2c2xopn2rld8oltcof24sue370681ijhbo3bwcqarjlhq9lkea-2g53o5qn2anre4j9puv4hecrn 192.168.0.101:2377
2. 创建swarm网络

在node1上执行以下命令:

docker network create -d overlay --attachable pxc_swarm
3. 3台主机导入PXC镜像
cd /home/pxc/package/images && chmod +x images-load.sh && ./images-load.sh
4. 创建文件

在3台服务器上分别执行以下命令:

mkdir -p /home/pxc/vol-pxc-n1 && chmod +777 /home/pxc/vol-pxc-n1 

mkdir -p /home/pxc/vol-pxc-n2 && chmod +777 /home/pxc/vol-pxc-n2 

mkdir -p /home/pxc/vol-pxc-n3 && chmod +777 /home/pxc/vol-pxc-n3 
5. 安装第一个节点

node1执行

docker run -d -v /home/pxc/vol-pxc-n1:/var/lib/mysql --name node1 -e CLUSTER_NAME=scsdm_pxc -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATAbase=scsdm -e MYSQL_USER=scsdm -e MYSQL_PASSWORD=scsdm123 --net=pxc_swarm --privileged --restart=always percona/percona-xtradb-cluster:5.7.23

注意自行修改密码,不要使用过于简单的密码。参数说明:

CLUTER_NAME: 集群名称
MYSQL_ROOT_PASSWORD: root密码
MYSQL_DATAbase: 默认初始化数据库名
MYSQL_USER: 默认初始化账号
MYSQL_PASSWORD: 默认初始化密码

6. 加入其他节点 node2(192.168.56.101):
docker run -d -v /home/pxc/vol-pxc-n2:/var/lib/mysql --name node2 -e CLUSTER_NAME=scsdm_pxc -e CLUSTER_JOIN=node1 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATAbase=scsdm -e MYSQL_USER=scsdm -e MYSQL_PASSWORD=scsdm123 --net=pxc_swarm --privileged --restart=always percona/percona-xtradb-cluster:5.7.23
node3(192.168.56.102):
docker run -d -v /home/pxc/vol-pxc-n3:/var/lib/mysql --name node3 -e CLUSTER_NAME=scsdm_pxc -e CLUSTER_JOIN=node1 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATAbase=scsdm -e MYSQL_USER=scsdm -e MYSQL_PASSWORD=scsdm123 --net=pxc_swarm --privileged --restart=always percona/percona-xtradb-cluster:5.7.23
7.3台主机 Haproxy前端 编辑haproxy配置文件
mkdir -p /home/pxc/haproxy && chmod +777 /home/pxc/haproxy
vi /home/pxc/haproxy/haproxy.cfg

haproxy.cfg内容如下:

global
    maxconn     4000

defaults
        log     global
        log 127.0.0.1 local3
        mode    http
        option  tcplog
        option  dontlognull
        retries 10
        option redispatch
        maxconn         2000
        timeout connect         10s
        timeout client          1m
        timeout server          1m
        timeout http-keep-alive 10s
        timeout check           10s
######## 监控界面配置 #################	
listen  admin_stats
	#监控界面的访问的IP和端口
	bind  0.0.0.0:8888
	#访问协议
    mode        http
	#URI相对地址
    stats uri   /dbs
	#统计报告格式
    stats realm     Global statistics
	#登陆帐户信息
    stats auth  admin:admin
    # 隐藏HAProxy的版本号
    stats hide-version
    # 管理界面,如果认证成功了,可通过webui管理节点
    stats admin if TRUE
    # 统计页面自动刷新时间
    stats  refresh  30s
listen  mysql
        bind 0.0.0.0:3306
        mode tcp
        #负载均衡算法(轮询算法)
	    #轮询算法:roundrobin
	    #权重算法:static-rr
	    #最少连接算法:leastconn
	    #请求源IP算法:source 
        balance  roundrobin
	    option mysql-check
        server s1 node1:3306 check
        server s2 node2:3306 check
        server s3 node3:3306 check
	    # 使用keepalive检测死链
        option tcpka
        
        
8. 启动haproxy服务

在node1服务器上运行以下命令:

docker run -it -d -p 3306:3306 -p 8888:8888  -v /home/pxc/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg --name haproxy01 --net=pxc_swarm --privileged --restart=always haproxy:alpine

在node2服务器上运行以下命令:

docker run -it -d -p 3306:3306 -p 8888:8888  -v /home/pxc/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg --name haproxy02 --net=pxc_swarm --privileged --restart=always haproxy:alpine

在node3服务器上运行以下命令:

docker run -it -d -p 3306:3306 -p 8888:8888  -v /home/pxc/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg --name haproxy03 --net=pxc_swarm --privileged --restart=always haproxy:alpine
9.安装keepalive 3台都安装

安装依赖

cd /home/pxc/package/installKeepalived && chmod +x installKeepalived.sh && ./installKeepalived.sh

修改 keepalive配置

rm -rf /etc/keepalived/keepalived.conf && vi /etc/keepalived/keepalived.conf

global_defs {
   router_id LVS_2
   script_user root                    # 脚本执行用户
   enable_script_security              # 开启脚本安全权限
}

vrrp_script checkhaproxy
{
    script "/home/pxc/package/installKeepalived/check-haproxy.sh"  # 这个地址写的事容器内脚本路径
    interval 2
    weight -30
}

vrrp_instance VI_1 {
    state BACKUP
    interface enp0s3
    virtual_router_id 51
    priority 100
    advert_int 1
    nopreempt
    
    virtual_ipaddress {
      # 需要修改成对应的虚拟ip
        192.168.56.120
    }

    authentication {
        auth_type PASS
        auth_pass password
    }

    track_script {
        checkhaproxy
    }
}

启动

service keepalived start

设置开机自启

chkconfig keepalived on
systemctl list-unit-files | grep keepalived
10. 连接数据库

使用 虚拟ip 192.168.56.120 3306

访问 http://192.168.56.120:8888/dbs 进行监控

可以通过连接192.168.56.100 3306 192.168.56.101 3306 192.168.56.102 3306进行数据库操作了

访问 http://192.168.56.100:8888/dbs http://192.168.56.101:8888/dbs http://192.168.56.102:8888/dbs 分别进行监控

账号 admin

密码 admin


离线安装包
链接:https://pan.baidu.com/s/1LTA9ZEdAvCSftNRa8Ruc8Q
提取码:1234

详细过程

FAQ: 常用命令 1、查看swarm集群节点情况

在manager节点查看

docker node ls

2、查看网络情况
docker network ls

3、退出swarm集群

在需要退出的节点执行

docker swarm leave -f

在manager节点查看

docker node ls

4、重新加入swarm集群

在manager节点查看加入命令

docker swarm join-token worker

查看节点情况

docker node ls

5、删除无用的节点
docker node rm 节点   【强制移除运行中的节点】
docker node rm xlpm9aemu7psw5j7mi7udpbqq

查看节点情况

docker node ls

6、查看keepalived日志
tail -f /var/log/messages

常见错误 1、node1 pxc 出现错误日志

修改方法:

修改配置文件edit the grastate.dat file manually and set safe_to_bootstrap to 1 .

修改后

再次重启node1

2、浏览监控页面查看节点情况

访问 http://192.168.56.120:8888/dbs 进行监控

账号密码都是admin

正常情况

异常情况

恢复流程

检查服务器是否启动–>检查docker是否启动–>检查docker服务是否启动–>检查服务日志是否正常–>查看监控界面是否恢复

1、检查服务器是否启动

开启服务器

2、检查docker是否启动

启动docker

systemctl restart docker
systemctl status docker

3、检查docker服务是否启动

docker ps

docker ps -a

启动服务

docker start 179
docker start a79

访问对应node3机器的监控界面

http://192.168.56.102:8888/dbs

其他节点的监控界面

重启对应的节点的haproxy

docker restart haproxy01
docker restart haproxy02

集群恢复正常

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/705449.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号