---
title: "使用 SafeKit 实现 MariaDB 高可用性：安装 mysql.safe 模块以实现故障转移"
canonical: "https://safekit.eviden.com/zh-hans/quick-install/safekit-quick-installation-guide-with-mariadb/"
description: "部署 mysql.safe 模块以启用 SafeKit，从而实现 MariaDB 在 Windows 和 Linux 上的同步实时复制和自动故障转移。本指南将引导您为关键应用程序设置一个无共享存储的 2 节点 SANless 集群。"
category: "quick-install"
lang: "zh-hans"
topics: "MariaDB 高可用性快速安装指南, SafeKit 高可用性限制, SafeKit/MariaDB 解决方案概述, 在 Windows 和 Linux 上安装 SafeKit/MariaDB 解决方案 (mysql.safe), SafeKit/MariaDB 解决方案的分步配置, SafeKit mirror 解决方案演示"
translation: "translate_md 2026-11-08.15 | glossaire 2026-11-09.11 | Translation LLM | 43 expressions"
---

# 使用 SafeKit 实现 MariaDB 高可用性：安装 mysql.safe 模块以实现故障转移 {#mariadb-high-availability-with-safekit-install-the-mysqlsafe-module-for-failover}

## MariaDB 高可用性快速安装指南 {#quick-guide}

本指南介绍如何使用 SafeKit 为 MariaDB 设置 **mirror 集群**，确保自动故障转移和同步复制，而无需共享存储。 

如需帮助，您可以使用[SafeKit AI 🤖](https://safekit.eviden.com/zh-hans/resources/safekit-support/)。

### 1. 概述 {#1-overview}

  * **架构：** 采用双节点系统（主/备）。
  * **数据保护：** 实现实时同步复制，实现**零数据丢失**（RPO = 0）。

### 2. 安装 {#2-installation}

  * **软件：** 在两台服务器上安装 SafeKit 引擎。
  * **模块：** 下载预配置的 `mysql.safe` 应用程序模块。

### 3. 配置 {#3-configuration}

  * **Web 控制台：** 配置包含 MariaDB 文件的特定文件夹。
  * **监控：** 开始监控和保护 MariaDB 应用程序。

## SafeKit 高可用性限制 {#safekit-ha-limitations}

限制/要求 | 原因与影响 | 推荐替代方案  
---|---|---  
复制大小：几 TB |  故障后的重新同步时间（[步骤 3](https://safekit.eviden.com/zh-hans/architectures/file-replication-byte-level-with-failover-mirror-cluster/#safekit-mirror-cluster)）：<br> • 1 Gb/s 网络 ≈ 3 小时/TB <br> • 10 Gb/s 网络 ≈ 1 小时/TB（取决于磁盘写入性能）  |  • 使用[外部共享存储](https://safekit.eviden.com/zh-hans/best-practises/san-vs-nas-shared-storage-for-a-failover-cluster/)（更昂贵，更复杂）。   
文件数量：< 1,000,000 个文件 |  • 故障后的重新同步时间性能（[步骤 3](https://safekit.eviden.com/zh-hans/architectures/file-replication-byte-level-with-failover-mirror-cluster/#safekit-mirror-cluster)）。<br> • 比较两个节点之间每个文件所需的时间。  |  • 将要复制的许多文件放入虚拟硬盘/虚拟机中。<br> • 在这种情况下，只有代表虚拟硬盘/虚拟机的那些文件会被复制和重新同步。   
故障转移容量：≤ 32 台虚拟机 |  • 每个虚拟机都在独立的 mirror 模块中运行。<br> • 同一集群中最多可运行 32 个 mirror 模块。  |  • 使用外部共享存储和另一个虚拟机集群解决方案（更昂贵，更复杂）。   
网络架构：远程站点之间的局域网/虚拟局域网 |  • [虚拟 IP 地址](https://safekit.eviden.com/zh-hans/best-practises/how-a-virtual-ip-address-works/)在同一子网中的 2 个节点之间自动故障转移。<br> • 良好的带宽，用于重新同步（[步骤 3](https://safekit.eviden.com/zh-hans/architectures/file-replication-byte-level-with-failover-mirror-cluster/#safekit-mirror-cluster)）。<br> • [同步复制的](https://safekit.eviden.com/zh-hans/best-practises/synchronous-replication-vs-asynchronous-replication/)低延迟：通常 < 5 毫秒 RTT；应根据应用程序的写入速率验证较高值。  |  • 如果两个节点位于不同的子网中（云中常见），请使用[其他重新路由选项](https://safekit.eviden.com/zh-hans/best-practises/how-a-virtual-ip-address-works/#safekit-virtual-ip-implementation)：负载均衡器、云提供商 CLI、BGP 或 DNS 重定向。<br> • 对于高延迟网络，请使用具有异步复制的备份解决方案。   

 

## SafeKit/MariaDB 解决方案概述 {#overview-of-the-safekit--mariadb-solution}

解决方案在此处介绍：**💡 [最简单的 MariaDB 高可用性：2 节点同步复制和故障转移](<https://safekit.eviden.com/zh-hans/solutions/mariadb-simplest-high-availability-cluster-synchronous-replication-failover-redundant-servers/>)**。

## 在 Windows 和 Linux 上安装 SafeKit/MariaDB 解决方案 (mysql.safe) {#installation-of-the-safekit--mariadb-solution-on-windows-and-linux-mysqlsafe}

### 先决条件 {#prerequisites}

  * 您需要在 2 个节点（虚拟机或物理服务器）上安装 MariaDB。

### 在 Windows 上安装软件包 {#package-installation-on-windows}

  * 在两台 Windows 节点上下载并安装 SafeKit 免费版。   
注意：免费版本包含所有 SafeKit 功能。试用期结束后，您无需卸载软件包即可激活永久许可证密钥。 
  * 完成软件包安装后，选择 **“立即设置控制台凭据和防火墙规则”**，并为 SafeKit 控制台的 **admin** 用户配置密码。   
**在所有节点上设置相同的密码**。
  * **C:/safekit/**（默认安装目录）和您将要定义的**所有复制文件夹**从防病毒扫描中排除。   
由于 SafeKit 与操作系统紧密集成、采用虚拟 IP 机制、实时复制以及关键服务重启等特性，杀毒软件可能会面临检测挑战。 

<a class="btn-download" href="/zh-hans/resources/safekit-free-trial/">下载 SafeKit (Windows) ></a>

### 在 Windows 上安装模块 {#module-installation-on-windows}

  * 下载 mysql.safe 模块。该模块免费。它包含 userconfig.xml 文件和重启脚本。
  * 将 **mysql.safe** 放在 **C:/safekit/Application_Modules/generic** 目录下。

<a class="btn-download" href="/wp-content/uploads/downloads_safekit/version-82/modules_windows/mysql.safe" download="mysql.safe">下载 mysql.safe (Windows) ></a> 

### 在 Linux 上安装软件包 {#package-installation-on-linux}

  * 在 2 个 Linux 节点上安装免费版 SafeKit。注意：免费试用版包含所有 SafeKit 功能。试用期结束后，您无需卸载软件包即可激活永久许可证密钥。
  * 下载 safekit_xx.bin 包后，运行该包以提取 rpm 和 safekitinstall 脚本，然后运行 **safekitinstall** 脚本
  * 回答 **“是”** 以启用防火墙自动配置
  * 为 Web 控制台和默认用户 **admin** 设置密码。**在所有节点上设置相同的密码**。

<a class="btn-download" href="/zh-hans/resources/safekit-free-trial/">下载 SafeKit (Linux) ></a>

### 在 Linux 上安装模块 {#module-installation-on-linux}

  * 下载 mysql.safe 模块。   
该模块是免费的。它包含 userconfig.xml 文件和重启脚本。 
  * 将 **mysql.safe** 放在 **/opt/safekit/Application_Modules/generic/** 目录下。

<a class="btn-download" href="/wp-content/uploads/downloads_safekit/version-82/modules_linux/mysql.safe" download="mysql.safe">下载 mysql.safe (Linux) ></a> 

 

## SafeKit/MariaDB 解决方案的分步配置 {#step-by-step-configuration-of-the-safekit--mariadb-solution}

### 先决条件 {#prerequisites}

  * MariaDB 程序安装在 2 个节点上。
  * 复制数据的总量限制在几 TB 以内，超出此范围，重新同步所需的时间将变得非常长。
  * 节点之间的最小互连速度为 1Gb/s（建议使用 10Gb/s 以实现更快的重新同步）。
  * IP 故障转移要求两个节点位于同一 LAN 或扩展 LAN (L2) 上 — 不支持路由 L3 网络（🛠️ [云负载均衡器](https://safekit.eviden.com/zh-hans/resources/safekit-user-guide-82/#Cloud)除外）。

### 1. 启动 SafeKit 控制台 {#1-launch-the-safekit-console}

  * 在某个集群节点上，通过连接到 `http://localhost:9010` 在浏览器中启动 Web 控制台。
  * 输入用户名 `admin` 和安装过程中定义的密码。

您也可以在集群外部工作站的浏览器中运行控制台。

⚠️ SafeKit 的配置通过单个浏览器在两个节点上完成。

ℹ️ 要保护 Web 控制台，请参阅用户指南中的 🛠️ [11. 保护 SafeKit Web 服务](https://safekit.eviden.com/zh-hans/resources/safekit-user-guide-82/#https)。

![启动 SafeKit Web 控制台以配置 MariaDB 集群](https://safekit.eviden.com/wp-content/uploads/2024/03/01-login-large.png)

### 2. 配置节点地址 {#2-configure-node-addresses}

  * 输入节点 IP 地址，按 `Tab key` 检查连接性并填写节点名称。如果 node1 或 node2 为红色，请检查浏览器与这两个节点的连接性，并检查这两个节点的防火墙以进行 🛠️ [故障排除](https://safekit.eviden.com/zh-hans/resources/safekit-user-guide-82/#Troubleshooting)。
  * 然后，单击 `Save and apply` 以保存配置。
  * 检查两个节点上的 `Success` ✅ 消息。
  * 如果某个节点上发生配置 `Failure` ❌，请打开该节点的▼手风琴，然后查看消息。请注意，您可以使用 SafeKit AI 🤖 寻求帮助。

ℹ️ 如果您愿意，可以添加新的 `LAN and nodes`（首先 ➕），以创建第二个心跳和专用复制网络。

ℹ️ 如果您单击 `Advanced configuration`，则会显示 `cluster.xml` 文件。此文件由控制台自动填充并部署到节点上。

![输入 MariaDB 集群的节点](https://safekit.eviden.com/wp-content/uploads/2024/03/02-cluster-edit.png)

### 3. 选择模块 {#3-select-a-module}

  * 在 `New module` 中，单击 `mysql.safe` ”模块。

ℹ️ 在顶部的蓝色横幅中，🛜 `node1` 代表控制台连接节点。此节点在需要时将请求中继到 `node2`。

ℹ️ 如果您在安装期间将模块放置在连接节点（`node1`）上的 `Application_Modules/generic/` 目录中，则控制台会在该目录中搜索 `xxx.safe`

![选择 MariaDB 模块](https://safekit.eviden.com/wp-content/uploads/2024/03/04-module-new.png)

### 4. 配置模块 {#4-configure-the-module}

  * 在 `Module startup at boot` 中，选择在启动时自动启动模块，无需延迟。
  * 在 `Macros`/`SERVICES` 中，按启动顺序输入应用程序的服务名称，并用逗号分隔。有关[Milestone XProtect 服务的直观示例，请参阅此屏幕截图 🖼️](https://safekit.eviden.com/wp-content/uploads/2025/05/milestone-services.png)。
  * 在 `Heartbeat networks` 中，您应该有一个用于进行复制的单一心跳网络。如果您在步骤 2 中添加了专用 LAN，那么您可以在专用 LAN 上配置两个带有复制流的心跳。
  * 在 `Virtual IP addresses` 中，输入虚拟 IP 地址。虚拟 IP 地址是与两个节点的 IP 地址位于同一 IP 网络（同一子网）中的标准 IP 地址。  
必须使用虚拟 IP 地址（或与虚拟 IP 地址关联的 DNS 名称）配置应用程序客户端。  
发生故障时，虚拟 IP 地址会自动切换。
  * 在 `Replicated directories` 中，设置要复制的目录路径。检查它们是否存在于两个节点上并包含应用程序数据。  
数据和日志复制对于数据库至关重要。  
您可以根据需要创建其他复制目录。  
请参阅此屏幕截图，了解[Milestone XProtect SQL 复制的可视化示例 🖼️](https://safekit.eviden.com/wp-content/uploads/2025/05/milestone-replication.png)。
  * 在 `Checkers` 中，您可以根据需要配置检查器，例如进程监控、自定义检查器、TCP、ping 或裂脑检查器。  
例如，如果进程名称显示在 `Monitored processes/services` 中，则在发生故障时，它将通过重启操作进行监控。配置错误的进程名称将导致模块在启动后立即停止。

ℹ️ 如果您单击 `Advanced configuration`，则会显示 `userconfig.xml` 文件。此文件由控制台自动填充，并通过重启脚本部署到节点上。

ℹ️ 在云部署中，您无需在 SafeKit 中配置虚拟 IP 地址。虚拟 IP 由 🛠️ [云负载均衡器](https://safekit.eviden.com/zh-hans/resources/safekit-user-guide-82/#Cloud)管理。

ℹ️ 应用 SafeKit 配置时，Windows 服务中的服务 `startup type` 会自动设置为 `Manual`。这可确保服务在系统启动时不会自动启动，而是在模块本身启动时才启动（Linux 上也适用）。

![进入 MariaDB 模块设置](https://safekit.eviden.com/wp-content/uploads/2025/05/05-module-mirror-edit-config-3.png)

### 5. 编辑脚本（可选） {#5-edit-scripts-optional}

  * 此步骤是可选的，在大多数情况下可以跳过，因为重启脚本已预先配置为重启上一步中定义的服务。
  * 因此，请直接点击 `Next step`。
  * `start_prim.ps1` 按照 `SERVICES` 列表中指定的顺序启动所有服务，而 `stop_prim.ps1` 按照相反的顺序停止所有服务。
  * 此外，`start_prim.ps1` 会检查每个服务的启动情况，如果任何服务未能正确启动，则会停止该模块。

![进入 MariaDB 模块设置](https://safekit.eviden.com/wp-content/uploads/2026/09/28-module-edit-script.png)

### 6. 通信加密（可选） {#6-communication-encryption-optional}

  * 保持节点间通信的加密。

![MariaDB 模块的通信加密](https://safekit.eviden.com/wp-content/uploads/2025/05/07-module-encryption-1.png)

### 7. 保存并应用 {#7-save-and-apply}

  * 在两个节点上 `Save and apply` 配置和脚本。

![保存并应用 MariaDB 模块配置](https://safekit.eviden.com/wp-content/uploads/2025/05/08-module-save-1.png)

### 8. 验证配置是否成功 {#8-verify-successful-configuration}

  * 检查两个节点上的 `Success` ✅ 消息，然后单击 `Monitor modules`。
  * 如果某个节点上发生配置 `Failure` ❌，请打开该节点的▼手风琴，然后查看消息。请注意，您可以使用 SafeKit AI 🤖 寻求帮助。

⚠️ 在 Linux 上，如果复制的目录是挂载点，您可能会在此步骤中收到错误。🛠️ [请参阅 SK-0030 来解决此问题](https://github.com/FR-LES-SAFEKIT-DEV/safekit-packages/releases/download/v8.2/SafeKit_8.2_Knowledge_Base.pdf)。

![检查 MariaDB 模块配置是否成功](https://safekit.eviden.com/wp-content/uploads/2025/05/09-module-save-check-1.png)

### 9. 使用最新数据启动节点 {#9-start-the-node-with-up-to-date-data}

  * 如果节点 1 拥有最新的复制目录，请选择它，然后⋯ `Force start` ▶ `As primary`。

当节点 2 启动时，所有数据将从节点 1 复制到节点 2。

⚠️ 如果您做出错误的选择，则有可能在两个节点上同步过时的数据。

⚠️ 还假定 MariaDB 程序在节点 1 上已停止，以便 SafeKit 安装复制机制，然后在 `start_prim` 脚本中启动应用程序。

⚠️ 首次启动后，请使用 `Start`：SafeKit 会保留最新的服务器。首次启动或在特殊操作期间，请使用“启动 `As primary`。

![将包含最新数据的 MariaDB 节点启动为主要节点](https://safekit.eviden.com/wp-content/uploads/2024/03/10-monitoring-mirror-stop-stop-prim.png)

### 10. 等待过渡到 ALONE ”（绿色） {#10-wait-for-the-transition-to-alone-green}

  * 节点 1 应达到 ALONE（绿色）状态，这意味着虚拟 IP 已设置，并且 `start_prim` 脚本已在节点 1 上执行。

⚠️ 如果未达到 ALONE（绿色）或未启动应用程序，请使用节点 1 的[模块日志 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/24-module-log-script.png)分析原因。

  * 单击 `node1` 的 🔍**日志**图标，打开模块日志，查找错误消息，例如检查器检测到错误并停止模块。
  * 点击日志中的 `start_prim`：脚本的输出消息显示在右侧，可以检测到错误，例如服务启动不正确。
  * 使用 SafeKit AI 🤖 获取日志消息方面的帮助。

⚠️ 如果集群处于 `WAIT (red) not uptodate, STOP (red) not uptodate` 状态，请停止 WAIT 节点并[强制将其启动为主节点 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/10-monitoring-mirror-stop-stop-prim.png)。

![第一个 MariaDB 节点以主节点身份启动，并成为 ALONE](https://safekit.eviden.com/wp-content/uploads/2024/03/12-monitoring-alone-stop.png)

### 11. 启动节点 2 {#11-start-node-2}

  * ⋯使用其上下文菜单 `Start` 节点 2。
  * 等待 SECOND（绿色）状态。

ℹ️ 节点 2 在重新同步复制目录（从节点 1 复制到节点 2）时保持 SECOND（橙色）状态。

  * 这可能需要一段时间，具体取决于复制目录中要重新同步的文件大小和网络带宽。
  * 要查看复制进度，请参阅节点 2 的[模块日志 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/27-module-log-reintegration.png)和[复制资源 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/26-replication-resources-reintegration.png)使用 SafeKit AI 🤖 协助处理日志消息。

![启动 MariaDB 节点 2](https://safekit.eviden.com/wp-content/uploads/2024/03/13-monitoring-alone-stop-start.png)

### 12. 验证集群是否正常运行 {#12-verify-that-the-cluster-is-operational}

  * 检查集群是否为绿色/绿色，MariaDB 服务是否在 PRIM 节点上运行，而不是在 SECOND 节点上运行。

在此状态下，只有文件内部的更改会实时复制。

⚠️ 作为 MariaDB 服务客户端的组件必须配置虚拟 IP 地址。配置可以使用 DNS 名称（如果已创建 DNS 名称并将其与虚拟 IP 地址相关联）。

![MariaDB 节点 2 为 SECOND（绿色）](https://safekit.eviden.com/wp-content/uploads/2024/03/14-monitoring-prim-second.png)

### 13. 测试 {#13-testing}

  * 向下滚动 PRIM 节点的上下文菜单，然后单击 `Stop`。
  * 验证 SECOND 节点上是否存在故障转移，该节点应变为 ALONE（绿色）。
  * 在 Windows 上使用 Microsoft 管理控制台 (MMC)，或在 Linux 上使用命令行，检查 MariaDB 服务的故障转移（在 `stop_prim` 脚本中停止节点 1 上的服务，并在 `start_prim` 脚本中启动节点 2 上的服务）。

⚠️ 如果 node2 未达到 ALONE（绿色）状态或应用程序未启动，请使用节点 2 的[模块日志 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/38-module-log-script-second.png)分析原因。

  * 单击 `node2` 的 🔍**日志**图标以打开模块日志，并查找错误消息，例如检测器检测到错误并停止模块。
  * 点击日志中的 `start_prim`：脚本的输出消息显示在右侧，可以检测到错误，例如服务启动不正确。
  * 使用 SafeKit AI 🤖 获取日志消息方面的帮助。

⚠️ 

  * 如果一切正常，请在 node1 上启动，这将从 node2 重新同步复制的目录。
  * 如果出现问题，请停止 node2 并[强制节点 1 启动为主节点 🖼️](https://safekit.eviden.com/wp-content/uploads/2024/03/10-monitoring-mirror-stop-stop-prim.png)，它将使用停止时本地健康的数据重新启动。

ℹ️ 在[SafeKit 在线培训](https://safekit.eviden.com/zh-hans/resources/safekit-on-line-training/)中查找更多详细信息和视频。

![停止 PRIM 服务器上的 MariaDB 模块](https://safekit.eviden.com/wp-content/uploads/2024/03/16-monitoring-prim-second-stop.png)

### 14. 支持 {#14-support}

  * 如需获取支持，请为每个节点拍摄 2 个 SafeKit `Snapshots`（2 个 .zip 文件）。

ℹ️ [有关支持的更多信息，请点击此处](https://safekit.eviden.com/zh-hans/resources/safekit-support/)。

![截取 MariaDB 快照以获得支持](https://safekit.eviden.com/wp-content/uploads/2024/03/30-snapshots-mirror.png)

 

## SafeKit mirror 解决方案演示 {#demonstration-of-the-safekit-mirror-solution}

### SafeKit 视频：应用级集群 (8:47) {#demo-mirror-ha-cluster}

在本视频中，您将了解 SafeKit 如何在没有 SAN 复杂性的情况下实现 **mirror HA 集群**。虽然此演示使用 Microsoft SQL Server，但该解决方案对其他数据库和应用程序也同样适用。 

### 章节 {#chapters}

  1. 🎬 [两个带有 SQL Server 节点](https://www.youtube.com/watch?v=mGwEguDnnH0&t=0s) (0:32)
  2. 🎬 [配置集群和 mirror.safe 模块](https://www.youtube.com/watch?v=mGwEguDnnH0&t=32s) (3:58)
  3. 🎬 [启动和测试 SQL 复制、迁移、崩溃时故障转移](https://www.youtube.com/watch?v=mGwEguDnnH0&t=270s) (4:17)

### 分步实施 {#step-by-step-implementation}

  * 🛠️ [阅读在 Windows 上设置 mirror 集群的指南](https://safekit.eviden.com/zh-hans/quick-install/safekit-quick-installation-guide-for-a-new-windows-application-with-real-time-replication-and-failover/)
  * 🛠️ [阅读在 Linux 上设置 mirror 集群的指南](https://safekit.eviden.com/zh-hans/quick-install/safekit-quick-installation-guide-for-a-new-linux-application-with-real-time-replication-and-failover/)

