PXC(Percona XtraDB Cluster)原理:
节点接收SQL请求后,在commit之前,由wsrepAPI调用galera库进行集群内广播,所有其他节点验证成功后事务在所有节点进行提交,反之rollback。pxc保证整个集群所有数据的强一致性,满足CAP理论中:consistency和availability
在一个事务提交的过程,Node1提交一个事物,必须要所有的节点通过了这个事务的请求,并且返回成功(ok)或者失败(conflict)信号之后,才真正的commit之后返回结果给用户,但是这里注意,最后在其它节点apply过程,并不会影响到给用户返回结果的过程。
大多数PXC集群都是单机单实例的,但是也有例外,为了充分利用机器性能,并且需要PXC集群架构,于是,多实例与多集群的部署需求就来了,以下便是安装步骤:
1. 环境描述:
2. 安装配置cluster1
yum install socat nc -y
tar zxf Percona-XtraDB-Cluster-5.7.14-rel8-26.17.1.Linux.x86_64.ssl101.tar.gz -C/usr/local/
ln -s /usr/local/Percona-XtraDB-Cluster-5.7.14-rel8-26.17.1.Linux.x86_64.ssl101/usr/local/MySQL
mkdir /export/mysql/mysql3307/{binlog,data,innodb,logs,tmp} -p
vim /export/mysql/mysql3307/my3307.cnf
[client]
port = 3307
socket = /export/mysql/mysql3307/tmp/mysql3307.sock
[mysql]
prompt = '<\U:\p [\d]>'
default_character_set = utf8
no_auto_rehash
[mysqld]
###GENERAL ###
user = mysql
port = 3307
socket = /export/mysql/mysql3307/tmp/mysql3307.sock
pid_file = /export/mysql/mysql3307/tmp/3307mysql.pid
datadir = /export/mysql/mysql3307/data
tmpdir = /export/mysql/mysql3307/tmp
character_set_server = utf8
lower_case_table_names = 1
default_storage_engine = InnoDB
#innodb = FORCE
###NETWORK AND LIMITS ###
back_log = 100
max_allowed_packet = 16M
max_connect_errors = 10000
max_connections = 1024
max_user_connections = 1000
interactive_timeout = 7200
wait_timeout = 7200
connect_timeout = 30
skip_external_locking
skip_name_resolve