当前位置:首页 > RockyLinux > 正文

RockyLinux数据库高可用方案(手把手教你搭建MySQL高可用集群)

在企业级应用中,数据库的稳定性和高可用性至关重要。一旦数据库宕机,可能导致业务中断、数据丢失等严重后果。本文将详细讲解如何在 RockyLinux 系统上搭建一套高可用的数据库方案,即使你是 Linux 新手,也能轻松上手。

为什么需要数据库高可用?

数据库高可用(High Availability, HA)是指通过冗余架构和自动故障转移机制,确保数据库服务在发生硬件故障、网络中断或软件崩溃时仍能持续对外提供服务。常见的实现方式包括主从复制、共享存储集群、Pacemaker+Corosync 等。

方案选择:主从复制 + Keepalived

对于大多数中小企业,我们推荐使用 MySQL 主从复制 配合 Keepalived 实现虚拟 IP 自动漂移。这种方式成本低、配置简单、稳定性好,非常适合 RockyLinux 环境。

RockyLinux数据库高可用方案(手把手教你搭建MySQL高可用集群) RockyLinux数据库高可用 MySQL主从复制 RockyLinux高可用集群 Pacemaker+Corosync高可用 第1张

环境准备

  • 两台 RockyLinux 9 服务器(IP:192.168.1.10 和 192.168.1.11)
  • 安装 MySQL 8.0(或其他你熟悉的数据库)
  • 关闭防火墙或开放必要端口(3306、22、VRRP 协议等)
  • 确保两台机器时间同步(建议配置 NTP)

第一步:配置 MySQL 主从复制

1. 在主库(192.168.1.10)上操作:

# 编辑 MySQL 配置文件sudo vi /etc/my.cnf# 添加以下内容[mysqld]server-id=1log-bin=mysql-binbinlog-format=rowbind-address=0.0.0.0# 重启 MySQLsudo systemctl restart mysqld

创建用于复制的用户:

mysql -u root -pCREATE USER 'repl'@'%' IDENTIFIED BY 'StrongPassword123!';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';FLUSH PRIVILEGES;

2. 在从库(192.168.1.11)上操作:

# 编辑 MySQL 配置文件sudo vi /etc/my.cnf[mysqld]server-id=2relay-log=relay-logread-only=1# 重启 MySQLsudo systemctl restart mysqld

配置从库连接主库:

mysql -u root -pCHANGE MASTER TO  MASTER_HOST='192.168.1.10',  MASTER_USER='repl',  MASTER_PASSWORD='StrongPassword123!',  MASTER_LOG_FILE='mysql-bin.000001',  MASTER_LOG_POS=156;START SLAVE;

注意:MASTER_LOG_FILEMASTER_LOG_POS 需要从主库执行 SHOW MASTER STATUS; 获取。

第二步:安装并配置 Keepalived

Keepalived 可以实现虚拟 IP(VIP)的自动漂移。当主库宕机,VIP 会自动切换到从库。

在两台服务器上都安装 Keepalived:

sudo dnf install -y keepalived

主库配置(/etc/keepalived/keepalived.conf):

vrrp_script chk_mysql {    script "/usr/local/bin/check_mysql.sh"    interval 2    weight -5    fall 2    rise 1}vrrp_instance VI_1 {    state MASTER    interface eth0    virtual_router_id 51    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.1.100/24    }    track_script {        chk_mysql    }}

从库配置(/etc/keepalived/keepalived.conf):

vrrp_script chk_mysql {    script "/usr/local/bin/check_mysql.sh"    interval 2    weight -5    fall 2    rise 1}vrrp_instance VI_1 {    state BACKUP    interface eth0    virtual_router_id 51    priority 90    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.1.100/24    }    track_script {        chk_mysql    }}

创建健康检查脚本 /usr/local/bin/check_mysql.sh

#!/bin/bashif ! mysqladmin ping -h localhost --silent; then    exit 1else    exit 0fi

赋予执行权限:

chmod +x /usr/local/bin/check_mysql.sh

启动 Keepalived:

sudo systemctl enable --now keepalived

第三步:测试高可用

现在你可以通过虚拟 IP 192.168.1.100 连接数据库。尝试停止主库的 MySQL 服务,观察 VIP 是否自动漂移到从库。恢复主库后,VIP 不会自动切回(除非配置抢占模式),这是正常行为。

进阶方案:Pacemaker + Corosync

如果你需要更强大的集群管理能力(如资源组、STONITH、多节点仲裁等),可以考虑使用 Pacemaker + Corosync 构建 RockyLinux高可用集群。该方案适用于金融、电信等对可靠性要求极高的场景。

总结

通过本文介绍的 RockyLinux数据库高可用 方案,你可以轻松构建一套稳定可靠的 MySQL 高可用系统。无论是使用简单的 Keepalived,还是复杂的 Pacemaker+Corosync,核心目标都是保障业务连续性。希望这篇教程对你有所帮助!

相关 SEO 关键词回顾:

  • RockyLinux数据库高可用
  • MySQL主从复制
  • RockyLinux高可用集群
  • Pacemaker+Corosync高可用