iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >PXC安装文档
  • 548
分享到

PXC安装文档

2024-04-02 19:04:59 548人浏览 泡泡鱼
摘要

一 环境准备 主机IP 主机名 操作系统 PXC版本 192.168.39.135 node1 Centos 6.8 Percona-XtraDB-Cluster-57-5.7.21

一 环境准备

主机IP 主机名 操作系统 PXC版本
192.168.39.135 node1 Centos 6.8 Percona-XtraDB-Cluster-57-5.7.21
192.168.39.226 node2 CentOS 6.8 Percona-XtraDB-Cluster-57-5.7.21
192.168.39.227 node3 CentOS 6.8 Percona-XtraDB-Cluster-57-5.7.21

【PXC的数据同步流程】
PXC安装文档

client端向server端发送dml更新操作请求时,server的native本地进程处理请求,并返回OK准备接收,client发送commit更新事务给server,server将replicate writeset复制写数据集发给group(cluster集群),cluster将该数据集对应产生的唯一的GTID(global transaction ID)发送给集群每个server(节点)。当前server节点验证通过后,执行commit_cd动作更新本地数据库,并返回OK;若其他节点验证不通过,则执行rollback_cd,回滚刚提交的事务。其他server(other server)接收并验证通过后,执行apply_cd和commit_cd动作更新本地数据库;若验证不通过,则丢弃该数据集。

任意节点收到sql请求,对于dml更新操作事务,在commit之前,由wsrep api调用galera库进行集群内部广播,验证当前事务是否能在所有节点中执行,验证通过后该事务真正提交到集群所有节点执行,反之roll back回滚。

【节点加入后状态转变过程】
PXC安装文档

1 OPEN       节点启动成功,尝试连接到集群,如果失败则根据配置退出或创建新的集群
2 PRIMARY 节点已处于集群中,在新节点加入时,选取donor进行数据同步时会产生的状态
3 JOINER    节点处于等待接收/接收同步文件时的状态
4 JOINED    节点完成数据同步,但有部分数据没跟上,在尝试保持和集群进度一致的过程状态
例如某个节点故障后,重新加入集群,在追赶集群进度时的状态
5 SYNCED  节点正常提供服务的状态,表示已经同步完成并和集群进度保持一致。
6 DONOR    节点处于为新节点提供全量数据数据同步时的状态。此时该节点对客户端不提供服务。

二 下载PXC

安装yum源

yum install Http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
这样会在/etc/yum.repos.d下生成percona-release.repo文件

先下载安装两个PXC的依赖包
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/l/libev-4.03-3.el6.x86_64.rpm
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/s/socat-1.7.2.3-1.el6.x86_64.rpm
yum localinstall libev-4.03-3.el6.x86_64
yum localinstall socat-1.7.2.3-1.el6.x86_64

安装PXC

yum install Percona-XtraDB-Cluster-57

最终下载下来的版本是Percona-XtraDB-Cluster-57-5.7.21

注意:三个节点上均要安装。

三 配置文件

node1节点配置:
[Mysql]
prompt="\u@\h:\p [\d]>
#pager="less -i -n -S"
#tee=/home/mysql/query.log
no-auto-rehash

[mysqld]
user = mysql
datadir = /data/mysql/mysql9999/data

event_scheduler = 0

tmpdir=/data/mysql/mysql9999/tmp
#timeout
interactive_timeout = 300
wait_timeout = 300

#character set
character-set-server = utf8

open_files_limit = 65535
max_connections = 100
max_connect_errors = 100000

explicit_defaults_for_timestamp
#logs
log-output=file
slow_query_log = 1
slow_query_log_file = slow.log
log-error = error.log
log_warnings = 2
pid-file = mysql.pid
long_query_time = 1
#log-slow-admin-statements = 1
#log-queries-not-using-indexes = 1
log-slow-slave-statements = 1

#binlog
binlog_fORMat = row
server-id = 63306
log-bin = /data/mysql/mysql9999/logs/mysql-bin
binlog_cache_size = 1M
max_binlog_size = 200M
max_binlog_cache_size = 2G
sync_binlog = 0
expire_logs_days = 10

#relay log
skip_slave_start = 1
max_relay_log_size = 500M
relay_log_purge = 1
relay_log_recovery = 1
log_slave_updates
#slave-skip-errors=1032,1053,1062

#buffers & cache
table_open_cache = 2048
table_definition_cache = 2048
table_open_cache = 2048
max_heap_table_size = 96M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 256
query_cache_size = 0
query_cache_type = 0
query_cache_limit = 256K
query_cache_min_res_unit = 512
thread_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 = 500M
innodb_buffer_pool_instances = 1
innodb_data_file_path = ibdata1:200M:autoextend
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_file_per_table = 1
innodb_rollback_on_timeout
innodb_status_file = 1
innodb_io_capacity = 2000
transaction_isolation = READ-COMMITTED
innodb_flush_method = O_DIRECT

#pxc
default_storage_engine=Innodb
innodb_locks_unsafe_for_binlog=1
innodb_autoinc_lock_mode=2

wsrep_cluster_name=pxc_lixingzhou
wsrep_cluster_address=GComm://192.168.39.226,192.168.39.227,192.168.39.135
wsrep_node_address=192.168.39.226
wsrep_provider=/usr/lib64/libgalera_smm.so

wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sst:lixingzhou


启动服务:
/etc/init.d/mysql bootstrap-pxc 【bootstrap-pxc启动】

用默认errorlog里面生成的默认密码登陆后,修改默认生成的root账户密码,否则做不了任何操作。
ALTER USER CURRENT_USER() IDENTIFIED BY '123456';
该参数是用于其它节点加入到该集群中,利用XtraBackup执行State Snapshot Transfer(类似于全量同步)的。
配置文件中的下边两个参数相关
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sst:lixingzhou

CREATE USER 'sst'@'localhost' IDENTIFIED BY 'lixingzhou';
GRANT ALL ON . TO 'sst'@'localhost';
FLUSH PRIVILEGES;

node2,node3 的配置文件和node1基本一致,下边标出需要修改的地方:
server-id = xxxx
wsrep_node_address= xxxx

#配置完之后 启动node2 node3
/etc/init.d/mysql start

查看状态:

"root@localhost:mysql.sock  [(none)]>show global status like "wsrep%";`
+----------------------------------+-------------------------------------------------------------+
| Variable_name                    | Value                                                       |
+----------------------------------+-------------------------------------------------------------+
| wsrep_local_state_uuid           | cdcda068-49e0-11e8-9890-9a727072a76e                        |
显示了cluster的state UUID,由此可看出节点是否还是集群的一员
| wsrep_protocol_version           | 8                                                           |
| wsrep_last_applied               | 97                                                          |
| wsrep_last_committed             | 97                                                          |
| wsrep_replicated                 | 9                                                           |
| wsrep_replicated_bytes           | 2536                                                        |
| wsrep_repl_keys                  | 25                                                          |
| wsrep_repl_keys_bytes            | 416                                                         |
| wsrep_repl_data_bytes            | 1516                                                        |
| wsrep_repl_other_bytes           | 0                                                           |
| wsrep_received                   | 146                                                         |
| wsrep_received_bytes             | 55802905                                                    |
| wsrep_local_commits              | 7                                                           |
| wsrep_local_cert_failures        | 0                                                           |
| wsrep_local_replays              | 0                                                           |
| wsrep_local_send_queue           | 0                                                           |
| wsrep_local_send_queue_max       | 2                                                           |
| wsrep_local_send_queue_min       | 0                                                           |
| wsrep_local_send_queue_avg       | 0.014925                                                    |
| wsrep_local_recv_queue           | 0                                                           |
| wsrep_local_recv_queue_max       | 21                                                          |
| wsrep_local_recv_queue_min       | 0                                                           |
| wsrep_local_recv_queue_avg       | 9.424658                                                    |
| wsrep_local_cached_downto        | 8                                                           |
| wsrep_flow_control_paused_ns     | 0                                                           |
| wsrep_flow_control_paused        | 0.000000                                                    |
| wsrep_flow_control_sent          | 0                                                           |
| wsrep_flow_control_recv          | 0                                                           |
| wsrep_flow_control_interval      | [ 173, 173 ]                                                |
| wsrep_flow_control_interval_low  | 173                                                         |
| wsrep_flow_control_interval_high | 173                                                         |
| wsrep_flow_control_status        | OFF                                                         |
| wsrep_cert_deps_distance         | 7.102273                                                    |
| wsrep_apply_oooe                 | 0.034091                                                    |
| wsrep_apply_oool                 | 0.000000                                                    |
| wsrep_apply_window               | 1.034091                                                    |
| wsrep_commit_oooe                | 0.000000                                                    |
| wsrep_commit_oool                | 0.000000                                                    |
| wsrep_commit_window              | 1.034091                                                    |
| wsrep_local_state                | 4                                                           | 
表示正常监听
| wsrep_local_state_comment        | Synced                                                      |
以人能读懂的方式显示节点的状态,正常的返回值是Joining, Waiting on SST
Joined, Synced or Donor,返回Initialized说明已不在正常工作状态
| wsrep_cert_index_size            | 3923                                                        |
| wsrep_cert_bucket_count          | 126282                                                      |
| wsrep_gcache_pool_size           | 55808488                                                    |
| wsrep_causal_reads               | 0                                                           |
| wsrep_cert_interval              | 0.090909                                                    |
| wsrep_ist_receive_status         |                                                             |
| wsrep_ist_receive_seqno_start    | 0                                                           |
| wsrep_ist_receive_seqno_current  | 0                                                           |
| wsrep_ist_receive_seqno_end      | 0                                                           |
| wsrep_incoming_addresses         | 192.168.39.227:3306,192.168.39.226:3306,192.168.39.135:3306 |
集群的所有成员地址
| wsrep_desync_count               | 0                                                           |
| wsrep_evs_delayed                |                                                             |
| wsrep_evs_evict_list             |                                                             |
| wsrep_evs_repl_latency           | 0/0/0/0/0                                                   |
| wsrep_evs_state                  | OPERATIONAL                                                 |
| wsrep_gcomm_uuid                 | ddeaa214-49e8-11e8-8ea0-6f78f28ce711                        |
| wsrep_cluster_conf_id            | 20                                                          |
显示了整个集群的变化次数。所有节点都应相同,否则说明某个节点与集群断开了
| wsrep_cluster_size               | 3                                                           |
集群节点的数量
| wsrep_cluster_state_uuid         | cdcda068-49e0-11e8-9890-9a727072a76e                        |
| wsrep_cluster_status             | Primary                                                     |
表示是主节点可写入
| wsrep_connected                  | ON                                                          |
显示该节点是否与其他节点有网络连接。(实验得知,当把某节点的网卡down掉之后,该值仍为on。
说明网络还在)丢失连接的问题可能在于配置wsrep_cluster_address或wsrep_cluster_name的错误
| 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.26(rac090bc)                                              |
| wsrep_ready                      | ON           |
# wsrep_ready显示了节点是否可以接受queries,如果是OFF几乎所有的query都会报错,报错信息
提示“ERROR 1047 (08501) Unknown Command”
+----------------------------------+-------------------------------------------------------------+

四 注意事项

1 selinux和火墙关闭
2 pxc 的局限,不支持表级(lock table/unlock table 不支持),执行alter table操作会锁住整个集群。可以支持并发写入,通过自增偏移量和自增步长来控制,实现并发写入不冲突。但是update/delete 在网络抖动的情况下,会重新发送给集群的其他成员,存在各个成员都会本地native process 处理这个SQL, 然后发给集群 其他节点,结果发现推过来的集合和我本地修改的集合内容一样,可能会报1213 错误,导致事务ID不一 致。会使节点下线处理。所以尽量单节点写入。主要用它的数据一致性。
3 整个集群数最好为3个【官方推荐3个】,最多是8个。如果多了,节点之间的认证,传输,就会量很大,影响性能。
4 writeSet最大不要超过16K
5 不支持XA事务
6 pxc结构里面必须有主键,否则当数据很稀疏的时候,data page里面存储的数据可能会有差别。
例如:select * from t1 limit 10; 可能返回的结果会不一样。

7 node能停多长时间,可以传IST,由gcache控制,到底分配多大合适呢?
wsrep_provider_options="gcache.size=1G",可以算一个小时的binlog量大概多大,2-3个小时,2-4G即可。
如果机器关闭,缓存就会清空。

8假设我们三个节点都关闭了,会发起什么呢?
没有做到最后关闭的节点,最先启动,发现GTID不一样。就会全部传SST。
建议滚动关闭,node1 先闭,修复完毕加回来了,原则要保持Group里最少一个成员活着。数据库关闭之后,最会保存一个last Txid。
9 集群的脑裂问题?
发生脑裂后,拒绝对外服务, 输入任何命令都会,unkown command。
火墙设置:iptables 禁止访问 4567 端口两个连不通了。[模拟故障]
忽略上边的脑裂设置:SET GLOBAL wsrep_provider_options="pc.ignore_sb=true";

您可能感兴趣的文档:

--结束END--

本文标题: PXC安装文档

本文链接: https://www.lsjlt.com/news/52022.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PXC安装文档
    一 环境准备 主机IP 主机名 操作系统 PXC版本 192.168.39.135 node1 CentOS 6.8 Percona-XtraDB-Cluster-57-5.7.21 ...
    99+
    2024-04-02
  • mysql5.7 PXC如何安装
    这篇文章主要为大家展示了“mysql5.7 PXC如何安装”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql5.7 PXC如何安装”这篇文章吧。环境信息1...
    99+
    2024-04-02
  • EBS R12.2.7如何安装文档
    小编给大家分享一下EBS R12.2.7如何安装文档,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 1 操作系统安装 1.1  参考官档 Oracle E-Busi...
    99+
    2024-04-02
  • PXC的集群安装是怎样的
    这期内容当中小编将会给大家带来有关PXC的集群安装是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Percona XtraDB Cluster简介Percona X...
    99+
    2024-04-02
  • OEL安装RAC 配置DNS文档
    下边有完整的附件 完整 文档以及操作流程如下 [root@rac01 ~]# cd OracleLinux-R6-U6-Server-x86_64-dvd/ [root@rac0...
    99+
    2024-04-02
  • Zabbix安装配置文档-Part3.配
      一、             添加 Oracle监控 Oracle监控也参考zabbix wiki上如下的方法(调用zabora工具): http://www.zabbix.com/wiki/howto/m...
    99+
    2023-01-31
    文档 Zabbix
  • 云计算毕业设计论文:jumpserver安装文档
    每年进入3-4月所有的高等院校开始了一年一度的毕业生答辩准备阶段,现如今毕业论文或者毕业设计也更加的贴近了互联发展的趋势,很多学校开始做最热话题云计算openstack架构的实现以及云计算环境搭建,先不说这个毕业设计的切入点是否正确,就说选...
    99+
    2023-06-04
  • 安装SQLServer2016时报0x84b10001生成XML文档时出错
    错误代码0x84b10001表示在生成XML文档时出现了错误。这可能是由于以下原因之一: 安装程序没有足够的权限来生成...
    99+
    2024-04-09
    SQLServer
  • C# List生成Txt文档并且读取Txt文档封装List
    目录前言一、简单设计界面二、方法函数讲解三、效果展示四、代码逻辑五、总结前言 在做项目的时候遇到这样的一个问题,需要我将List中的数据读出来并把数据封装到Txt文件中,也能把Txt...
    99+
    2022-11-13
    C# List生成Txt文档 C#封装List C#读取List
  • KVM MYSQL 5.7单机FOR OEL7.5安装文档的方法是什么
    这篇文章主要介绍“KVM MYSQL 5.7单机FOR  OEL7.5安装文档的方法是什么”,在日常操作中,相信很多人在KVM MYSQL 5.7单机FOR  OEL7.5安装文档的方法...
    99+
    2024-04-02
  • 如何在Windows系统中使用压缩归档文件安装MySQL
    本篇文章给大家分享的是有关如何在Windows系统中使用压缩归档文件安装MySQL,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用压缩文档安...
    99+
    2024-04-02
  • oracle数据库em安装文档以及操作流程是什么
    这篇文章主要介绍“oracle数据库em安装文档以及操作流程是什么”,在日常操作中,相信很多人在oracle数据库em安装文档以及操作流程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
  • 官方文档中docker安装php插件xdebug,并使用PHPStorm调试
    docker安装php插件 直接上代码PHPStorm调试常见问题如果查看系统类型如何查看xdebug合适的版本安装异常提示Cannot find autoconf. Please check...
    99+
    2023-10-26
    docker php 容器
  • pytest官方文档解读之安装和使用插件的方法
    目录一、pip 安装二、查找可用插件三、在测试模块或者conftest文件中加载指定插件四、查看被激活的插件五、注销插件本节讨论安装和使用第三方插件。关于编写自己的插件,我们下一章继...
    99+
    2024-04-02
  • 在Linux系统中安装7zip软件处理归档文件的步骤
    本篇内容介绍了“在Linux系统中安装7zip软件处理归档文件的步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!7zip 是一款开源的归档...
    99+
    2023-06-13
  • sanic中文文档
    入门指南 Install Sanic:python3 -m pip install sanicexample from sanic import Sanic from sanic.response import text app = Sa...
    99+
    2023-01-31
    中文 文档 sanic
  • Flutter 极简 Dio 组件二次封装文档
    Flutter Dio 组件二次封装文档 前言一、添加依赖二、创建封装类三、使用封装类四、拦截器五、错误处理总结 前言 本文档介绍了如何通过二次封装 Flutter Dio 组件来简化网络请求的过程。通过封装,我们可以提高代码...
    99+
    2023-08-17
    flutter android
  • python文档
    #形式 # 角色 #抓取对象内可用的所有属性列表的简单方式 import random print(dir(random)) #['BPF', 'LOG4',...
    99+
    2023-01-31
    文档 python
  • 自建企业私有文档云案例:安科瑞电气的文档云办公
    云盒子自成立以来,始终以“致力为各行业提供专业、精细化的文档云协作服务”为目标。目前在全球已经服务超过20个行业,200万+政企用户。每一次用户服务,都是为了更好地解决各行业面临不同的文档管理难题,针对其行业特点,定制专属方案,为企业提供更...
    99+
    2023-06-05
  • gitlab 中文安装
    汉化包地址https://github.com/larryli/gitlabhq目前汉化包支持8.8.5的版本rpm包地址https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/所以这里...
    99+
    2023-01-30
    中文 gitlab
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作