企业主流MySQL高可用集群架构应用工具PXC
admin
2023-05-16 18:02:03
0

下面讲讲关于企业主流MySQL高可用集群架构应用工具PXC,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完企业主流MySQL高可用集群架构应用工具PXC这篇文章你一定会有所受益。

 

PXC 架构图:

企业主流MySQL高可用集群架构应用工具PXC


企业主流MySQL高可用集群架构应用工具PXC


pxc就属于一套近乎完美的MySQL高可用集群架构方案;

优点总结:

  1. 可以达到时时同步,无延迟现象发生

  2. 完全兼容MySQL

  3. 对于集群中新节点的加入,维护起来很简单

  4. 数据的强一致性

不足之处总结:

  1. 只支持Innodb存储引擎

  2. 存在多节点update更新问题,也就是写放大问题

  3. 在线DDL语句,锁表问题

  4. sst针对新节点加入的传输代价过高的问题


实战过程:

环境介绍:

192.168.56.100  node1
192.168.56.101  node2
192.168.56.102  node3

安装之前的注意事项:

三台机器的防火墙iptables都要关闭,三台机器的server-id不能一样。

PXC软件包下载:
https://www.percona.com/downloads/Percona-XtraDB-Cluster-56/LATEST/

这里我下载的是:Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64.tar.gz

接下来三台机器上都需要针对基础软件包进行安装,使用yum安装即可,解决依赖性。

 perl-IO-Socket-SSL.noarch 
 perl-DBD-MySQL.x86_64  
 perl-Time-HiRes
 openssl 
 openssl-devel
 socat

在节点一(192.168.56.100)上执行操作:

先解压软件包并赋予权限

cd /usr/local/
tar -zxvf Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64.tar.gz
ln -s Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64 mysql
chown mysql:mysql -R mysql
mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql

配置pxc的参数文件,这里就比普通的MySQL参数文件多如下几点:

提及一点注意事项:这里binlog的格式必须row

#pxc
default_storage_engine=Innodb
innodb_autoinc_lock_mode=2
wsrep_cluster_name=pxc_zs ---------------集群的名字
wsrep_cluster_address=gcomm://192.168.56.100,192.168.56.101,192.168.56.102(集群中节点的IP)
wsrep_node_address=192.168.56.100------当前机器的ip地址
wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so
wsrep_sst_method=xtrabackup-v2 (sst传输方法)
wsrep_sst_auth=sst:zs (账号权限)

初始化数据:

/usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql 
--datadir=/data/mysql/ --defaults-file=/etc/my.cnf  --user=mysql

启动第一节点的服务:

cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysql
[root@node1 support-files]# /etc/init.d/mysql bootstrap-pxc
Bootstrapping PXC (Percona XtraDB Cluster)MySQL (Percona Xt[  OK  ]ster) running (4740)

启动成功之后,维护数据库环境并创建用户

mysql> delete from mysql.user where user!='root' or host!='localhost';
mysql> grant all privileges on *.* to 'zs'@'%' identified by 'zs';
mysql> grant all privileges on *.* to 'sst'@'localhost' identified by 'zs';
mysql> flush privileges;


在节点二(192.168.56.101)上执行操作:

cd /usr/local/
tar -zxvf Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64.tar.gz
ln -s Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64 mysql
chown mysql:mysql -R mysql
mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql

编辑pxc的配置文件:

#pxc
default_storage_engine=Innodb
innodb_autoinc_lock_mode=2
wsrep_cluster_name=pxc_zs ---------------集群的名字
wsrep_cluster_address=gcomm://192.168.56.100,192.168.56.101,192.168.56.102(集群中节点的IP)
wsrep_node_address=192.168.56.101------当前机器的ip地址
wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so
wsrep_sst_method=xtrabackup-v2 (sst传输方法)
wsrep_sst_auth=sst:zs (账号权限)

初始化数据:

/usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql 
--datadir=/data/mysql/ --defaults-file=/etc/my.cnf  --user=mysql

启动第二个节点的服务:

cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysql
[root@node2 mysql]# /etc/init.d/mysql start
Starting MySQL (Percona XtraDB Cluster)..                  [  OK  ]

在第三个节点(192.168.56.102)上面执行:

cd /usr/local/
tar -zxvf Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64.tar.gz
ln -s Percona-XtraDB-Cluster-5.6.21-rel70.1-25.8.938.Linux.x86_64 mysql
chown mysql:mysql -R mysql
mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql

编辑pxc的配置文件:

#pxc
default_storage_engine=Innodb
innodb_autoinc_lock_mode=2
wsrep_cluster_name=pxc_zs ---------------集群的名字
wsrep_cluster_address=gcomm://192.168.56.100,192.168.56.101,192.168.56.102(集群中节点的IP)
wsrep_node_address=192.168.56.102------当前机器的ip地址
wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so
wsrep_sst_method=xtrabackup-v2 (sst传输方法)
wsrep_sst_auth=sst:zs (账号权限)

初始化数据:

/usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql 
--datadir=/data/mysql/ --defaults-file=/etc/my.cnf  --user=mysql

启动第三个节点的服务:

cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysql
[root@node3 mysql]# /etc/init.d/mysql start
Starting MySQL (Percona XtraDB Cluster)..                  [  OK  ]


注:其他两个节点同样进行安装与初始化的操作;

但启动方式不是以/etc/init.d/mysql  bootstrap-pxc,换成/etc/init.d/mysql  start 这种方式


三个节点都已经启动成功,这样在任意一个节点上面,执行一条DML语句的操作,都会同步到另外两个节点。

企业主流MySQL高可用集群架构应用工具PXC

对于以上企业主流MySQL高可用集群架构应用工具PXC相关内容,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的行业资讯板块。

相关内容

热门资讯

8年后回应姗姗来迟,真相还有人... 八年了,李小璐想起来回应“做头发”事件了。而且这次,她一次性抛出了不少新信息,表示广为流传的“做头发...
男子在攀岩馆从高空坠落,目击者... 8月2日中午,北京大型攀岩馆超级奥攀,一名男子从高空坠落,随后被送医治疗,多名网友发帖留言称确有此事...
小红书黑红启示录:旅游帖诈骗冲... #小红书旅游帖诈骗#冲上了热搜。一位妈妈带孩子在大连,沿着小红书攻略找那条海底隧道——满心想着给孩子...
天然气灶不打火怎么回事 可能由以下原因导致天然气灶不打火:1、燃气阀门未开启:检查气阀是否处于关闭状态。2、灶具没有点火:可...
空调遥控器按开关没反应 原因可能是遥控器里面的发光管损坏,导致屏幕不显示,可以维修或更换遥控器解决;原因可能是遥控器的红外发...
油烟机开关按了没反应 油烟机开关按了没反应油烟机开关按了没反应的原因有可能是开关按钮损坏;电源接头没有连接;电路板损坏、传...
马桶水箱按钮按不动 有因有:马桶按钮内的弹簧生锈老化;出水阀被泥沙等杂物卡住;水漂卡住了。需打开马桶水箱看看联动冲水阀连...
德意油烟机按不动怎么办 如果德意油烟机按不动,首先需要确认是否是电源问题。你可以检查油烟机的插头是否插紧了,插座是否正常工作...
台湾民众党已不是一人政党!柯文... 海峡导报综合报道 台湾民众党2日举办7周年党庆,创党主席柯文哲上台致辞时获得在场人士欢呼,声音久久不...
男子买到破损游泳“跟屁虫”,退... “几十块钱的东西还保你啥子命?这就是一个玩具!”7月22日,成都市民李先生向红星新闻反映,自己周末准...