MySQL PXC 高可用集群搭建

1.准备环境

--用户用户组

groupadd mysql
useradd -g mysql mysql

--目录

mkdir -p  /data/PXC/{data,redo,binlog,tmp,logs}
chown -R  mysql:mysql /data/PXC
chmod -R  755 /data/PXC
chown -R mysql:mysql PXC
chmod -R 755 PXC

修改内核参数

[root@mar3 PXC]#  cat   /etc/security/limits.conf |grep -v ^$|grep -v ^#
mysql   soft    nproc   65535
mysql   hard    nproc   65535
mysql   soft    nofile  65535
mysql   hard    nofile  65535

关闭各个节点防火墙:

systemctl stop firewalld
systemctl disable firewalld

2安装相关软件

socat

yum -y install socat

安装xtrabckup

cat <<eof>>/etc/yum.repos.d/percona.repo
> [percona]
> name = Percona
> baseurl = https://mirrors.tuna.tsinghua.edu.cn/percona/release/\$releasever/RPMS/\$basearch
> enabled = 1
> gpgcheck = 0
> 
> [epel]
> name=epelrepo
> baseurl=https://mirrors.aliyun.com/epel/\$releasever/\$basearch
> gpgcheck=0
> enable=1
> eof
[root@mar3 PXC]# yum list all| grep xtraback -i
percona-xtrabackup-24.x86_64            2.4.21-1.el7               @percona     
holland-xtrabackup.noarch               1.1.21-1.el7               epel         
percona-xtrabackup.x86_64               2.3.10-1.el7               percona      
percona-xtrabackup-22.x86_64            2.2.13-1.el7               percona      
percona-xtrabackup-22-debuginfo.x86_64  2.2.13-1.el7               percona      
percona-xtrabackup-24-debuginfo.x86_64  2.4.21-1.el7               percona      
percona-xtrabackup-80.x86_64            8.0.14-1.el7               percona      
percona-xtrabackup-80-debuginfo.x86_64  8.0.14-1.el7               percona      
percona-xtrabackup-debuginfo.x86_64     2.3.10-1.el7               percona      
percona-xtrabackup-test.x86_64          2.3.10-1.el7               percona      
percona-xtrabackup-test-22.x86_64       2.2.13-1.el7               percona      
percona-xtrabackup-test-24.x86_64       2.4.21-1.el7               percona      
percona-xtrabackup-test-80.x86_64       8.0.14-1.el7               percona      
yum -y install percona-xtrabackup-24.x86_64

安装pxc

gunzip Percona-XtraDB-Cluster-5.7.26-rel29-31.37.1.Linux.x86_64.ssl101.tar.gz
tar -zxvf Percona-XtraDB-Cluster-5.7.26-rel29-31.37.1.Linux.x86_64.ssl101.tar -C /usr/local/
mv /usr/local/Percona-XtraDB-Cluster-5.7.26-rel29-31.37.1.Linux.x86_64.ssl101 /usr/local/mysql
chown -R  mysql:mysql /usr/local/mysql
chmod -R  755 /usr/local/mysql

3.创建my.cnf配置文件,

标红色的部分要根据 每个节点的情况更改

[root@mar0 PXC]# cat my.cnf |grep -v ^#
[client]
default-character-set = uft8
port    = 3306
socket = /data/PXC/tmp/mysql.sock

[mysql]
prompt="\u@mysqldb \R:\m:\s [\d]> "

[mysqld]
basedir=/usr/local/mysql
datadir = /data/PXC/data   
port = 3306
server_id = 101
socket = /data/PXC/tmp/mysql.sock
tmpdir=/data/PXC/tmp
character-set-server=utf8
log-error= /data/PXC/logs/alert_3306.log
pid-file = /data/PXC/tmp/mar0.inno.com.mysql_3306.pid
gtid_mode=ON
log-slave-updates=ON
enforce-gtid-consistency=ON
binlog_format = ROW
skip-slave-start=1
log-bin=/data/PXC/binlog/mysql-bin
master_info_repository=TABLE
relay_log_purge=0
binlog_checksum=NONE 
transaction_write_set_extraction=XXHASH64
secure_file_priv=/data/export
slow_query_log=on
long_query_time=1
slow_query_log_file=/data/PXC/logs/slow.log
log_queries_not_using_indexes=on
log_output=FILE
general_log = on
innodb_data_file_path=ibdata1:2G:autoextend
innodb_log_group_home_dir=/data/PXC/redo
innodb_file_per_table=1
wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.1.200,192.168.1.111,192.168.1.112
wsrep_node_name=pxc01
wsrep_node_address=192.168.1.200
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=pxc:123456
pxc_strict_mode=ENFORCING
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2

第二个节点

wsrep_node_name=pxc2
wsrep_node_address=192.168.1.111

第三个节点

wsrep_node_name=pxc3
wsrep_node_address=192.168.1.112

4. 修改mysql环境变量

export PATH=/usr/local/mysql/bin:$PATH:/usr/local/xtrabackup/bin

5.开始部署

各个节点分别初始化数据库

mysqld --defaults-file=/data/PXC/my.cnf --initialize

启动第一个节点

mysqld_safe --defaults-file=/data/PXC/my.cnf --wsrep-new-cluster  &

在第一个节点修改密码,创建复制用户

--修改密码
root@(none)>set password='123456';
--创建一个SST用户
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'pxc'@'localhost' IDENTIFIED BY '123456';

启动节点#二节点和三节点不要同时启动,待二节点同步完成后再启动三节点

mysqld_safe --defaults-file=/data/PXC/my.cnf   &

登陆验证:

root@mysqldb 21:49:  [(none)]> show status like 'wsrep_cluster_%';
+--------------------------+--------------------------------------+
| Variable_name            | Value                                |
+--------------------------+--------------------------------------+
| wsrep_cluster_weight     | 3                                    |
| wsrep_cluster_conf_id    | 15                                   |
| wsrep_cluster_size       | 3                                    |
| wsrep_cluster_state_uuid | b813dad6-298a-11eb-a1a0-ff3a44db33c5 |
| wsrep_cluster_status     | Primary                              |
+--------------------------+--------------------------------------+

 PXC 5.7集群参数具体描述

wsrep_cluster_name        指定群集的逻辑名称。对于群集中的所有节点,它必须相同。
wsrep_cluster_address     指定群集中节点的IP地址。
wsrep_node_name           指定每个单独节点的逻辑名称。如果未指定此变量,则将使用主机名称。
wsrep_node_address        指定该特定节点的IP地址。
wsrep_sst_method          默认情况下,Percona XtraDB集群使用Percona XtraBackup进行状态快照传输(SST)。 
               强烈建议设置wsrep_sst_method
=xtrabackup-v2。
           这种方法需要用户在初始节点上创建SST用户。用wsrep_sst_auth变量提供SST用户凭据。 wsrep_sst_auth 必须在引导第一个节点时创建此用户 并为其提供必要的权限:
           mysql
> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'passw0rd';            mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';            mysql> FLUSH PRIVILEGES; pxc_strict_mode   默认情况下PXC Strict模式为 ENFORCING,这将阻止使用Percona XtraDB集群中不受支持的特性 关于这个参数的具体描述可以参考:Percona XtraDB Cluster Strict Mode(PXC 5.7 ) binlog_format   Galera只支持行级复制,所以设置binlog_format=ROW。 efault_storage_engine Galera完全支持InnoDB存储引擎。它不能与MyISAM或任何其他非事务性存储引擎正常工作。将此变量设置为default_storage_engine=InnoDB。
innodb_autoinc_lock_mode Galera仅支持InnoDB的交错(
2)锁定模式。设置传统(0)或连续(1)锁定模式会导致复制失败,因为未解决的死锁。 将此变量设置为innodb_autoinc_lock_mode=2

 

posted on 2020-11-18 23:02  InnoLeo  阅读(328)  评论(0编辑  收藏  举报