文档详情

Mysql数据库集群部署和方案设计.docx

发布:2022-03-04约2.36千字共7页下载文档
文本预览下载声明
? ? mysql5.7.25集群部署和方案设计 ? ? 脚本后续更新及迭代将由kkitDeploy项目代替 /luckman666/kkitdeploy_server 请大家持续关注kkitDeploy 还记得我们之前部署mysql集群有多麻烦嘛?波哥来救你们啦!~ 我已将项目上传到了我的github仓库中,大家可以点击仓库地址出现的连接登录查看相应的代码!如果觉得不错别忘了转发、点赞哦! 部署步骤: git clone /luckman666/deploy_mysql_cluster.git cd deploy_mysql_cluster **# 编辑bash.config参数** chmod -R 755 . ./deploy_mysql_master.sh 以上几步就完成了一套多节点多主多从故障自动切换的mysql数据库集群。 使用及注意事项: 如果集群出现某一节点出现故障: 1、集群会立刻将其剔除集群,停止同步。 2、(主节点故障)keepalived两秒内会感知mysql故障,从集群中踢除本节点mysql,本节点降权并将VIP漂移至完好节点,整个集群继续提供服务。 3、(从节点故障)keepalived直接关闭该节点服务,将该节点剔除集群。 故障修复后加入集群方式: 恢复节点上执行此命令(注意修改参数): docker run -d -p 3306:3306 -p 4444:4444 -p 4567:4567 -p 4568:4568 -e MYSQL_ROOT_PASSWORD=mysqlroot密码 -e CLUSTER_JOIN=主节点主机名(mysql1) -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=mysqlroot密码 -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/backup:/data -v /etc/localtime:/etc/localtime:ro -v /var/run/docker.sock:/var/run/docker.sock --privileged -e character-set-server=utf8mb4 -e collation-server=utf8mb4_unicode_ci --name=故障节点主机名 --net=swarm_mysql docker.io/percona/percona-xtradb-cluster 同步完成后启动再keepalived systemctl restart keepalived 检查keepalived启动状态 systemctl status keepalived 通过工具或者查看容器日志查看mysql运行是否良好! 如果发现keepalived启动后报127异常退出的错误 那么请升级系统内核至4+版本脚本内容如下: #!/bin/bash setupkernel(){ rpm --import [/RPM-GPG-KEY-](/RPM-GPG-KEY-) rpm -Uvh [/elrepo-release-7.0-3.el7.elrepo.noarch.rpm](/elrepo-release-7.0-3.el7.elrepo.noarch.rpm) yum --enablerepo=elrepo-kernel install -y kernel-lt kernel-lt-devel grub2-set-default 0 reboot } setupkernel 设计这套mysql的集群方案主要是面向我司的账单系统。因为都是账单数据,对于数据的丢失的容忍度为0。所以采用多节点强制同步的PXC集群方式。部署采用docker方式,网络方案采用swarm的overlay网络,冗余策略是keepalived 大家可能对pxc集群方案略有陌生这里简单给大家介绍一下: 1、传统的Repliaction 集群方案(1主多从) 2、PXC 集群方案( Percona XtraDB Cluster 多主多从) 方案场景对比: Repliaction 集群同步方式概览: PXC 集群方案( Percona XtraDB Cluster ) 可以看到PXC是数据强一致性的集群,事务在所有集群节点要么同时提交,要么不提交。而Replication 采用异步复制,无法保证数据的一致性。 因为项目数据库是主要用来存储账单和钱款的,所以就采用了PXC的集群方式。 为什么用了swarm? k8s确实强大但是只适合大规模集群,对于中小集群还是swarm最为合适。毕竟是docker亲生的儿子。各种角度都集成的比较好。所以在确定了mysql的集群方式为PX
显示全部
相似文档