一台服务器如何安装两个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://idctop.com/article/581171.html

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

相关推荐

  • 合肥物理服务器租用收费标准怎么查,多少钱一个月?

    看懂合肥物理服务器租用收费标准,核心在于把配置、带宽、机房等级和计费周期拆开算,别被低价月付迷惑,要算清三年总成本,合肥物理服务器租用价格表怎么看?先拆解三大核心计费项每一份报价单都藏着几个关键变量,你拿到手的“价格”其实是这些因素的组合结果,多数人只看月付数字,忽略了隐藏的续费门槛和流量超额费用,配置费用:C……

    2026年8月11日
    1000
  • AIoT商业落地如何实现?AIoT应用场景有哪些

    AIoT商业落地的核心在于从“技术演示”转向“业务闭环”,通过边缘计算降低延迟、利用大模型优化决策,并在智能制造、智慧零售等具体场景中实现降本增效,而非单纯追求硬件堆砌,过去几年,行业经历了一轮从概念炒作到理性回归的过程,许多企业曾误以为只要装上传感器、连上云平台,就能自动获得智能红利,现实情况是,数据孤岛、协……

    2026年6月15日
    2800
  • ASP下利用XML打包网站文件的具体操作步骤和常见问题有哪些?

    在ASP(Active Server Pages)环境下,利用XML(eXtensible Markup Language)打包网站文件是一种高效、标准化的方法,用于整合和传输数据,ASP作为微软开发的服务器端脚本技术,能动态生成网页内容,而XML作为一种轻量级标记语言,提供了结构化、可扩展的数据存储方式,通过……

    2026年2月6日
    10930
  • AIoT是什么读?AIoT正确发音方法详解

    AIoT(智能物联网)读作“AI-I-T”,是人工智能(AI)与物联网(IoT)的深度融合,核心在于“智”与“联”的结合,即通过AI技术赋予物联网设备主动感知、分析和决策的能力,实现从“万物互联”到“万物智联”的跨越,其本质是数据、算力与算法在边缘端与云端的协同闭环,最终提升效率、降低成本并创造新价值,AIoT……

    2026年3月22日
    10300
  • 服务器ip数量怎么查?服务器IP地址查看方法大全

    服务器IP数量的配置直接决定了业务的稳定性、抗风险能力以及SEO表现,对于正规企业站与大型业务平台而言,独立IP或多IP配置是保障线上资产安全的最优解,而由于成本考量,共享IP仅适用于初创期或非核心业务,在规划网络架构时,IP数量并非越多越好,而是要与业务规模、安全策略及SEO需求形成精准匹配, 业务隔离与风险……

    2026年3月30日
    8500
  • LOCVPS双11充值送10元是真的吗,香港VPS月付22元起靠谱吗

    在2026年双11期间,LOCVPS推出的“充值100送10元”及“全场主机6折起”活动,配合香港VPS月付22元起的超低门槛,是个人开发者、中小型企业及跨境业务用户以最低成本获取高性能稳定服务器的最佳时机,双11促销力度深度解析:从价格到权益的全面升级对于长期关注服务器市场的用户而言,双11早已不仅仅是一个购……

    2026年6月28日
    2600
  • AIoT智能家居产品有哪些?智能家居怎么选才靠谱

    AIoT智能家居的核心价值在于通过人工智能与物联网的深度融合,实现了从“单品智能”向“全屋智能”的跨越,让家居设备具备了主动感知、自主决策与自然交互的能力,从而为用户构建了一个安全、便捷、舒适且节能的现代化居住生态,这不仅是技术的升级,更是生活方式的根本性变革,技术架构重构:从被动控制到主动服务传统的智能家居往……

    2026年3月17日
    11900
  • ZoroCloud VPS限时68折是真的吗,香港美国双ISP住宅IP怎么买

    ZoroCloud凭借强制CN2 GIA与AS9929双骨干网接入,为对网络延迟敏感及需要高防保护的用户提供了极具性价比的香港、美国及日韩VPS解决方案,其限时68折优惠更是降低了企业级网络架构的入门门槛,在2026年的跨境网络环境中,单纯追求低价往往意味着牺牲稳定性和速度,许多用户在选择海外服务器时,常陷入……

    2026年6月28日
    1500
  • 秋枫云五一优惠码怎么用?香港BGP月付8折VPS推荐

    五一期间,香港HGC月付可享8折优惠,而香港BGP、HKT、Akari以及新加坡Akari和美国Kirino的流媒体VPS月付统一75折,这是目前性价比极高的出海节点选择,五一假期不仅是休息的时刻,更是技术爱好者优化网络架构的黄金窗口,对于需要稳定海外连接的用户来说,选择正确的服务商和优惠策略,能直接提升日常使……

    2026年6月30日
    1200
  • aspx邮件发送如何优化邮件发送流程,提高效率与准确性?

    ASPX邮件发送是指在ASP.NET Web Forms环境中,利用.NET框架的邮件处理类库(如System.Net.Mail)通过代码实现电子邮件的自动发送功能,这项技术广泛应用于用户注册验证、密码重置、订单通知、系统报警等场景,是企业级Web应用开发中的核心功能之一,其核心优势在于能够与ASP.NET应用……

    2026年2月4日
    12800

发表回复

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