一台服务器如何安装两个PXC节点?,PXC节点怎么安装

一台服务器完全可以安装两个PXC节点,核心思路是使用容器隔离或独立数据目录配合不同端口来实现,但需重点处理IP配置、端口分配和集群通信三个关键环节。

为什么要在单台服务器上部署两个PXC节点

省成本的诱惑力谁都能理解,一台服务器装两个PXC节点,本质上是在物理机内部模拟出两套独立的数据库环境,这种部署方式在测试环境、预发布环境以及预算受限的中小项目中并不少见。

西门子PXC24和PXC4是一个系列控制器么?是用ABTsite软件编程么?一个视频分清楚2个系列控制器
加载中
西门子PXC24和PXC4是一个系列控制器么?是用ABTsite软件编程么?一个视频分清楚2个系列控制器

真正的业务场景往往出于以下考虑:

  • 测试人员需要模拟集群故障切换,但手头只有一台物理机
  • 预算有限,先在一台高配服务器上把功能跑通,后续再迁移到多台物理机
  • 需要验证PXC集群的写入扩展能力,但不想一次性采购三台机器

<由于PXC集群的最小冗余配置是2个节点,多数情况下单台服务器的双节点方案足以满足功能验证和轻量生产需求。>

单机双PXC节点的部署方案对比

部署前需要明确一个事实:两个PXC节点直接跑在同一台机器上,如果不做任何隔离处理,端口冲突、数据目录抢占、SST传输失败这些问题会接踵而至,行业共识认为,常见方案有两种:Docker容器方案物理多实例方案

对比维度 Docker容器方案 物理多实例方案
隔离性 文件系统、PID、网络栈完全隔离 仅数据目录和配置隔离,共享内核
部署难度 较低,一条命令启动容器 较高,需要手动管理多个mysqld进程
性能损耗 约3%5%网络开销 几乎无损耗
推荐场景 测试环境、快速验证 对I/O有要求的生产环境

如果是首次尝试一台服务器安装两个pxc节点,Docker方案更推荐,容器化的隔离机制可以避雷大部分低级错误,但无论哪种方案,存储引擎的SST快照传输机制决定了两个节点的物理部署距离越近,传输越便捷,这也是单机部署的天然优势。

一台服务器上打两个pxc节点的具体步骤

前置检查与资源估算

先确认服务器配置是否扛得住,单个PXC节点在低负载下占用约1GB内存,两个节点加上操作系统开销,至少需要3GB可用内存,磁盘方面,每个节点预留独立的数据目录,建议不低于20GB,统计数字表明,相当一部分部署失败源于资源规划不足。

检查现有环境:

一台服务器如何安装两个PXC节点?,PXC节点怎么安装

grep -c processor /proc/cpuinfo
free -h
df -h

Docker方式部署两个PXC节点的实操路径

通过容器方式部署,本质上是用端口映射把两个PXC节点的通信通道分开,假设服务器IP为192.168.1.100,两个节点分别映射33103320端口给MySQL客户端,映射45674568端口给集群通信。

第一个节点启动命令:

docker network create -d bridge pxc-net
docker run -d --name pxc1 
  -p 3310:3306 
  -p 4567:4567 
  -p 4568:4568 
  -e MYSQL_ROOT_PASSWORD=rootpass 
  -e CLUSTER_NAME=pxc-cluster 
  -e XTRABACKUP_PASSWORD=backuppass 
  -v /data/pxc1:/var/lib/mysql 
  --network=pxc-net 
  percona/percona-xtradb-cluster:8.0

这里有一个关键点:第一个节点初始化时,必须声明自己为集群引导节点,进入容器执行:

docker exec -it pxc1 mysql -uroot -prootpass 
  -e "SET GLOBAL wsrep_provider_options='ist.recv_addr=192.168.1.100:4568';"

第二个节点启动命令:

第二个节点与第一个节点的最大区别在于,它需要知道谁是自己人,通过CLUSTER_JOIN参数指定第一个节点的集群地址:

docker run -d --name pxc2 
  -p 3320:3306 
  -p 4570:4567 
  -p 4571:4568 
  -e MYSQL_ROOT_PASSWORD=rootpass 
  -e CLUSTER_NAME=pxc-cluster 
  -e CLUSTER_JOIN=pxc1:4567 
  -e XTRABACKUP_PASSWORD=backuppass 
  -v /data/pxc2:/var/lib/mysql 
  --network=pxc-net 
  percona/percona-xtradb-cluster:8.0

启动后等待约3060秒,两个节点会自动完成SST全量数据传输,用以下命令验证集群状态:

docker exec -it pxc1 mysql -uroot -prootpass 
  -e "SHOW STATUS LIKE 'wsrep_cluster_size';"

正常输出wsrep_cluster_size = 2即代表两台节点已成集群。

物理多实例方式部署两个PXC节点

物理多实例的难点在于把每个实例的配置文件和进程管理彻底分开,安装基础PXC软件包后,按以下顺序操作:

第一步:目录拆分与配置准备

mkdir -p /etc/my.cnf.d/pxc1 /etc/my.cnf.d/pxc2
mkdir -p /var/lib/pxc1 /var/lib/pxc2
cp /etc/my.cnf /etc/my.cnf.d/pxc1/my.cnf
cp /etc/my.cnf /etc/my.cnf.d/pxc2/my.cnf

第二步:分别修改两个配置文件

pxc1的my.cnf核心配置段:

[mysqld]
server-id=1
port=3310
datadir=/var/lib/pxc1
socket=/var/run/mysqld/pxc1.sock
wsrep_cluster_name="pxc-single-server"
wsrep_node_name="pxc-single-1"
wsrep_node_address=192.168.1.100:4570
wsrep_sst_receive_address=192.168.1.100:4571
wsrep_cluster_address="gcomm://192.168.1.100:4572"

一台服务器如何安装两个PXC节点?,PXC节点怎么安装

pxc2的my.cnf核心配置段:

[mysqld]
server-id=2
port=3320
datadir=/var/lib/pxc2
socket=/var/run/mysqld/pxc2.sock
wsrep_cluster_name="pxc-single-server"
wsrep_node_name="pxc-single-2"
wsrep_node_address=192.168.1.100:4573
wsrep_sst_receive_address=192.168.1.100:4574
wsrep_cluster_address="gcomm://192.168.1.100:4572"

注意这里的端口规划:4570和4573分别为两个节点的集群通信端口,4572为gcomm运行时的统一端口,物理多实例方案下,不同端口都要明确区分开。

第三步:初始化数据目录并启动

mysqld --defaults-file=/etc/my.cnf.d/pxc1/my.cnf --initialize-insecure
mysqld --defaults-file=/etc/my.cnf.d/pxc2/my.cnf --initialize-insecure
mysqld --defaults-file=/etc/my.cnf.d/pxc1/my.cnf --wsrep-new-cluster &
sleep 10
mysqld --defaults-file=/etc/my.cnf.d/pxc2/my.cnf &

第四步:确认两节点写入同步正常

在两个节点分别创建测试表并写入数据:

mysql -uroot -P3310 -h127.0.0.1 -e "CREATE DATABASE test; USE test; CREATE TABLE t1(id INT); INSERT INTO t1 VALUES (1);"
mysql -uroot -P3320 -h127.0.0.1 -e "SELECT  FROM test.t1;"

如果第二个节点能查询到刚才写入的记录,说明两台节点同步机制已经开始工作。

单机部署两个PXC节点的常见坑与规避措施

端口冲突爆发点

同一台服务器上不同实例的默认端口全部相同:3306端口、4567端口、4568端口、4444端口,不修改直接启动,第二个节点必然报错,端口分配是安装过程中最容易被忽视的环节,建议按表逐一核对:

服务用途 默认端口 节点1建议端口 节点2建议端口
MySQL客户端连接 3306 3310 3320
集群通信 4567 4567 4570
IST增量传输 4568 4568 4571
SST全量传输 4444 4444 4572

auto_increment偏移量设置

PXC两个节点同时接受写入,如果两个节点的自增主键都从1开始,很快就会出现主键冲突,PXC官方推荐配置:

auto_increment_increment=2
auto_increment_offset=1

一台服务器如何安装两个PXC节点?,PXC节点怎么安装

第二个节点设置auto_increment_offset=2,这样节点1生成1、3、5、7…节点2生成2、4、6、8…保证两节点同时写入时不会撞车。

单机服务器的SST传输阻断

Docker方式下,容器网络与宿主机网络之间存在NAT转换,SST传输经常因防火墙规则被拦截,如果启动时发现第二个节点一直处于JOINING状态,多缴一个排查步骤:

iptables -I INPUT -p tcp --dport 4444 -j ACCEPT
iptables -I INPUT -p tcp --dport 4567 -j ACCEPT
iptables -I INPUT -p tcp --dport 4568 -j ACCEPT

两台节点同时故障的恢复策略

单机部署意味着物理机宕机时两个节点同时不可用,集群重启时,千万不要同时启动两个节点,否则会因找不到主节点而反复协商,正确做法:先启动第一个节点并添加--wsrep-new-cluster参数引导集群,再启动第二个节点,由于第二个节点的gcomm地址指向第一个节点,会自动以增量方式同步数据。

一台服务器pxc两个节点部署常见疑问解答

同服务器上两个PXC节点能做故障自动切换吗

可以,但切换价值不大,物理机宕机时两个节点同时失联,无法实现跨机器的高可用,如果目标是模拟节点故障场景,可以在宿主机存活时通过手动停止其一节点的mysqld服务来观察集群状态变化,自动切换主要依赖keepalived或HAProxy虚IP漂移,但虚IP绑定在本地物理机,物理机本身故障时虚IP也一并消失,因此这种情况下故障切换的真正意义是测试层面而非生产保障。

单机双节点将来怎么平滑迁移到多台物理机

先在旧节点上mysqldump导出全部核心数据,新集群部署三个节点后,先将其中一个节点的wsrep_cluster_address修改为指向新集群的gcomm地址,让它以增量方式把数据同步过去,同步完成后,将另外一台旧节点正常退组,新集群三个节点继续工作,这个过程中有两台节点同时在线的重叠期,对于测试环境完全可行,迁移完成后,记得在新集群中执行SHOW STATUS LIKE 'wsrep_cluster_size';确认节点数等于新机器数量。

两个节点都用同一个root密码,安全方面怎么处理

PXC要求所有节点账号密码一致,因此单机部署中两个实例的root密码必须相同,但这并不意味着安全防控没有提升空间,操作上可以限制root账户只允许本地登录,同时为应用单独创建专用账号,用CREATE USER并限定来源IP,集群内部通信账号xtrabackup建议使用独立随机密码,便于排查问题时区分具体连接来源。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/581171.html

(0)
it业务分析_业务测试和分析
上一篇 2026年8月18日 22:34
瓦港服怎么选延迟低的服务器?,哪个服务器延迟最低
下一篇 2026年8月18日 22:34

相关推荐

  • 视频合成软件怎么开发?好用的视频合成工具推荐

    创作领域的核心驱动力,其本质在于通过高效的算法架构与极简的交互设计,解决多源素材处理与高质量输出的矛盾,在短视频与流媒体爆发的当下,开发一款高性能的视频合成工具,不再仅仅是代码的堆砌,而是对音视频编解码技术、图形渲染引擎以及用户体验心理学的深度整合,成功的开发项目必须优先确立“渲染效率优先、格式兼容为本、交互体……

    2026年3月11日
    13800
  • 手机版我的世界2b2t服务器怎么进入,为什么进不去

    手机版我的世界无法直接进入Java版2b2t服务器,但通过PojavLauncher等工具在手机上运行Java版客户端,可以真实连接2b2t,只是排队和性能体验与电脑版差距明显,手机版与2b2t的兼容性真相2b2t是一个基于Java版我的世界构建的无政府服务器,至今没有官方基岩版端口,手机版(基岩版)使用的协议……

    2026年8月5日
    600
  • Excel服务器客户端闪退打不开怎么办,是什么原因?

    Excel服务器客户端闪退打不开,通常是因为本地缓存文件损坏、配置文件错误或服务器连接异常,最快解决方法是先清除客户端缓存,再重置配置文件,如果还不行就修复安装或重新注册组件,excel服务器客户端闪退打不开的常见原因大部分闪退问题并非服务器故障,而是客户端本地环境出了状况,业内专家指出,缓存冲突和配置异常是导……

    2026年8月22日
    200
  • 什么是AIoT平台教学?物联网平台开发教程

    AIoT平台教学的核心在于通过低代码工具链将硬件感知与云端智能无缝连接,让开发者无需深耕底层协议即可快速构建场景化应用,从而显著降低物联网开发门槛并缩短产品上市周期,为什么选择AIoT平台进行教学与开发传统的物联网开发往往需要开发者同时精通嵌入式C语言、网络通信协议以及后端云服务,这种全栈式要求极大地限制了创新……

    2026年6月16日
    3100
  • 剑网三开发版闪退怎么办,剑网三闪退怎么解决?

    解决游戏客户端崩溃问题,本质上是对程序运行时内存状态与系统环境依赖的深度排查,核心结论在于:绝大多数崩溃并非游戏逻辑本身的随机错误,而是由内存访问越界、动态链接库依赖缺失或底层Hook逻辑冲突引起的,通过建立标准化的调试环境,利用底层调试工具捕获异常上下文,可以精准定位并修复故障,开发者应摒弃盲目试错,转而依赖……

    2026年2月18日
    22800
  • 广州永和开发区移动宽带

    2026年广州永和开发区移动宽带凭借千兆光纤全覆盖与政企专线降本30%的优势,已成为区内制造企业与常住居民网络升级的最优解,永和开发区网络痛点与移动宽带破局产业升级下的网络瓶颈广州永和开发区作为先进制造业与跨境电商重镇,长期面临网络基建滞后于产业升级的困境,根据【通信行业】2026年最新权威数据,开发区内超40……

    2026年5月1日
    6300
  • 美国RepriseHostingVPS测评,28美元/月方案实测对比,美国VPS哪家好

    美国RepriseHosting 28美元/月方案实测结论:该方案凭借KVM虚拟化架构与SSD存储,在性价比与基础稳定性上表现优异,适合个人博客、轻量级建站及开发者测试环境,但受限于单核性能与带宽上限,不适合高并发或大型电商业务,在2026年的VPS市场中,RepriseHosting作为老牌服务商,其28美元……

    2026年5月13日
    4200
  • Excel对号框怎么打勾,操作步骤有哪些?

    在Excel中,对号框就是复选框,通过插入表单控件或ActiveX控件实现,勾选后能自动标记完成状态,是制作任务清单和数据统计的利器,插入对号框的两种主流方法大多数人刚接触Excel对号框时,第一反应是找符号库里的“√”,但真正的对号框是一个可点击的控件,勾选后能反馈逻辑值,这才是它的核心价值,在Excel中……

    2026年7月20日
    2000
  • AIoT精灵有什么用,AIoT精灵功能详细介绍

    AIoT精灵的核心价值在于通过人工智能与物联网的深度融合,实现设备智能化、场景自动化和数据价值化,为家庭和企业提供高效、便捷、安全的智能化解决方案,其作用主要体现在提升效率、降低成本、优化体验三个方面,以下从具体应用场景展开分析,智能家居场景:提升生活便捷性AIoT精灵通过语音控制、远程操作、场景联动等功能,显……

    2026年3月14日
    8300
  • 公有云和私有云到底选哪个?企业上云如何选择私有云

    公有云 vs 私有云:2026年企业服务器选型深度测评与实战指南在数字化转型进入深水区的2026年,企业IT架构的选择不再仅仅是技术堆栈的比拼,更是成本控制、数据安全与业务弹性之间的博弈,许多CTO和运维负责人在面临服务器选型时,往往陷入“公有云太贵、私有云太重”的困境,本文将基于真实的生产环境测试数据,深入剖……

    2026年6月26日
    2300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注