PXC集群的部署安装

部署安装三节点的PXC

节点 端口 容器名称 数据卷
node1 13306 pxc_node1 v1
node2 13307 pxc_node2 v2
node3 13308 pxc_node3 v3

 

#创建数据卷(存储路径:/var/lib/docker/volumes)
docker volume create v1
docker volume create v2
docker volume create v3
#拉取镜像
docker pull percona/percona-xtradb-cluster:5.7

#重命名
docker tag percona/percona-xtradb-cluster:5.7 pxc
#创建网络
docker network create --subnet=172.30.0.0/24 pxc-network

docker create -p 13306:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc --name=pxc_node1 --net=pxc-network --ip=172.30.0.2 pxc

#第二节点(增加了CLUSTER_JOIN参数)
docker create -p 13307:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc --name=pxc_node2 -e CLUSTER_JOIN=pxc_node1 --net=pxc-network --ip=172.30.0.3 pxc

#第三节点(增加了CLUSTER_JOIN参数)
docker create -p 13308:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e CLUSTER_NAME=pxc --name=pxc_node3 -e CLUSTER_JOIN=pxc_node1 --net=pxc-network --ip=172.30.0.4 pxc

 

需要注意的是:先启动第一个节点,等到mysql客户端可以连接到服务后再启动其它节点。

测试

PXC集群的部署安装_第1张图片PXC集群的部署安装_第2张图片PXC集群的部署安装_第3张图片

 

在任一个节点

#查看集群节点
show status like 'wsrep_cluster%';

PXC集群的部署安装_第4张图片

 

在任意一个节点创建数据库,表,插入数据,在其它的节点都会自动将数据同步

测试创建表

CREATE TABLE `tb_ad` (
	`id` BIGINT ( 20 ) NOT NULL AUTO_INCREMENT,
	`type` INT ( 10 ) DEFAULT NULL COMMENT '广告类型',
	`title` VARCHAR ( 100 ) DEFAULT NULL COMMENT '描述',
	`url` VARCHAR ( 200 ) DEFAULT NULL COMMENT '图片URL地址',
	`created` datetime DEFAULT NULL,
	`updated` datetime DEFAULT NULL,
PRIMARY KEY ( `id` ) 
) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8 COMMENT = '广告表';

插入数据

--插入测试数据 
INSERT INTO `tb_ad` ( `id`, `type`, `title`, `url`, `created`, `updated` )
VALUES
	( '1', '1', 'UniCity万科天空之城', 'http://itcast-haoke.oss-cn- qingdao.aliyuncs.com/images/2018/11/26/15432029097062227.jpg', '2018-11-26 11:28:49', '2018-11-26 11:28:51' );

结果如下 

PXC集群的部署安装_第5张图片

 

集群的说明

  • 尽可能的控制PXC集群的规模,节点越多,数据同步速度越慢
  • 所有PXC节点的硬件配置要一致,如果不一致,配置低的节点将拖慢数据同步速度
  • PXC集群只支持InnoDB引擎,不支持其他的存储引擎


PXC集群方案与Replication区别

  • PXC集群方案所有节点都是可读可写的,Replication从节点不能写入,因为主从同步是单向的,无法从slave节点向master点同步。
  • PXC同步机制是同步进行的,这也是它能保证数据强一致性的根本原因,Replication同步机制是异步进行的,它如果从节点停止同步,依然可以向主节点插入数据,正确返回,造成数据主从数据的不一致性。
  • PXC是用牺牲性能保证数据的一致性,Replication在性能上是高于PXC的。所以两者用途也不一致。PXC是用于重要信息的存储,例如:订单、用户信息等。Replication用于一般信息的存储,能够容忍数据丢失,例如:购物车,用户行为日志等。

你可能感兴趣的:(开发环境,数据库)