实验环境:
Node Host IPNode1 pxc1 192.168.70.61
Node2 pxc2 192.168.70.62
Node3 pxc3 192.168.70.63
1.1 安装Percona-XtraDb-Cluster
yum源:
[percona] name=percona_repo baseurl = https://mirrors.tuna.tsinghua.edu.cn/percona/release/$releasever/RPMS/$basearch enabled = 1 gpgcheck = 0 yum -y install Percona-XtraDB-Cluster-57 1.2 提供配置文件第一个节点配置文件/etc/my.cnf
wsrep_provider=http://www.likecs.com/usr/lib64/galera3/libgalera_smm.so wsrep_cluster_name=pxc-cluster wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63 wsrep_node_name=pxc1 # 各节点不同 wsrep_node_address=192.168.70.61 # 各节点不同 wsrep_sst_method=xtrabackup-v2 wsrep_sst_auth=sstuser:passw0rd pxc_strict_mode=ENFORCING binlog_format=ROW default_storage_engine=InnoDB innodb_autoinc_lock_mode=2第二个节点配置文件
wsrep_provider=http://www.likecs.com/usr/lib64/galera3/libgalera_smm.so wsrep_cluster_name=pxc-cluster wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63 wsrep_node_name=pxc2 # 各节点不同 wsrep_node_address=192.168.70.62 # 各节点不同 wsrep_sst_method=xtrabackup-v2 wsrep_sst_auth=sstuser:passw0rd pxc_strict_mode=ENFORCING binlog_format=ROW default_storage_engine=InnoDB innodb_autoinc_lock_mode=2第三个节点配置文件
wsrep_provider=http://www.likecs.com/usr/lib64/galera3/libgalera_smm.so wsrep_cluster_name=pxc-cluster wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63 wsrep_node_name=pxc3 # 各节点不同 wsrep_node_address=192.168.70.63 # 各节点不同 wsrep_sst_method=xtrabackup-v2 wsrep_sst_auth=sstuser:passw0rd pxc_strict_mode=ENFORCING binlog_format=ROW default_storage_engine=InnoDB innodb_autoinc_lock_mode=2配置文件各项配置意义:
wsrep_provider:指定Galera库的路径
wsrep_cluster_name:Galera集群的名称
wsrep_cluster_address:Galera集群中各节点地址。地址使用组通信协议gcomm://(group communication)
wsrep_node_name:本节点在Galera集群中的名称
wsrep_node_address:本节点在Galera集群中的通信地址
wsrep_sst_method:state_snapshot_transfer(SST)使用的传输方法,可用方法有mysqldump、rsync和xtrabackup,前两者在传输时都需要对Donor加全局只读锁(FLUSH TABLES WITH READ LOCK),xtrabackup则不需要(它使用percona自己提供的backup lock)。强烈建议采用xtrabackup
wsrep_sst_auth:在SST传输时需要用到的认证凭据,格式为:"用户:密码"
pxc_strict_mode:是否限制PXC启用正在试用阶段的功能,ENFORCING是默认值,表示不启用
binlog_format:二进制日志的格式。Galera只支持row格式的二进制日志
default_storage_engine:指定默认存储引擎。Galera的复制功能只支持InnoDB
innodb_autoinc_lock_mode:只能设置为2,设置为0或1时会无法正确处理死锁问题
1.3 引导Galera中的第一个节点引导启动Galera集群。
/etc/init.d/mysql bootstrap-pxc systemctl start mysql@bootstrap.service引导后,查看状态:
mysql@pxc1> show status like 'wsrep%'; +----------------------------+--------------------------------------+ | Variable_name | Value | +----------------------------+--------------------------------------+ | wsrep_local_state_uuid | c2883338-834d-11e2-0800-03c9c68e41ec | | ... | ... | | wsrep_local_state | 4 | | wsrep_local_state_comment | Synced | | ... | ... | | wsrep_cluster_size | 1 | | wsrep_cluster_status | Primary | | wsrep_connected | ON | | ... | ... | | wsrep_ready | ON | +----------------------------+--------------------------------------+上述状态表示,该Galera集群中只有一个节点,状态为Synced(4),表示数据已同步完成(因为是第一个引导节点,无数据需要同步)。角色为Primary,且已经完全连接并准备好,connected和ready状态决定了该节点是否是Galera中的正式成员,正式成员才能向外提供MySQL服务。
正确引导了第一个节点后,需要在第一个节点(Galera的初始化引导节点)上创建SST的认证用户,注意这个用户名和密码需要和配置文件中的对应。
create user 'sstuser'@'localhost' identified by 'passw0rd'; grant reload,lock tables,process,replication client on *.* to 'sstuser'@'localhost'; flush privileges; 1.4 向Galera中加入第二、第三个节点加入节点非常简单,只需正常启动MySQL服务即可,在启动时会读取配置文件,并根据配置自动加入到对应的Galera集群中。
#### 在第二个节点上执行 /etc/init.d/mysql start #### 在第三个节点上执行 /etc/init.d/mysql start