本文共 2003 字,大约阅读时间需要 6 分钟。
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。
优点:
1.当执行一个查询时,在本地节点上执行。因为所有数据都在本地,无需远程访问。 2.无需集中管理。可以在任何时间点失去任何节点,但是集群将照常工作。 3.良好的读负载扩展,任意节点都可以查询。缺点:
1.加入新节点,开销大。需要复制完整的数据。 2.不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上。 3.有多少个节点就有多少重复的数据。docker pull percona/percona-xtradb-cluster:5.7
docker tag percona/percona-xtradb-cluster:5.7 pxc
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等工具测试连接。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
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
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
转载地址:http://mqhnx.baihongyu.com/