pxc_cluster集群

 

PXC(Percona XtraDB Cluster)

    是基于Galera的MySQL高可用集群解决方案
    Galera Cluster是Codership公司开发的一套免费开源的高可用方案
    PXC集群主要由两部分组成:Percona Server with XtraDB和Write Set Replication patches(同步、多主复制插件)

PXC特点:
    数据强一致性、无同步延迟
    没有主从切换操作,无需使用虚拟IP
    支持InnoDB存储引擎
    多线程复制
    部署使用简单
    支持节点自动加入,无需手动拷贝数据

相应端口:
    3306:数据库服务端口
    4444:SST端口
    4567:集群通信端口
    4568:IST端口
SST:State Snapshot Transfer 全量同步
IST:Incremental State Transfer 增量同步

========================================
环境:
    pxc1: 192.168.8.10
    pxc2: 192.168.8.20
    pxc3: 192.168.8.30

1. 删除mysql或mariadb,关闭防火墙和selinux,修改主机名为pxc1、pxc2、pxc3,修改/etc/hosts
vim /etc/hosts 
添加:
192.168.8.10    pxc1
192.168.8.20    pxc2
192.168.8.30    pxc3
保存退出 
scp /etc/hosts root@192.168.8.20:/etc 
scp /etc/hosts root@192.168.8.30:/etc 

2  在线安装

yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

yum -y install Percona-XtraDB-Cluster-57

systemctl start mysql


3 修改密码

grep 'temporary password' /var/log/mysqld.log
复制代码使用 root 账户登录,并修改其账户密码:

# 登录服务
mysql -u root -p

# 修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

# 退出服务
mysql> exit

复制代码之后使用以下命令停止 MySQL 服务:
systemctl stop mysql

4 搭建集群
以上安装过程在三台主机上均相同执行,之后就可以开始集群的搭建。
首先需要修改每个服务器上的 /etc/my.cnf 文件,第一个节点上需要增加的内容如下:

[mysqld]
server-id=1  
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
wsrep_cluster_name=mysql1
wsrep_cluster_address=gcomm://192.168.8.10,192.168.8.20,192.168.8.30
wsrep_node_name=pxc1 
wsrep_node_address=192.168.8.10
wsrep_sst_method=xtrabackup-v2 
wsrep_sst_auth= sstuser:123456
pxc_strict_mode=ENFORCING  
binlog_format=ROW 
default_storage_engine=InnoDB 
innodb_autoinc_lock_mode=2 

第二个节点的配置与上面基本相同,但是需要修改 server id 以及当前节点的名称和地址,
具体如下:
[mysqld]
server-id=2  
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
wsrep_cluster_name=mysql1
wsrep_cluster_address=gcomm://192.168.8.10,192.168.8.20,192.168.8.30
wsrep_node_name=pxc2
wsrep_node_address=192.168.8.20
wsrep_sst_method=xtrabackup-v2 
wsrep_sst_auth= sstuser:123456
pxc_strict_mode=ENFORCING  
binlog_format=ROW 
default_storage_engine=InnoDB 
innodb_autoinc_lock_mode=2


第三个节点:
[mysqld]
server-id=3  
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
wsrep_cluster_name=mysql1
wsrep_cluster_address=gcomm://192.168.8.10,192.168.8.20,192.168.8.30
wsrep_node_name=pxc3 
wsrep_node_address=192.168.8.30
wsrep_sst_method=xtrabackup-v2 
wsrep_sst_auth= sstuser:123456
pxc_strict_mode=ENFORCING  
binlog_format=ROW 
default_storage_engine=InnoDB 
innodb_autoinc_lock_mode=2


5 启动集群
第一个节点需要以引导模式启动:
systemctl start mysql@bootstrap.service


在将其他节点添加到群集之前,需要登录当前节点,来为 SST 操作创建用户并提供权限,命令如下:
# 创建用户
CREATE USER 'sstuser'@'localhost' IDENTIFIED BY '123456';
# 授予权限
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
# 刷新权限
FLUSH PRIVILEGES;


接着在第二和第三个节点上正常启动数据库服务,命令如下:
systemctl start mysql

启动后,可以登录任意节点并使用以下命令查看集群状态。输出中的 wsrep_cluster_size 的值应该为 3 ,
即集群中节点总数为 3,此时代表所有节点都已成功加入集群,至此集群已经搭建完成。

mysql> show status like 'wsrep%';
+----------------------------------+----------------------------------------------------------+
| Variable_name                    | Value                                                    |
+----------------------------------+----------------------------------------------------------+
| wsrep_local_state_uuid           | 8bcc22cf-bfab-11e9-8a49-6e46c7af709e                     |
.......
| wsrep_incoming_addresses         | 192.168.8.20:3306,192.168.8.30:3306,192.168.8.10:3306 |
| wsrep_gcomm_uuid                 | c8afc276-c623-11e9-a9ea-677d72419479                     |
| wsrep_cluster_conf_id            | 3                                                        |
| wsrep_cluster_size               | 3                                                        |
| wsrep_cluster_state_uuid         | 8bcc22cf-bfab-11e9-8a49-6e46c7af709e                     |
| wsrep_cluster_status             | Primary                                                  |
| wsrep_connected                  | ON                                                       |
| wsrep_local_bf_aborts            | 0                                                        |
| wsrep_local_index                | 2                                                        |
| wsrep_provider_name              | Galera                                                   |
| wsrep_provider_vendor            | Codership Oy <info@codership.com>                        |
| wsrep_provider_version           | 3.37(rff05089)                                           |
| wsrep_ready                      | ON                                                       |
+----------------------------------+----------------------------------------------------------+


6 节点下线
PXC 集群允许动态下线节点,但需要注意的是节点的启动命令和关闭命令必须一致,如以引导模式启动的第一个节点必须
以引导模式来进行关闭:
systemctl stop mysql@bootstrap.service

其他节点则可以按照正常方式关闭:
service stop mysql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值