当前位置:首页 > 数据库 > CentOS7下docker mysql PXC集群

CentOS7下docker mysql PXC集群

数据库3天前

CentOS7下docker mysql PXC集群

PXC全称为Percona Xtradb Cluster,基于Galera插件的MySQL集群,是一种MySQL高可用性和可扩展性的解决方案,特性为

1.同步复制,事务要么在所有节点提交或不提交

2.多主复制,可以在任意节点进行写操作

3.在从服务器上并行应用事件,真正意义上的并行复制

4.节点自动配置。

5.保证数据一致性,不再是异步复制


PXC优点为:

1.当执行一个查询时,在本地节点上执行。因为所有数据都在本地,无需进行远程访问

2.无需集中化管理,可以在任何时间点失去任何节点,集群将照常工作不受任何影响

3.良好的读负载扩展,任意节点都可以查询


PXC缺点为:

1.加入新节点,性能开销大,需要复制完整的数据到新节点

2.不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上

3.有多少个节点就有多少重复的数据


实验环境

pxcdb1 192.168.0.22

pxcdb2 192.168.0.23

pxcdb3 192.168.0.24


校准系统时间

yum install docker-ce docker-ce-cli containerd.io
yum install ntp ntpdate -y 
ntpdate 0.asia.pool.ntp.org
hwclock --systohc


系统配置

systemctl enable firewalld && systemctl start firewalld && systemctl status firewalld
echo 1 > /proc/sys/net/ipv4/ip_forward
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all

3306:数据库对外服务的端口

4444:请求增量同步

4567: 组成员之间进行沟通端口

4568: 传输全量同步用的


加速拉取

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
systemctl restart docker


拉取镜像并重命名

docker pull percona/percona-xtradb-cluster:5.7
docker tag percona/percona-xtradb-cluster:5.7 pxc
docker rmi percona/percona-xtradb-cluster:5.7


创建本地目录

mkdir -p /home/pxc/mysql /home/pxc/data
chmod 777 /home/pxc/mysql /home/pxc/data


启动节点1

docker run -d \
-v /home/pxc/mysql:/var/lib/mysql \
-v /home/pxc/data:/data \
-e MYSQL_ROOT_PASSWORD=Vos123com \
-e XTRABACKUP_PASSWORD=Vos123com \
-e CLUSTER_NAME=PXC \
--privileged --name=pxcdb1 --net=host pxc

启动后使用navicat进行测试连接,连接正常后再启动其他节点


启动节点2

docker run -d \
-v /home/pxc/mysql:/var/lib/mysql \
-v /home/pxc/data:/data \
-e MYSQL_ROOT_PASSWORD=Vos123com \
-e XTRABACKUP_PASSWORD=Vos123com \
-e CLUSTER_NAME=PXC \
-e CLUSTER_JOIN=192.168.0.22 \
--privileged --name=pxcdb2 --net=host pxc


启动节点3

docker run -d \
-v /home/pxc/mysql:/var/lib/mysql \
-v /home/pxc/data:/data \
-e MYSQL_ROOT_PASSWORD=Vos123com \
-e XTRABACKUP_PASSWORD=Vos123com \
-e CLUSTER_NAME=PXC \
-e CLUSTER_JOIN=192.168.0.22 \
--privileged --name=pxcdb3 --net=host pxc


如果重启后PXC容器无法正常启动

vi /home/pxc/mysql/grastate.dat
修改safe_to_bootstrap值为1


使用nginx进行负载均衡

vim /home/docker/nginx/conf/nginx.conf
添加
stream {
        upstream PXC_cluster {
        server 192.168.0.22:3306;
        server 192.168.0.23:3306;
	server 192.168.0.24:3306;
        zone tcp_servers 64k;
		least_conn;
         } 
    
	server {
        listen 3306;
        proxy_pass PXC_cluster;
		proxy_connect_timeout 1s;
    }
}


本站所有文章均可随意转载,转载时请保留原文链接及作者。

本文链接:https://www.vos.cn/db/508.html

返回列表

上一篇:英特尔Optane Memory傲腾16G

没有最新的文章了...

相关文章

CentOS7.6 安装MySQL NDB集群 YUM方式

CentOS7.6 安装MySQL NDB集群 YUM方式

CentOS 7.6 (1810) 64位DVD镜像安装MySQL 5.7 NDB集群,采用YUM方式系统安装系统组件系统分区IP规划需要5个虚拟机充当服务器,一个客户机远程连接测试管理节点mgm =...

解决ORA-01102: cannot mount database in EXCLUSIVE mode

解决ORA-01102: cannot mount database in EXCLUSIVE mode

startupdbca新建一个名为CDRTEST的库,startup后报ORA-01102: cannot mount database in EXCLUSIVE mode错误shutdown&nbs...

CentOS6 安装Oracle11gR2

CentOS6 安装Oracle11gR2

使用oracle-rdbms-server-11gR2-preinstall工具,自动安装oracle所需的RPM包,自动创建oracle用户和dba、oinstall组,自动配置/etc/sysct...

SQL Server® 2008 R2 SP3 Express Edition自动备份

SQL Server® 2008 R2 SP3 Express Edition自动备份

给客户搞的hmailserver安装的是2008 R2 SP3 Express Edition,没有sql agent,无法自动备份数据库。做一个sql语句GO   ...

SQL Server2017定期备份并自动上传至FTP

SQL Server2017定期备份并自动上传至FTP

SQL Server需要定期备份,并自动上传至FTP,于是找到了一个免费的工具SQLBackupAndFTP,可完全满足需求下载地址https://sqlbackupandftp.com/downlo...

DBforbix3监控多个Oracle数据库和RAC数据库

DBforbix3监控多个Oracle数据库和RAC数据库

Zabbix4.2使用DBforbix3监控多个Oracle11gR2数据库查看数据库信息su - oracle sqlplus / as sysd...