搜索 SafeKit

SafeKit 的 PostgreSQL 高可用性:安装 postgresql.safe 模块以进行故障转移

PostgreSQL 高可用快速安装指南

本指南解释了如何设置 镜像簇 对于PostgreSQL使用SafeKit,确保自动故障转移和同步复制,无需共享存储。

如需帮助,您可以使用 SafeKit AI 🤖.

1. 概述

  • 架构: 使用双节点系统(主/辅助)。
  • 数据保护: 实现实时同步复制 零数据丢失 (RPO=0)。

2. 安装

  • 软件: 在两台服务器上安装 SafeKit 引擎。
  • 模块: 下载预先配置好的 postgresql.safe.safe 应用模块。

3. 配置

  • 网络控制台: 配置包含 PostgreSQL 文件的特定文件夹。
  • 监控: 开始监视和保护 PostgreSQL 应用程序。

SafeKit 高可用性限制

限制 / 要求原因与影响推荐替代方案
复制大小:数 TB故障后的重新同步时间 (步骤 3):
• 1 Gb/s 网络 ≈ 3 小时 / TB
• 10 Gb/s 网络 ≈ 1 小时 / TB (取决于磁盘写入性能)
• 使用外部共享存储 (更昂贵、更复杂)。
文件数量:< 1,000,000 个文件• 故障后的重新同步时间性能 (步骤 3)。
• 检查两个节点之间每个文件所需的时间。
• 将要复制的大量文件放在虚拟硬盘 / 虚拟机中。
• 在这种情况下,将仅复制和重新同步代表虚拟硬盘 / 虚拟文件的文件。
故障转移容量:≤ 32 个虚拟机 (VM)• 每个虚拟机在独立的镜像模块中运行。
• 在同一集群上运行的镜像模块最多 32 个。
• 使用外部共享存储和其他虚拟机集群解决方案 (更昂贵、更复杂)。
网络架构:远程站点之间的 LAN/VLAN 网络• 具有同一子网中 2 个节点的虚拟 IP 地址自动故障转移。
• 用于重新同步的良好带宽 (步骤 3)。
• 同步复制的低延迟:通常 < 5 ms RTT;更高值应根据应用程序的写入速率进行验证。
• 如果 2 个节点位于 2 个子网中,请使用虚拟 IP 地址负载均衡器 (SafeKit 支持,尤其是在云端)。
• 对于高延迟网络,请使用带有异步复制的备份解决方案。

SafeKit / PostgreSQL 解决方案概述

解决方案描述如下:💡最简单的 PostgreSQL 高可用性:2 节点同步复制和故障转移。

在 Windows 和 Linux 上安装 SafeKit / PostgreSQL 解决方案 (postgresql.safe)

先决条件

  • 您需要在 2 个节点(虚拟机或物理服务器)上安装 PostgreSQL。

Windows上的软件包安装

  • 下载并安装免费版本 SafeKit 于 2 Windows 节点。
    注意:免费版本包含 SafeKit 的所有功能。试用结束后,您可以激活永久许可证密钥,而无需卸载软件包。
  • 完成软件包安装后,选择 Set console credentials and firewall rules now 并配置密码 admin SafeKit 控制台的用户。
    在所有节点上设置相同的密码。
  • 从防病毒扫描中排除 C:/safekit/ (默认安装目录)和 所有复制的文件夹 你要定义的。
    防病毒软件可能面临检测挑战 SafeKit 由于其与操作系统的紧密集成、虚拟IP机制、关键服务的实时复制和重启。

下载 SafeKit (Windows) >

Windows上的模块安装

  • 下载postgresql.safe模块。该模块是免费的。它包含文件 userconfig.xml 和重新启动脚本。
  • 放 postgresql.safe 下 C:/safekit/Application_Modules/generic.

下载 postgresql.safe (Windows) >

Linux上的软件包安装

  • 安装免费版本 SafeKit 于 2 Linux 节点。注:免费试用包含所有 SafeKit 特点。试用结束后,您可以激活永久许可证密钥,而无需卸载软件包。
  • 下载safekit_xx.bin包后,执行解压rpm和safekitinstall脚本,然后执行 safekitinstall 脚本
  • 回答 是的 防火墙自动配置
  • 设置 Web 控制台的密码和默认用户 admin. 在所有节点上设置相同的密码。

下载 SafeKit (Linux) >

Linux上的模块安装

  • 下载postgresql.safe模块。
    该模块是免费的。它包含文件 userconfig.xml 和重新启动脚本。
  • 放 postgresql.safe 下 /opt/safekit/Application_Modules/generic/.

下载 postgresql.safe(Linux) >

SafeKit / PostgreSQL解决方案的逐步配置

先决条件

  • PostgreSQL 应用程序安装在 2 个节点上。
  • 总复制数据限制为几 TB — 除此之外,重新同步时间变得很重要。
  • 节点之间至少 1Gb/s 互连(建议使用 10Gb/s 以加快重新同步速度)。
  • IP 故障转移需要同一 LAN 或扩展 LAN (L2) 上的两个节点 — 不支持路由 L3 网络(🛠️ 云负载均衡器 除外)。

1.启动SafeKit控制台

  • 通过连接到 http://localhost:9010,在一个集群节点上的浏览器中启动 Web 控制台。
  • 输入 admin 作为用户名和安装期间定义的密码。

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

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

ℹ️ 要保护 Web 控制台,请参阅🛠️ 11\。用户指南中的保护 SafeKit Web 服务。

启动 SafeKit Web 控制台来配置 PostgreSQL 集群

2.配置节点地址

  • 输入节点IP地址,按Tab key检查连通性并填写节点名称。如果 node1 或 node2 为红色,请检查浏览器与两个节点的连接,并检查两个节点上的防火墙是否有 🛠️ troubleshooting。
  • 然后,单击“Save and apply”保存配置。
  • 检查两个节点上的 Success ✅ 消息。
  • 如果配置 Failure ❌ 发生在一个节点上,请打开该节点的 ▼ 折叠面板并查看消息。请注意,您可以使用 SafeKit AI 🤖 寻求帮助。

ℹ️ 如果需要,您可以添加一个新的 LAN and nodes(第一个 ➕)来创建第二个心跳和专用复制网络。

ℹ️如果点击Advanced configuration,则会显示cluster.xml文件。该文件由控制台自动填充并部署在节点上。

输入PostgreSQL集群的节点

3. 选择模块

  • 在New module中,单击postgresql.safe模块。

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

ℹ️ 控制台寻找 xxx.safe 在 Application_Modules/generic/ 连接节点上的目录(node1)如果您在安装过程中放置了一个模块。

选择PostgreSQL的模块

4. 配置模块

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

ℹ️如果点击Advanced configuration,则会显示userconfig.xml文件。该文件由控制台自动填充,并使用重新启动脚本部署在节点上。

ℹ️ 在云部署中,您不需要配置虚拟 IP 地址在 SafeKit。虚拟的 IP 由 🛠️ 管理 云负载均衡器级别。

ℹ️ 当您涂抹 SafeKit 配置,将 startup type 服务的数量自动设置为 Manual 在 Windows 服务。这可以确保服务不会在系统启动时自动启动,而是仅在模块本身启动时启动(这同样适用于 Linux)。

输入PostgreSQL模块设置

5. 编辑脚本(可选)

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

输入PostgreSQL模块设置

6.通讯加密(可选)

  • 保持节点之间的通信加密。

PostgreSQL模块的通信加密

7.保存并应用

  • Save and apply 两个节点上的配置和脚本。

保存并应用 PostgreSQL 模块配置

8.验证配置成功

  • 检查两个节点上的 Success ✅ 消息,然后单击 Monitor modules。
  • 如果配置 Failure ❌ 发生在一个节点上,请打开该节点的 ▼ 折叠面板并查看消息。请注意,您可以使用 SafeKit AI 🤖 寻求帮助。

⚠️在Linux上,如果复制的目录是挂载点,这一步可能会报错。🛠️解决问题见SK-0030。

检查PostgreSQL模块配置是否成功

9. 使用最新数据启动节点

  • 如果节点 1 具有最新的复制目录,请选择它并 ⋯ Force start ▶ As primary。

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

⚠️ 如果您做出错误的选择,您将面临在两个节点上同步过时数据的风险。

⚠️ 还假设 PostgreSQL 应用程序在节点 1 上停止,以便 SafeKit 安装复制机制,然后在 start_prim 脚本中启动该应用程序。

⚠️后续启动使用Start:SafeKit保留最新的服务器。首次启动或异常操作期间启动As primary是特殊启动。

使用最新数据作为主节点启动 PostgreSQL

10.等待过渡到ALONE(绿色)

  • 节点 1 应达到 ALONE(绿色)状态,这意味着虚拟 IP 已设置并且 start_prim 脚本已在节点 1 上执行。

⚠️如果未到达ALONE(绿色)或者应用未启动,请通过节点1的模块日志🖼️分析原因。

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

⚠️ 如果集群处于 WAIT (red) not uptodate, STOP (red) not uptodate 状态,则停止 WAIT 节点, 强制其作为主节点启动 🖼️。

第一个 PostgreSQL 节点作为主节点启动并成为 ALONE

11.启动节点2

  • ⋯ Start 节点 2 及其上下文菜单。
  • 等待 SECOND(绿色)状态。

ℹ️ 节点 2 保持 SECOND(橙色)状态,同时重新同步复制的目录(从节点 1 复制到节点 2)。

  • 这可能需要一段时间,具体取决于复制目录中要重新同步的文件大小和网络带宽。
  • 要查看复制进度,请查看节点 2 的 模块日志🖼️ 和 复制资源🖼️。使用 SafeKit AI 🤖 获取日志消息方面的帮助。

启动PostgreSQL节点2

12. 验证集群是否正常运行

  • 检查集群是否为绿色/绿色,其中 PostgreSQL 服务在 PRIM 节点上运行,而不在 SECOND 节点上运行。

在此状态下,仅实时复制文件内部的更改。

⚠️ 作为 PostgreSQL 服务客户端的组件必须配置虚拟 IP 地址。可以使用 DNS 名称完成配置(如果已创建 DNS 名称并与虚拟 IP 地址关联)。

PostgreSQL 节点 2 是 SECOND(绿色)

13. 测试

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

⚠️如果 ALONE (绿色)未达到 node2 或者如果应用程序未启动,请使用以下命令分析原因 模块日志🖼️ 节点 2 的。

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

⚠️

  • 如果一切正常,则启动 node1,这将重新同步 node2 的复制目录。
  • 如果出现问题,请停止 node2 和 强制启动作为主要🖼️ 的 node1,它将使用停止时的本地健康数据重新启动。

ℹ️ 在 SafeKit 在线培训 中查找更多详细信息和视频。

停止 PostgreSQL 模块上的 PRIM 服务器

14. 支持

  • 要获得支持,请获取 2 个 SafeKit Snapshots(2 个 .zip 文件),每个节点一个。

ℹ️ 有关支持的更多信息请参见此处 。

拍摄 PostgreSQL 快照以获取支持

SafeKit镜像解决方案演示

SafeKit 视频:应用程序级集群 (8:47)

在本视频中,了解 SafeKit 如何在没有 SAN 复杂性的情况下实现镜像 HA 集群。虽然此演示使用 Microsoft SQL Server,但该解决方案对于其他数据库和应用程序的工作方式相同。

章节

  1. 🎬 2 个带有 SQL Server 的节点 (0:32)
  2. 🎬 配置集群和mirror.safe模块 (3:58)
  3. 🎬 启动并测试 SQL 复制、迁移、崩溃时的故障转移 (4:17)

逐步实施

🔍 SafeKit 高可用性导航中心

探索 SafeKit:功能特性、技术视频、文档资料及免费试用

资源类型描述直接链接
关键特性为什么选择 SafeKit 实现简单且经济高效的高可用性?查看为何选择 SafeKit 实现高可用性
使用案例探索 SafeKit 如何确保关键基础设施的高可用性查看所有使用案例(OEM 软件、边缘服务器、SCADA,以及更多)
部署模式全合一 SANless HA:无共享软件集群查看 SafeKit 全合一 SANless HA
HA 策略SafeKit:基础设施(VM)级 vs. 应用程序级高可用性查看 SafeKit HA 与冗余:VM 级 vs. 应用级
技术规格SafeKit 集群的技术限制查看 SafeKit 高可用性限制条件
视频SafeKit:高可用性配置与故障转移演示查看 SafeKit 故障转移教程
架构SafeKit 镜像集群(Mirror Cluster)工作原理(实时复制与故障转移)查看 SafeKit 镜像集群:实时复制与故障转移
架构SafeKit 场集群(Farm Cluster)工作原理(网络负载均衡与故障转移)查看 SafeKit 场集群:网络负载均衡与故障转移
竞争优势对比:SafeKit vs. 传统高可用性(HA)集群查看 SafeKit vs. 传统 HA 集群对比
技术资源SafeKit 高可用性:文档、下载与试用查看 SafeKit HA 免费试用与技术文档
预配置解决方案SafeKit 应用模块库:开箱即用的 HA 解决方案查看 SafeKit 高可用性应用模块
SafeKit AI Chat SafeKit AI