docker学习系列13 实现 基于pxc 的mysql 多节点主主同步
背景
MySQL本身是开源的,有些公司或社区基于MySQL发布了新的分支,如有名的MariaDB。
在介绍 Percona 之前,首要要介绍的是XtraDB存储引擎,在MYSQL中接触比较多的是MyISAM 和 InnoDB这两个存储引擎。
MySQL 4 和 5 使用默认的 MyISAM 存储引擎安装每个表。从5.5开始,MySQL已将默认存储引擎从 MyISAM 更改为 InnoDB。MyISAM 没有提供事务支持,而 InnoDB 提供了事务支持。与 MyISAM 相比,InnoDB 提供了许多细微的性能改进,并且在处理潜在的数据丢失时提供了更高的可靠性和安全性。
Percona Server由领先的MySQL咨询公司Percona发布。Percona Server是一款独立的数据库产品,其可以完全与MySQL兼容,可以在不更改代码的情况了下将存储引擎更换成XtraDB 。
Percona XtraDB Cluster 完全兼容MySQL。
常见MySQL集群方案
Percona XtraDB Cluster优缺点
优点:
1.当执行一个查询时,在本地节点上执行。因为所有数据都在本地,无需远程访问。
2.无需集中管理。可以在任何时间点失去任何节点,但是集群将照常工作。
3.良好的读负载扩展,任意节点都可以查询。
缺点:
1.加入新节点,开销大。需要复制完整的数据。
2.不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上。
3.有多少个节点就有多少重复的数据。
基于Docker的实现流程
- 拉镜像
docker pull percona/percona-xtradb-cluster:5.7
- 镜像名字有点长,起个短点的
docker tag percona/percona-xtradb-cluster:5.7 pxc
- 出于安全考虑,针对PXC集群实例创建内部网络
创建的时候通过参数指定IP段和子网掩码,Docker默认使用的IP 172.17.0.1,我们换个别的。docker network create --subnet=172.18.0.0/24 pxc-network
- 创建第一个节点
docker run -d -p 33010:3306 -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc_cluster --name=pxc_node1 --net=pxc-network --172.18.0.2 pxc
执行 docker logs pxc_node1
查看执行状态,如果看到 mysqld: ready for connections.
就可以使用navicat等工具测试连接。 - 创建第二个数据库节点,并加入到第一个集群中,注意多了 CLUSTER_JOIN 参数
docker run -d -p 33011:3306 -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc_cluster -e CLUSTER_JOIN=pxc_node1 --name=pxc_node2 --net=pxc-network --172.18.0.3 pxc
- 创建第三个数据库节点,并加入到第一个集群中,注意多了 CLUSTER_JOIN 参数
docker run -d -p 33012:3306 -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc_cluster -e CLUSTER_JOIN=pxc_node1 --name=pxc_node3 --net=pxc-network --172.18.0.4 pxc
- 接下来可以创建第N个节点,注意参数如容器名称 --name 和映射的端口别冲突;
- 测试:本地连接这三个节点,在其中一个创建demo数据,其他节点都自动同步数据过去了
注意
- 启动第一个节点后记得使用docker logs查看启动状态,然后使用navicat等工具测试连接,等第一个mysql运行成功后再运行第二个容器。否则第二个起不来,需要重新启动容器。
- 如果停掉某一节点
docker stop pxc_node1
再启动时docker start pxc_node1
可能会发现连接不上了。这时候可以删除容器,重新运行,命令类似docker run -d -p 33010:3306 -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc_cluster -e CLUSTER_JOIN=pxc_node2 --name=pxc_node1 --net=pxc-network --172.18.0.2 pxc
参考
https://www.percona.com/doc/percona-xtradb-cluster/LATEST/install/docker.html
https://www.percona.com/doc/percona-xtradb-cluster/5.7/index.html
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云OSS冰点特价 云存储 1TB 三年 99元
阿里云OSS冰点特价 云存储 1TB 三年 99元 活动专属页面:购买连接 阿里云1000元大礼包 先领券后购买:领取大礼包活动时间:2018年7月30日至2018年10月30日 一、对象存储特惠活动: 活动期间,用户新购、续费指定规格享受以下2选1优惠:1)3年1TB对象存储存储包 99元特价;2)3年10TB对象存储存储包 999元特价 每位用户仅能参与一次活动,限同人 优惠活动不与对象存储其他优惠同时享受 活动价格购买的存储包不可退款,购买后不可更换地域,请注意购买前进行合理选择 如用户存在作弊、欺诈或通过其他非正常手段获取利益的行为,阿里云有权收回相关权益 二、文件存储特惠活动: 活动时间内,用户新购享受以下优惠:1)100G容量型存储包一年99元 每位用户仅能参与一次活动,限同人 优惠活动不与文件存储其他活动同时享受 活动价格购买的存储包不可退款,购买后不可更换地域,请注意购买前进行合理选择 如用户存在作弊、欺诈或通过其他非正常手段获取利益的行为,阿里云有权收回相关权益 三、混合云备份免费试用活动: 活动时间内,以下规格混合云备份服务享受免费试用:1) 混合云备份客户端 5个...
- 下一篇
CentOS7下安装Mesos教程
基于centos7,安装mesos以及相关示例运行的教程。 转载请注明出处:https://blog.lzoro.com,谢谢~ Mesos简介 Mesos is built using the same principles as the Linux kernel, only at a different level of abstraction. The Mesos kernel runs on every machine and provides applications (e.g., Hadoop, Spark, Kafka, Elasticsearch) with API’s for resource management and scheduling across entire datacenter and cloud environments. Mesos是根据Linux内核相同原则而创建的,而不同点仅是在于抽象的层面。Mesos内核运行在每一个机器上,同时通过 API 为各种应用提供跨数据中心和云的资源管理调度能力(如:Hadoop、Spark、Kafka、Elasti...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7