一、PXC介绍
Percona Server由领先的MySQL咨询公司Percona发布。 Percona Server是一款独立的数据库产品,其可以完全与MySQL兼容,可以在不更改代码的情况了下将存储引擎更换成XtraDB 。XtraDB可以看做是InnoDB存储引擎的增强版本,它完全兼容InnoDB,且提供了很多InnoDB不具备的有用的功能。
Percona团队的最终声明是“Percona Server是最接近官方MySQL Enterprise发行版的版本”。
Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案.
Percona XtraDB Cluster提供的特性有
1.同步复制,事务要么在所有节点提交或不提交。
2.多主复制,可以在任意节点进行写操作。
3.在从服务器上并行应用事件,真正意义上的并行复制。
4.节点自动配置。
5.数据一致性,不再是异步复制。
PXC的实现是在原代码上通过Galera、Percona XtraBackup将不通的Mysql实例链接起来,实现了multi-master的集群架构。
下图中有三个实例,组成了一个集群,而这三个节点与普通的主从架构不通,它们都可以做为主节点,三个节点是对等的,这种一般称为multi-master架构,当有客户端要写入或者读取数据时,随便链接哪个实例都是一样的,读到的数据是相同的,写入某一个节点之后,集群自己会将新数据同步道其它节点上面,这种架构不共享任何数据,是一种高冗余架构。
PXC特点:
1.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上。
2.每个节点都是普通的mysql/percona服务器,可以将现有的数据库服务器组成集群,从PXC机器群可以拆分成单独的服务器。
3.每个节点都包含完整的数据副本。
PXC优点:
1.当执行一个查询时,在本地节点上执行。因为所有数据都在本地,无需远程访问。
2.无需集中管理。可以在任何时间点失去任何节点,但是集群将照常工作。
3.良好的读负载扩展,任意节点都可以查询。
PXC缺点:
1.加入新节点,开销大。需要复制完整的数据
2.不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上。
3.有多少个节点就有多少重复的数据
二、部署pxc
1.环境规划
主机名 | IP |
pxc01 | 192.168.100.140 |
pxc02 | 192.168.100.141 |
pxc03 | 192.168.100.142 |
关闭防火墙(三台都要)
[root@pxc01 ~]# systemctl stop firewalld
[root@pxc01 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@pxc01 ~]# setenforce 0
[root@pxc01 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@pxc01 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.140 pxc01
192.168.100.141 pxc02
192.168.100.142 pxc03
修改内核参数(三台都要)
[root@pxc01 ~]# vi /etc/security/limits.conf
mysql soft nproc 65535
mysql hard nproc 65535
mysql soft nofile 65535
mysql hard nofile 65535
2.安装xtrabackup(三台都要)
创建用户及用户组
[root@pxc01 ~]# groupadd mysql
[root@pxc01 ~]# useradd -g mysql mysql
[root@pxc01 ~]# mkdir -p /mysql/3306/{data,redo,binlog,tmp,logs}
[root@pxc01 ~]# chown -R mysql.mysql /mysql/3306
[root@pxc01 ~]# chmod -R 755 /mysql/3306
安装xtrabackuo
[root@pxc01 ~]# cd /usr/local/src
[root@pxc01 src]# wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.22/binary/tarball/percona-xtrabackup-2.4.22-Linux-x86_64.glibc2.12.tar.gz
[root@pxc01 src]# tar -zxvf percona-xtrabackup-2.4.22-Linux-x86_64.glibc2.12.tar.gz
[root@pxc01 src]# ls
percona-xtrabackup-2.4.22-Linux-x86_64.glibc2.12
percona-xtrabackup-2.4.22-Linux-x86_64.glibc2.12.tar.gz
[root@pxc01 src]# mv percona-xtrabackup-2.4.22-Linux-x86_64.glibc2.12 /usr/local/xtrabackup
[root@pxc01 src]# chown -R mysql:mysql /usr/local/xtrabackup
[root@pxc01 src]# chmod -R 755 /usr/local/xtrabackup
[root@pxc01 src]# ll /usr/local/
总用量 0
drwxr-xr-x. 2 root root 6 8月 12 2015 bin
drwxr-xr-x. 2 root root 6 8月 12 2015 etc
drwxr-xr-x. 2 root root 6 8月 12 2015 games
drwxr-xr-x. 2 root root 6 8月 12 2015 include
drwxr-xr-x. 2 root root 6 8月 12 2015 lib
drwxr-xr-x. 2 root root 6 8月 12 2015 lib64
drwxr-xr-x. 2 root root 6 8月 12 2015 libexec
drwxr-xr-x. 2 root root 6 8月 12 2015 sbin
drwxr-xr-x. 5 root root 46 6月 4 16:56 share
drwxr-xr-x. 2 root root 68 6月 24 17:56 src
drwxr-xr-x. 6 mysql mysql 88 3月 10 22:54 xtrabackup
3.安装pxc(三台都要)
[root@pxc01 src]# wget https://downloads.percona.com/downloads/Percona-XtraDB-Cluster-57/Percona-XtraDB-Clust