1. 下载

wget https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/Percona-XtraDB-Cluster-5.7.28-31.41/binary/tarball/Percona-XtraDB-Cluster-5.7.28-rel31-31.41.1.Linux.x86_64.ssl101.tar.gz

2 . 环境

IP        host     port

172.17.0.2    master    3306

172.17.0.3    slave1     3306

172.17.0.4    slave2     3306

3. 使用端口

3306

4444

4567

4568

4. 安装依赖

yum install -y git scons gcc gcc-c++openssl check cmake bison \

boost-devel asio-devel libaio-devel ncurses-devel readline-devel pam-devel \

socat libcurl-devel socat nc perl-IO-Socket-SSL perl-Time-HiRes rsync lsof

5. SST和IST 区别

SST是全量传输

IST 是增量传输

6. my.cnf  配置文件

master my.cnf

[client]

port= 3306socket= /data/mysql/mysql3306/tmp/mysql3306.sock

[mysql]

prompt="\\u@\\h:\p \\R:\\m:\\s [\\d]>"no-auto-rehash

[mysqld]

user=mysql

basedir= /usr/local/mysql

datadir= /data/mysql/mysql3306/data

port= 3306socket= /data/mysql/mysql3306/tmp/mysql3306.sock

event_scheduler= 0#tmp

tmpdir=/data/mysql/mysql3306/tmp

#timeout

interactive_timeout= 300wait_timeout= 300#charactersetcharacter-set-server =utf8mb4

open_files_limit= 65535max_connections= 100max_connect_errors= 100000skip-name-resolve = 1#logs

log-output=file

slow_query_log= 1slow_query_log_file= /data/mysql/mysql3306/logs/slow.log

log-error = /data/mysql/mysql3306/logs/error.log

log_error_verbosity= 3pid-file =mysql3306.pid

long_query_time= 1#log-slow-admin-statements = 1#log-queries-not-using-indexes = 1log-slow-slave-statements = 1#binlog

binlog_format=row

server-id = 1log-bin = /data/mysql/mysql3306/logs/mysql-bin

log-bin-index = /data/mysql/mysql3306/logs/mysql-bin.index

binlog_cache_size=4M

max_binlog_size=1G

max_binlog_cache_size=2G

sync_binlog= 1expire_logs_days= 90#relay log

skip_slave_start= 1max_relay_log_size=1G

relay_log_purge= 1relay_log_recovery= 1log_slave_updates

#slave-skip-errors=1032,1053,1062explicit_defaults_for_timestamp=1#buffers&cache

table_open_cache= 2048table_definition_cache= 2048table_open_cache= 2048max_heap_table_size=96M

sort_buffer_size=2M

join_buffer_size=2M

thread_cache_size= 256query_cache_size= 0query_cache_type= 0query_cache_limit=256K

query_cache_min_res_unit= 512thread_stack=192K

tmp_table_size=96M

key_buffer_size=8M

read_buffer_size=2M

read_rnd_buffer_size=16M

bulk_insert_buffer_size=32M

#myisam

myisam_sort_buffer_size=128M

myisam_max_sort_file_size=10G

myisam_repair_threads= 1#innodb

innodb_buffer_pool_size=1G

innodb_buffer_pool_instances= 1innodb_data_file_path=ibdata1:1G:autoextend

innodb_flush_log_at_trx_commit= 2innodb_log_buffer_size=64M

innodb_log_file_size=500M

innodb_log_files_in_group= 3innodb_max_dirty_pages_pct= 50innodb_file_per_table= 1innodb_rollback_on_timeout

innodb_status_file= 1innodb_io_capacity= 2000transaction_isolation= READ-COMMITTED

innodb_flush_method=O_DIRECT

gtid_mode=ON

enforce_gtid_consistency=ON

master_info_repository=TABLE

relay-log-info-repository =TABLE

binlog_checksum=NONE

log_slave_updates=ON

# Two-Master configure

#server-1#auto-increment-offset = 1#auto-increment-increment = 2#server-2#auto-increment-offset = 2#auto-increment-increment = 2slave_preserve_commit_order= 1slave_transaction_retries= 128log_timestamps=system

show_compatibility_56=on

slave_parallel_workers= 4slave_parallel_type=LOGICAL_CLOCK

wsrep_provider= /usr/local/mysql/lib/libgalera_smm.so

wsrep_cluster_address= gcomm://172.17.0.2,172.17.0.3,172.17.0.4

wsrep_node_name =master

wsrep_node_address= 172.17.0.2wsrep_cluster_name=pxc-cluster

wsrep_sst_auth=sstuser:passw0rd

wsrep_sst_method= xtrabackup-v2

#wsrep_sst_method = rsync

wsrep_slave_threads= 2pxc_strict_mode=ENFORCING

innodb_autoinc_lock_mode= 2wsrep_provider_options= "debug=1;gcache.size=1G"

参数说明

配置参数说明

wsrep_provider

指定 Galera 库的路径。

wsrep_cluster_name

指定集群的逻辑名称,集群内的所有节点,这个名称必须一致。

wsrep_cluster_address

指定集群内节点的 IP 地址,建议将集群节点都配上。

wsrep_node_name

指定单个节点的逻辑名称,如果没有指定,将使用 hostname 作为逻辑名称。

wsrep_node_address

指定此特定节点的 IP 地址。

wsrep_sst_method

默认的使用 Percona Xtrabackup 进行 State Snapshot Transfer (SST),强烈建议使用 wsrep_sst_method=xtrabackup-v2

wsrep_sst_auth

指定 sst 的身份验证凭据,使用:这种格式,启动第一个节点时必须创建,并且提供相应的权限。

pxc_strict_mode

关闭实验性的或者不支持的特性

binlog_format

Galera 只支持 row-level replication,所以设置为 binlog_format=ROW。

default_storage_engine

Galera 只支持 InnoDB 引擎,所以设置为 default_storage_engine=InnoDB。

innodb_autoinc_lock_mode

Galera 只支持lock mode 为 2 的 InnoDB 引擎,所以设置为 innodb_autoinc_lock_mode=2。

7. 启动 master 第一个节点

初始化

mysqld--defaults-file=/etc/my.cnf --initialize

启动

mysqld--defaults-file=/etc/my.cnf --wsrep-new-cluster &

# 登陆修改密码

mysql > alter user 'root'@'localhost' identified by '123456';

8. sst全量传输授权账号。

Before adding other nodes to your new cluster, create a user for SST and provide necessary privileges for it. The

credentials must match those specified when Configuring Nodes for Write-Set Replication.

mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'passw0rd';

mysql>GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON * . * TO 'sstuser'@'localhost';

mysql> FLUSH PRIVILEGES;

9.  常看PXC状态

mysql@master> 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

+----------------------------+--------------------------------------+

40 rows in set (0.01 sec)

slave1 my.cnf 配置文件

server-id=2 # server-id 不能相同

wsrep_provider = /usr/local/mysql/lib/libgalera_smm.so

wsrep_cluster_address= gcomm://172.17.0.2,172.17.0.3,172.17.0.4

wsrep_node_name =slave1

wsrep_node_address= 172.17.0.3wsrep_cluster_name= pxc-cluster

wsrep_sst_auth=sstuser:passw0rd

wsrep_sst_method= xtrabackup-v2

wsrep_slave_threads= 2pxc_strict_mode=ENFORCING

innodb_autoinc_lock_mode= 2wsrep_provider_options= "debug=1;gcache.size=1G"

slave2  my.cnf 配置文件

server-id=3 # server-id 不能相同

wsrep_provider= /usr/local/mysql/lib/libgalera_smm.so

wsrep_cluster_address= gcomm://172.17.0.2,172.17.0.3,172.17.0.4

wsrep_node_name =slave2

wsrep_node_address= 172.17.0.4wsrep_cluster_name= pxc-cluster

wsrep_sst_auth=sstuser:passw0rd

wsrep_sst_method= xtrabackup-v2

wsrep_slave_threads= 2pxc_strict_mode=ENFORCING

innodb_autoinc_lock_mode= 2wsrep_provider_options= "debug=1;gcache.size=1G"

9 slave1  slave2 直接启动,不用初始化

需要安装percona-xtrabackup-24-2.4.18-1.el7.x86_64.rpm

yum -y install percona-xtrabackup-24-2.4.18-1.el7.x86_64.rpm

启动

mysqld --defaults-file=/etc/my.cnf &

10. 登陆mysql

所有节点登陆密码都是 123456

mysql -u root -p

11.  绕开SST通过IST方式添加Node到Percona XtraDB Cluster

slave3 172.17.0.5为新加入pxc 服务器11.1

master 172.17.0.2物理备份

innobackupex--defaults-file=/etc/my.cnf -S /data/mysql/mysql3306/tmp/mysql3306.sock --galera-info -u root -p123456 /data/backup/

但是没生成x

cd /data/backup/

innobackupex --apply-log /data/backup/2020-03-16_13-57-24/

11.2

tar -zcvf 2020-03-16_13-57-24.tar.gz 2020-03-16_13-57-24/scp2020-03-16_13-57-24.tar.gz 172.17.0.5:/data/

11.3

my.cnf 配置文件注意 server_id 和 pxc相关配置11.4 cp -r /data/backup/2020-03-16_13-57-24/*/data/mysql/mysql3306/data/

11.5 查询master 172.17.0.2 服务器pxc ssid 和 xid

show global status like '%wsrep%';

| Variable_name | Value |

+----------------------------------+-----------------------------------------------------------------+

| wsrep_local_state_uuid | 118c0013-6748-11ea-9d09-aa0d37bc770a

wsrep_last_committed | 72

11.6

172.17.0.5 新建 grastate.data文件

cat grastate.dat

# GALERA saved state

version: 2.1

uuid: 118c0013-6748-11ea-9d09-aa0d37bc770a

seqno: 72 #查出来的 wsrep_last_committed

safe_to_bootstrap: 0

11.7 授权

chown -R mysql.mysql /data/mysql/mysql3306/data

11.8 启动 172.17.0.5 mysql

mysqld --defaults-file=my.cnf &

| wsrep_last_applied | 134 |

| wsrep_last_committed | 134

12.  PXC 原理

用户发起Commit,在收到Ok之前

集群每次发起一个动作,都会有一个唯一的编号

PXC独有的Global Trx Id

动作发起者: commit_cb

其它节点多了一个动作: apply_cb

上面的这些动作,是通过那个端号交互的?45674568端口 IST 只是在节点下线,重启加入那一个时间有用4444只会在新节点加入进来时起作用

pxc结构里面

如果主节点写入过大

apply_cb 时间会不会跟不上

wsrep_slave_threads参数 解决apply_cb跟不上问题 配置成和CPU的个数相等或是1.5倍

当前节点commit_cb 后就可以返回了

推过去之后,验证通过就行了可以返回客户端了

cb==commit block 提交数据块

报错

which: no xtrabackup in (/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/mysql/bin/)2020-03-15T12:36:01.910260Z WSREP_SST: [ERROR] ******************* FATAL ERROR **********************

2020-03-15T12:36:01.912921Z WSREP_SST: [ERROR] xtrabackup not in path: /usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/mysql/bin/

2020-03-15T12:36:01.915665Z WSREP_SST: [ERROR] ******************************************************yum-y install percona-xtrabackup-24-2.4.18-1.el7.x86_64.rpm

2020-03-15T12:40:14.467346Z WSREP_SST: [ERROR] socat not found in path: /usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/mysql/bin/

2020-03-15T12:40:14.470076Z WSREP_SST: [ERROR] ******************************************************

yum -y install socat

参考:

mysql pxc 原理_mysql PXC配置相关推荐

  1. mysql主原理_mysql 主从配置实现原理

    MySQL 本身通过 show slave status 提供了 Seconds_Behind_Master ,用于衡量主备之间的复制延迟,但是 今天碰到了一个场景,发现 Seconds_Behind ...

  2. mysql pxc搭建_MySQL PXC 高可用集群搭建

    一些名词介绍: WS:write set写数据集IST: Incremental State Transfer增量同步SST:State Snapshot Transfer全量同步 pxc环境所涉及的 ...

  3. mysql xid原理_MySQL数据库分布式事务XA实现原理分析

    [IT168 技术]MySQL XA原理 MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨多个引擎的事务,由大家熟悉的Binlog作为协调者;外部XA用于跨多MySQL实例的分布 ...

  4. 配置mysql读写主从_Mysql主从配置,实现读写分离

    MySQL数据库监控功能作为SUM服务器监控软件的一项基本功能,从SUM服务器监控软件发布开始就一直作为其核心功能之一,大量用户环境中正式使用,具有稳定.易用.指标齐全等特点. 通过SUM可以快速监控 ...

  5. mysql 索引原理_MySQL InnoDB索引原理和算法

    也许你经常用MySQL,也会经常用索引,但是对索引的原理和高级功能却并不知道,我们在这里一起学习下. InnoDB存储索引 在数据库中,如果索引太多,应用程序的性能可能会受到影响:如果索引太少,又会对 ...

  6. 阿里云服务器和mysql的原理_mysql 数据库同步原理

    mysql 数据库同步原理 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Serv ...

  7. c+mysql主从切换_mysql主从配置

    引言: 双11,阿里云服务器打折,于是我忍不住又买了一台服务器,于是咱也是有两台服务器的爷们了,既然有了两台服务器,那么肯定要好好利用一下吧,那么就来玩玩mysql的主从配置吧. 准备 两台数据库服务 ...

  8. mysql auto_increment 原理_mysql原理之Auto_increment

    引言 MySQL中auto_increment字段估计大家都经常用到,特别是innodb引擎.我也经常用,只知道mysql可以保证这个字段在多进程操作时的原子性,具体原理又是什么,后来查阅了MySQL ...

  9. mysql启动原理_MySQL 启动原理剖析

    介绍 本篇文章主要从查看MySQL的启动命令的代码来详细了解MySQL的启动过程,内容多为概念知识:理解MySQL的启动原理对熟悉MySQL至关重要,启动mysql服务有三种方式分别是:mysql.s ...

  10. mysql show 原理_mysql事务的实现原理

    此篇文章算是对mysql事务的一个总结,基本把mysql事务相关的知识点都涵盖到了,面试问来问去无非也就是这些,在了解这些之前我们先对mysql在执行的过程中  有一个整体的认识,如下图 如上图所示, ...

最新文章

  1. Visual Studio 2010 Ultimate测试体系结构
  2. 基于EEG/EMG/EOG的多模态人机接口,实时控制软机器人手
  3. SAP修改科目为未清项管理和行项目显示
  4. java jbutton 禁用_java – 如何禁用JButton在禁用时变灰?
  5. appium 搭建及实例
  6. druid删除数据_Apache druid 删除数据流程 0.13
  7. python怎么返回上一行代码_一行Python代码能做出哪些神器的事情
  8. Android Studio优秀插件汇总
  9. 基于java人脸识别考勤签到系统设计与实现毕业设计毕设作品
  10. Sqlserver-循环执行sql语句
  11. 64位系统装32位mysql有问题吗_32位系统部署到64位下常见问题及解决
  12. SuperMap iServer11i新功能----图例的发布和使用
  13. NUAA-泛在网实验-实验六
  14. 武汉大学计算机系英语挂科,挂科率最高的前100所大学 武大挂的最多的居然是...
  15. 从小程序到小程序云开发
  16. Graphite Simulator模拟器详解
  17. 关于‘\0’ ,‘0’, “0” ,0的理解
  18. Java SE 008 理解面向对象程序设计 (Inside Object Oriented Programming)
  19. app文件上传到服务器教程,app上传文件到云服务器
  20. 浏览器中访问网页、回退及前进模拟

热门文章

  1. 智能家居中控屏(二):产品设计
  2. 实现在线预览office文档(word,excel,ppt)的几种方法
  3. 【机器学习】十三、一文看懂Bagging和随机森林算法原理
  4. fanuc机器人示教器输入中文注释
  5. 秒杀系统 后端设计方案
  6. centos7安装kylo0.10.1
  7. matlab中灰色模型代码,灰色模型matlab代码
  8. 毫米和像素怎么换算_自己计算出来的关于像素和厘米单位的换算
  9. php自动发卡程序8.0_API支付代理版自动发卡平台源码 v4.5.8
  10. BME/BMP280环境传感器、MLX90614红外测温传感器、HX711称重模块 | Mixly纯干货课程