文章 姚 鑫 · 四月 21, 2023 5m read

第三十五章 配置镜像 - 配置与镜像的应用程序服务器连接

当使用镜像的自动部署方法中描述的方法之一部署具有镜像数据服务器的分布式缓存集群时,所有需要的配置都是自动的。当使用Management Portal 部署集群时,必须在将数据服务器添加到每个应用程序服务器时指明该数据服务器是一个镜像。当数据服务器通过任何方法配置为镜像连接时,每个应用程序服务器定期从主服务器收集有关镜像的更新信息,自动检测故障转移并根据需要将连接重定向到新的主服务器。

有关使用自动部署方法配置镜像数据服务器的信息,请参阅镜像的自动部署方法中列出的文档。要手动将镜像配置为分布式缓存集群中的数据服务器,请使用以下过程:

  1. 准备故障转移成员和任何 DR 异步成员作为数据服务器,如可扩展性指南同一章中的准备数据服务器中所述。所有这些实例都必须配置相同的最大应用程序服务器设置。
  2. 在每个应用程序服务器上,执行以下操作:
    • 按照可扩展性指南同一章中配置应用程序服务器中的描述添加数据服务器,确保选中镜像连接复选框并为主机 DNS 名称或 IP 地址输入当前主要故障转移成员的 DNS 名称或 地址,而不是镜像的虚拟 地址 ()(如果有的话)。
    • 创建一个或多个名称空间映射到数据服务器上的一个或多个远程数据库,如配置应用程序服务器中所述。
0
0 172
文章 姚 鑫 · 四月 20, 2023 3m read

第三十四章 配置镜像 - 在镜像中激活日志加密

在镜像中激活日志加密

在镜像成员上激活日志加密时,请记住三个重要的注意事项:

  • 不能在故障转移成员和 DR 异步上激活日志文件加密,除非镜像需要 TLS 安全性。

  • 如果在主服务器上激活了日志加密,则必须在属于镜像的任何报告异步上激活它。此外,最佳做法是在备份和任何 DR 异步上激活日志加密,以便在发生故障转移或 升级时日志加密将继续有效。

  • 故障转移成员和 DR 异步之间的日志加密要求在一个成员上用于日志加密的加密密钥在其他成员上被激活(尽管不一定用于日志加密),以便根据需要用于解密收到的日志文件。具体来说,

    • 如果在主服务器上激活了日志加密,则必须在备份和所有 DR 异步上加载并激活用于主服务器上的日志加密的密钥。 (如果未激活主日志加密密钥的报告异步更改为 DR 异步,则会生成警告;异步可以暂时保持与镜像的连接,但下次需要时将无法重新连接,除非密钥已被激活。)
    • 如果在备份或 异步上激活了日志加密,则必须在主数据库上加载并激活用于该成员的日志加密的密钥。

    同样,作为准备故障转移或升级的最佳实践,如果任何成员(主要、备份)或可能成为(DR 异步)故障转移成员指定了日志加密密钥,则应将此密钥加载到所有其他此类成员上,包括多个 异步。

0
0 182
文章 姚 鑫 · 四月 17, 2023 6m read

第三十一章 配置镜像 - 删除镜像成员时删除镜像数据库属性

删除镜像成员时删除镜像数据库属性

当从镜像中删除成员时,始终可以选择从属于该镜像的镜像数据库中删除镜像属性。后果如下:

  • 如果保留镜像属性并稍后将 IRIS 实例恢复到镜像,数据库将自动添加到镜像,但必须先激活它们,然后才能赶上并同步(请参阅激活和赶上镜像数据库)。

但是,如果保留镜像属性,则除非先执行以下操作之一,否则无法删除该数据库:

将成员恢复到从中删除它的同一个镜像。 (如果该成员是主故障转移成员,这不是一个选项,因为镜像不再存在。)然后可以从镜像中删除一个或多个数据库(请参阅从镜像中删除镜像数据库)并在以下情况下删除它们你希望。

  • 使用 ^MIRROR 例程的删除一个或多个镜像数据库选项(请参阅使用 ^MIRROR 例程)从一个或多个数据库中删除镜像属性,然后根据需要删除它们。

  • 如果删除镜像属性,数据库将永久取消镜像并且可以像任何本地数据库一样使用;如果要在实例作为镜像成员重新加入后将它们返回到镜像,则必须使用首次将它们作为现有数据库添加到镜像的过程。

当从备份或异步成员上的镜像中删除单个数据库时,镜像数据库属性会自动删除。

编辑或删除异步成员

  1. 导航到“编辑异步配置”页面(系统管理 > 配置 > 镜像设置 > 编辑异步)。
0
0 215
文章 姚 鑫 · 四月 16, 2023 5m read

第三十章 配置镜像 - 激活和更新镜像数据库

激活和更新镜像数据库

可以使用镜像监视器在备份故障转移成员和异步成员上激活和/或赶上镜像数据库。

如将现有数据库添加到镜像中所述,新添加的包含数据的镜像数据库可以自动与主数据库同步,方法是使用 ^DBREST 例程从主故障转移成员恢复备份。如果使用其他方法,则必须激活并赶上备份故障转移成员和异步成员。

要激活和赶上镜像数据库,请在备份故障转移成员和异步成员上执行以下操作:

  1. 导航到镜像监控页面(系统操作 > 镜像监控)。
  2. 如有必要,在异步成员上,单击包含您要对其执行操作的数据库的镜像的详细信息链接。
  3. 镜像数据库列表显示每个数据库的状态,如使用镜像监视器中所述。在其他可能的状态中,Needs Catchup 表示需要 Catchup 操作,Needs Activation 表示同时需要 和 操作, 表示 操作当前正在数据库上运行。
  4. 选择“激活”或“同步”链接以对单个数据库执行操作,或从“选择操作”下拉列表中选择“激活”或“同步”,然后单击“开始”以打开一个对话框,您可以在其中从所有数据库列表中选择多个数据库该操作适合立即应用于所有这些操作。执行此操作时, 和 任务将在后台运行。当选择 Catchup 时,会显示 和 状态的数据库; 和
0
0 240
文章 姚 鑫 · 四月 11, 2023 4m read

第二十五章 配置镜像 - 创建镜像并配置第一个故障转移成员

创建镜像并配置第一个故障转移成员

以下过程描述了如何创建镜像和配置第一个故障转移成员。

  1. 在第一个故障转移成员上,导航到管理门户的创建镜像页面(系统管理 > 配置 > 镜像设置 > 创建镜像)并单击创建镜像。如果该选项未激活,则镜像尚未启用;首先点击Enable Mirror Service,然后选中Service Enabled复选框并点击,然后选择选项。
  2. 在创建镜像页面,在镜像信息部分输入以下信息:

a. 镜像名称 - 输入镜像的名称。

注意:有效名称必须是 1 到 个字母数字字符;小写字母会自动替换为大写字母。

b. 需要 SSL/TLS — 通过选中或清除复选框来指定是否要对镜像内的所有通信要求 安全(如建议的那样)。如果选择需要 SSL/TLS 并且该实例还没有用于镜像的有效 配置,则在完成该过程之前,必须单击设置 链接并在此成员上创建所需的 配置。 (创建 配置的说明包含在为镜像创建和编辑 配置中。)还可以取消创建镜像过程并导航到 配置页面(系统管理 > 安全 > 配置)。如果实例确实具有用于镜像的有效 配置,则链接改为编辑 SSL/TLS,并且在选择需要

0
0 217
文章 姚 鑫 · 四月 8, 2023 3m read

第二十二章 配置镜像 - 镜像配置指导原则

为了提供强大、经济的HA解决方案,镜像设计为可适应各种系统配置和体系结构。但是,建议遵循以下一般配置准则:

  • IRIS实例和平台兼容性-在确定要添加到镜像的系统之前,请务必查看IRIS实例兼容性和成员字符顺序注意事项中描述的要求。
  • 故障转移成员相等-假定镜像中的两个故障转移成员相等。无法将首选项配置为主角色,并且根据情况需要将主角色和备份角色互换。因此,最佳做法是使故障转移系统主机彼此尽可能相似,特别是使用相似的计算资源进行配置;即,两个系统上的CPU和内存配置以及磁盘配置应具有可比性。
  • 主实例配置和安全设置-主故障转移成员上的用户、角色、命名空间和映射(包括全局映射和包映射)等元素的配置不会被其他镜像成员上的镜像复制。因此,必须在备份故障切换成员或灾难恢复异步成员上手动复制所有设置,并根据需要进行更新,才能使备份故障切换成员或灾难恢复异步成员有效地从主成员接管。
  • 未镜像数据-仅在主故障转移成员上的镜像数据库中的数据在备份故障转移成员和异步成员上复制和同步。因此,使备份或灾难恢复异步有效地接管主服务器所需的任何文件(例如,包括与SQL网关和Web服务器配置相关的文件)都必须手动复制到这些成员,并根据需要进行更新。

注:镜像数据库的文件流(默认情况下位于数据库目录的子目录中)不会被镜像。

0
0 127
文章 姚 鑫 · 四月 7, 2023 3m read

第二十一章 配置镜像

本章提供了镜像和镜像成员的设置、配置和管理的相关信息和步骤。

镜像的自动部署方法

本章提供了使用管理门户创建镜像和将现有实例配置为成员的过程。 IRIS Data平台还提供了几种自动部署镜像的方法,这些镜像在部署后完全可运行。

使用云管理器(ICM)部署镜像

ISC建议使用InterSystems Cloud Manager(ICM)部署 IRIS,包括镜像配置。通过将纯文本声明性配置文件、简单的命令行界面和Docker Containers中的 IRIS部署相结合,ICM为提供了一种简单、直观的方式来配置云或虚拟基础架构,并在该基础架构上部署所需的InterSystems IRIS体系结构以及其他服务。ICM可以显著简化部署流程,尤其是对于复杂的水平群集配置。

除了部署独立的镜像实例外,ICM还可以部署具有镜像数据服务器的分布式缓存集群和具有镜像数据节点的分片集群。

使用 Kubernetes运算符(IKO)部署镜像

KUBERNETES一个开源的编排引擎,用于自动部署、扩展和管理容器化的工作负载和服务。可以定义想要部署的容器化服务以及希望它们遵循的策略;Kubernetes以尽可能高效的方式透明地提供所需的资源,在部署偏离规范时修复或恢复部署,并自动或按需扩展。

0
0 219
文章 姚 鑫 · 四月 6, 2023 3m read

第二十章 镜像架构和规划 - 限制对备份故障转移成员的访问

虽然托管镜像备份故障转移成员的系统可能有未使用的资源或容量,或者可能希望在其镜像数据库上运行只读查询,但 推荐的最佳实践是将主机专用于其角色,仅作为备份镜像成员。对备份的任何镜像相关或非镜像使用都会产生以下影响:

  • 如果备份性能的降低导致其确认从主服务器接收到日志数据的速度变慢,则访问主服务器上镜像数据库的应用程序用户可能会遇到性能下降的情况。任何必须等待主节点确认的应用程序交互,包括那些涉及显式日志同步以及同步提交事务和 ECP 活动的应用程序交互,都可能以这种方式受到影响。
  • 如果备份的确认延迟到足以防止它在 QoS 超时内发生,则主要撤销备份的活动状态,导致自动故障转移变得更加困难或不可能,具体取决于主要中断的性质。
  • 如果确实发生自动故障转移,备份现在支持其现有资源使用和主要用户应用程序资源使用。如果可能的话,备份主机必须有能力处理这两种负载。

出于这些原因,如果必须从主成员卸载用户活动,则应使用异步成员而不是备份成员。

在单个主机上安装多个镜像成员

构成镜像的 实例通常安装在单独的物理或虚拟主机上,但这不是必需的。假设系统的容量足以处理所涉及的资源负载而不会导致性能下降,则可以在同一台主机上安装多个镜像成员,包括多个镜像的整体;个人情况将决定这是否可行,以及可以共存多少个镜像或镜像成员。

0
0 153
文章 姚 鑫 · 四月 5, 2023 5m read

第十九章 镜像架构和规划 - 规划镜像虚拟 IP (VIP)

规划镜像虚拟 IP (VIP)

如内置机制中所述,当镜像 VIP 正在使用且成员成为主要成员时,VIP 将重新分配给新的主要成员,这允许所有外部客户端和连接与单个静态 IP 交互,而不管哪个故障转移成员是目前担任小学。

在故障转移过程中,遇到网络断开连接的连接客户端能够在备份成为主要后重新连接。如果配置了 ,备份只有在成功分配 后才能完成故障转移;否则,故障转移过程将中止,镜像需要手动干预。

在准备设置镜像 时,请考虑以下事项:

  • 要使用镜像 VIP,两个故障转移成员必须配置在同一子网中,并且 VIP 必须与在每个系统上选择的网络接口属于同一子网。 异步成员必须在同一子网上有一个网络接口,以便在作为灾难恢复的一部分提升为主时能够获取 ;如果不是这种情况,则必须将替代的重定向机制纳入灾难恢复程序。
  • 当故障转移和/或 异步成员位于不同的数据中心时,可以跨数据中心扩展 子网以继续支持相同的 地址。这需要两个站点之间的第 层连接,并且可能不足以满足所有情况;请参阅双数据中心的镜像配置和地理上分离的灾难恢复中的讨论。
  • 应该在你的 服务器上为 分配一个 名称,以供连接的客户端使用。
  • 如果 正在使用中并且从
0
0 177
文章 姚 鑫 · 四月 4, 2023 3m read

第十八章 镜像架构和规划 - 在故障转移或灾难恢复后重定向应用程序连接

当备份故障转移成员通过自动故障转移成为主要成员或作为灾难恢复的一部分手动将 DR 异步提升为主要成员时,需要某种机制将应用程序连接重定向到新的主要成员。有许多方法可以实现这一点,本章将详细讨论其中的一些方法。一种解决方案可能适用于自动故障转移和 DR 提升,或者可以组合解决方案,例如用于自动故障转移的镜像 VIP 和用于 提升的 更新。

内置机制

镜像配置中可以包含以下机制,如示例镜像体系结构和网络配置中所示,以解决应用程序重定向问题:

  • 镜像虚拟 IP 地址 (VIP)

当镜像 正在使用时(请参阅规划镜像虚拟 IP ())并且成员成为主成员时, 会自动绑定到新主成员上的本地接口,从而允许外部客户端继续连接到相同的 地址.使用 要求有资格成为主要成员的成员位于同一子网上,如示例镜像体系结构和网络配置中所述。

注意:通常, 不能在云环境中使用;有关在云中进行镜像时的备选方案和其他注意事项的信息,请参阅在云环境中进行镜像。

  • 分布式缓存集群

在镜像分布式缓存集群中(请参阅配置与镜像的应用程序服务器连接),故障转移成员配置为数据服务器,所有应用程序服务器连接都专门配置为镜像连接。故障转移后,应用程序服务器重新建立与新的主要故障转移成员的连接,并继续处理正在进行的工作负载。

0
0 239
文章 姚 鑫 · 三月 27, 2023 4m read

第十章 镜像架构和规划 - 仲裁器中断的影响

仲裁器中断的影响

仲裁器的中断对镜像的可用性没有直接影响。但是,如果在恢复仲裁器之前发生了自动故障转移以响应主中断场景中的主中断场景56,则备份无法自动接管。

备份中断的影响

在主应用程序可以恢复处理之前,某些应用程序可能会经历短暂的暂停(大约是 QoS 超时)。如果没有配置仲裁器,或者如果仲裁器在备份中断之前变得不可用,则经历的暂停可能会稍微长一些(大约是 超时的三倍)。如果在恢复备份之前发生主要中断,则结果是整个镜像中断。

主要和仲裁联合中断的影响

这种情况的后果在响应主要中断情况的自动故障转移中进行了介绍。简而言之,如果备份可以联系主的 ISCAgent,它就会接管;如果不是,结果是整个镜像中断,手动干预强制备份成为主要可能是一个合适的选择。

联合备份和仲裁中断的影响

如果备份和仲裁器同时(或几乎同时)变得不可用,则主节点将无限期地保持在故障状态,因为它假定它是孤立的,因此备份节点可能已成为主要节点。结果是整个镜像中断。当备份再次可用时,它会联系主服务器,然后主服务器恢复作为主服务器运行。或者,可以通过手动干预强制恢复主节点。如果备份和仲裁程序依次失败,则在备份中断的影响中描述的短暂暂停之后,主要继续作为主要运行,因为它知道备份不可能成为主要。

主要和备份联合中断的影响

这种组合的结果总是镜像完全中断。

0
0 169
文章 姚 鑫 · 三月 26, 2023 4m read

第九章 镜像架构和规划 - 备份处于活动状态时自动进行故障转移

备份处于活动状态时自动进行故障转移

当备份处于活动状态时,如果它可以确认故障转移的第二个条件——即主服务器未作为主服务器运行并且在没有人为干预的情况下无法继续运行,则它有资格作为主服务器接管。备份可以通过以下三种方式之一执行此操作:

  • 通过接收来自主要请求它接管的通信。

这发生在主实例正常关闭期间或当主实例检测到它已挂起时。一旦主要发送此消息,它就不能再充当主要并且活动备份可以安全地接管。如果前一个主节点挂起,新的主节点会迫使它关闭。

  • 通过从仲裁器接收到它已与主节点失去联系的信息。

主要和备用 IRIS 实例与仲裁器保持持续联系,仲裁器会在与其他故障转移成员的联系中断或恢复时更新每个实例。当一个网络事件同时将主节点与备份节点和仲裁节点隔离开来时,它就会无限期地进入故障状态。因此,如果一个活动的备份失去了与主的联系,并从仲裁器得知它也失去了与主的联系,备份可以安全地接管,因为主必须要么已经失败,要么被隔离并处于故障状态,因此不能再充当主要角色。恢复连接时,如果以前的主节点挂起,新的主节点会强制关闭它。

  • 通过从主系统的 ISCAgent 接收主实例已关闭或挂起的信息。
0
0 160
文章 姚 鑫 · 三月 25, 2023 4m read

第八章 镜像架构和规划 - 镜像同步

镜像同步

如数据完整性指南的“日志”一章所述,日志文件包含自上次备份以来对 IRIS 实例中的数据库所做更改的时间顺序记录。在镜像中,记录对主数据库所做更改的日志数据成为对备份和异步数据库副本进行相同更改的基础。因此,镜像数据库始终记录在主数据库上,而在备份和 DR 异步上,它们始终是只读的,以防止来自其他来源的更新。通常它们在报告异步时也是只读的。

当镜像数据库上记录Global更新操作(主要是 和 Kill 操作)的数据写入主数据库的日志时,日志记录将传输到其他镜像成员。一旦在备份或异步成员上收到日志记录,记录在其中的操作就会在该成员的数据库上执行。这个过程被称为。

日志记录从主服务器到备份的传输是同步的,主服务器在关键点等待备份的确认。这使故障转移成员保持紧密同步并使备份处于活动状态,如备份状态和自动故障转移中详细描述的那样。相反,异步从主服务器异步接收日志数据。因此,异步镜像成员有时可能比主成员落后一些日志记录。

注意:当 IRIS 实例成为镜像的成员时,会发生以下日志更改以支持镜像:

  • 当 IRIS 实例成为镜像中的主要故障转移成员时,会发生以下变化:
    • 日志切换被触发,以 MIRROR-mirror_name 为前缀的新日志文件,例如 MIRROR-MIR21-20180921.001
0
0 264
文章 姚 鑫 · 三月 24, 2023 2m read

第七章 镜像架构和规划 - 报告异步

报告异步

报告异步镜像成员出于数据挖掘和商业智能等目的维护所选数据库的只读或读写副本,并且不能提升为故障转移成员。一个报告异步最多可以属于 10 个镜像,允许它作为一个全面的企业范围数据仓库,将来自不同位置的相关数据库集合在一起。

连接到多个镜像的单个报告异步成员

单一故障转移镜像配置

镜像还可以由单个故障转移成员和一个或多个异步成员组成。此配置不提供高可用性,但可以解决其他需求。例如,具有单个故障转移成员、至少一个 DR 异步成员和一定数量的报告异步成员的镜像可以在支持数据收集和仓储的同时提供数据安全和灾难恢复。为了提供高可用性,故障转移成员可以位于操作系统级别的故障转移集群或其他一些高可用性配置中。

具有多个异步成员的单个故障转移成员

ISCAgent

称为 ISCAgent 的进程在每个镜像成员的主机系统上运行,为镜像成员之间提供额外的通信方式。最重要的是,ISCAgent 提供了一种方法,当两个成员之间的正常通信中断时,一个故障转移成员可以通过该方法获取有关另一个成员的信息。 ISCAgent 可以向已关闭或断开连接的镜像成员发送数据。代理还参与故障转移决策;例如,与主实例和仲裁器都失去联系的备份可以联系主实例的 (假设主实例的主机系统仍在运行)以确认主实例在接管之前确实已关闭。

会自动随

0
0 183
文章 姚 鑫 · 三月 23, 2023 3m read

第六章 镜像架构和规划 - 镜像组件

镜像是物理上独立的 IRIS实例的逻辑分组,同时维护生产数据库的精确副本,以便在提供对数据库的访问的实例变得不可用时,另一个实例可以接管。镜像可以通过自动故障转移提供高可用性,在自动故障转移中,提供数据库访问的 IRIS实例(或其主机系统)发生故障会导致另一个实例立即自动接管。

本章介绍镜像的组件和机制,并解释镜像规划中的问题,包括网络要求、故障切换后重定向应用程序连接以及在虚拟环境中进行镜像。

镜像组件

托管配置为镜像一部分的 IRIS 实例的系统称为镜像成员。 ( 实例本身有时称为镜像成员。)镜像成员有两种类型:

  • 故障转移镜像成员
  • 异步镜像成员

两个附加组件支持从一个故障转移成员到另一个的自动故障转移:

  • ISCAgent

  • Arbiter

故障转移镜像成员

要启用自动故障转移,镜像必须包含两个故障转移成员,物理上独立的系统,每个系统托管一个 IRIS 实例。在任何给定时间,一个故障转移实例充当主要实例,为应用程序提供对镜像中数据库的访问权限,而另一个实例充当备份实例,维护这些数据库的同步副本,以备接管为主要实例。当主要的 IRIS 实例变得不可用时,备份将接管,提供对数据库的不间断访问,而没有数据丢失的风险。有关自动故障转移过程的详细信息,请参阅自动故障转移机制。

故障转移成员使用多个镜像成员网络地址通过多个通信通道相互通信。

0
0 154
文章 姚 鑫 · 三月 23, 2023 24m read

简介

什么是Query

Query是一种查询方法,用于查找满足条件的数据,将结果以数据集的形式展现出来。

Query类别

  • SQL Query,使用类 %SQLQuerySQL SELECT 语句。
  • 自定义,使用类 和自定义逻辑生成查询数据。

说明:在讲通用解决方案之前,我们先了解一下的基础和基础使用,有助于理解实现原理。如果读者了解Query基本使用,可跳过此章节,直接阅读“现状”。

基本使用

SQL Query基本使用

Query QueryPersonByName(name As %String = "") As %SQLQuery(COMPILEMODE = "IMMEDIATE", CONTAINID = 1, ROWSPEC = "id:%Integer:ID,MT_Name:%String:name,age:%String,no:%String", SELECTMODE = "RUNTIME") [ SqlName = QueryPersonByName, SqlProc ]
{
	SELECT top 10 ID, MT_Age, MT_Name, MT_No
	FROM M_T.Person
	WHERE (MT_Name %STARTSWITH :name)
	ORDER BY id
}
0
0 386
文章 姚 鑫 · 三月 22, 2023 2m read

第五章 镜像概述

传统的高可用性和数据复制解决方案通常需要在基础架构、部署、配置、软件许可和规划方面进行大量资本投资。 IRIS® 数据库镜像旨在为两个 IRIS 实例之间快速、可靠、强大的自动故障转移提供经济的解决方案,从而提供有效的企业高可用性解决方案。

依赖共享资源(如共享磁盘)的传统可用性解决方案通常容易出现与该共享资源相关的单点故障。镜像通过在主镜像成员和备份镜像成员上维护独立的资源来降低这种风险。此外,通过利用逻辑数据复制,镜像避免了与基于 SAN 的复制等物理复制技术相关的风险,包括无序更新和结转损坏。

将分布式缓存与镜像相结合可提供更高级别的可用性;具有镜像数据服务器的分布式缓存集群中的应用程序服务器将镜像故障转移视为数据服务器重启,允许处理在新的主服务器上继续不间断,这大大减少了工作流和用户中断。在不同的数据中心配置两个故障转移镜像成员可提供额外的冗余并防止发生灾难性事件。

除了为计划外停机时间提供可用性解决方案外,镜像还可以灵活地将计划内停机时间(例如,IRIS 配置更改、硬件或操作系统升级等)纳入特定 系统,而不会影响整体服务水平组织的协议 (SLA)。

最后,除了故障转移成员之外,镜像还可以包含异步成员,这些成员可以配置为从整个企业的多个镜像接收更新。

0
0 168
文章 姚 鑫 · 三月 21, 2023 3m read

第四章 高可用性的故障转移策略

IRIS 镜像

具有自动故障转移功能的 IRIS 数据库镜像为计划内和计划外停机提供了一种有效且经济的高可用性解决方案。镜像依赖于数据复制而不是共享存储,避免了由于存储故障导致的重大服务中断。

IRIS 镜像由两个物理上独立的 IRIS 系统组成,称为故障转移成员。每个故障转移成员在镜像中维护每个镜像数据库的副本;应用程序更新在主要故障转移成员上进行,而备份故障转移成员的数据库通过应用来自主要的日志文件与主要保持同步。

镜像自动将主要角色分配给两个故障转移成员之一,而另一个故障转移成员自动成为备份系统。当主要的 IRIS 实例出现故障或不可用时,备份会自动快速接管并成为主要实例。

第三个系统称为仲裁器,它与故障转移成员保持持续联系,为他们提供在无法直接通信时安全地做出故障转移决策所需的上下文。在每个故障转移系统主机上运行的代理进程,称为 ,也有助于自动故障转移逻辑。备份无法接管,除非它可以确认主服务器确实已关闭或不可用,并且不会尝试作为主服务器运行。在仲裁器和 ISCAgent 之间,这几乎可以在所有中断情况下完成。

或者,当使用混合虚拟化和镜像 HA 方法(如本节稍后讨论的那样)时,虚拟化平台可以重新启动发生故障的主机系统,从而允许镜像确定以前的主实例的状态并根据需要继续进行。

0
0 233
文章 姚 鑫 · 三月 20, 2023 4m read

第三章 高可用性的故障转移策略

随着组织越来越依赖基于网络的应用程序,使数据库尽可能可用和可靠变得至关重要。本指南解释了 IRIS 数据平台如何提供高度可用和可靠的数据存储,并描述了从中断和故障中快速恢复并同时保持数据完整性的策略。

IRIS® 数据平台提供多种高可用性 (HA) 解决方案,并可轻松与操作系统供应商提供的所有常见 HA 配置集成。

维持系统高可用性的主要机制称为故障转移。在这种方法下,一个失败的主系统被一个备份系统取代;也就是说,处理故障转移到备份系统。许多 HA 配置还提供灾难恢复机制,即在故障转移机制无法保持系统可用时恢复系统可用性。

IRIS 实例故障转移有五种通用方法以实现 (包括不实施 HA 策略)。本章概述了这些方法,而本指南的其余部分提供了实施这些方法的过程。

重要的是要记住,在除镜像之外的所有这些方法中,单个存储故障都可能是灾难性的。因此,磁盘冗余、数据完整性指南“日志记录”一章中描述的数据库日志记录以及数据完整性指南“备份和还原”一章中描述的良好备份过程必须始终是您的一部分方法,因为它们对于减轻磁盘故障的后果至关重要。

如果需要详细信息来帮助制定适合环境的故障转移和灾难恢复策略。

无故障转移策略

数据库的完整性始终受到数据完整性指南中描述的功能的保护,免受生产系统故障的影响。

0
0 264
文章 姚 鑫 · 三月 19, 2023 4m read

第二章 高可用性解决方案 - 虚拟化平台高可用

虚拟化平台高可用

虚拟化平台通常提供 HA 功能,通常会监控来宾操作系统及其运行的硬件的状态。在任何一个失败时,虚拟化平台都会根据需要在备用硬件上自动重启失败的虚拟机。当 IRIS 实例重新启动时,它会自动执行正常的启动恢复,保持结构和逻辑的完整性,就好像 IRIS 在物理服务器上重新启动一样。

虚拟环境中的故障转移

虚拟化 具有内置于虚拟化平台基础架构中的优势,因此只需很少的配置工作,在某些情况下根本不需要。此外,虚拟化平台允许有计划地将虚拟机重新定位到备用硬件以进行维护,从而实现物理服务器的升级,例如,无需任何停机时间。

镜像

具有自动故障转移功能的 IRIS 镜像采用不同的 HA 方法,依靠完全独立系统之间的逻辑数据复制来避免共享存储的单点故障风险,并确保生产可以立即故障转移到几乎所有的备用 实例故障场景——系统、存储和网络。

在 镜像中,一个称为主要故障转移成员的 实例提供对生产数据库的访问。单独主机上的另一个实例,称为备份故障转移成员,与主实例同步通信,检索其日志记录,确认收到它们,并将它们应用于同一数据库的自己的副本。通过这种方式,主备都始终知道备份是否有来自主的最新日志文件,因此可以将其数据库与主上的数据库精确同步。

0
0 299
文章 姚 鑫 · 三月 18, 2023 3m read

第一章 高可用性解决方案 - HA 解决方案中的问题

高可用性(HA)指的是使系统或应用程序在长时间内保持正常运行并可供用户使用的目标,从而最大限度地减少计划内和计划外停机时间。 IRIS提供自己的HA解决方案,并轻松与操作系统提供商提供的常见解决方案集成。

维护高系统可用性的主要机制称为故障转移。在这种方法下,故障的主系统由备用系统代替;也就是说,生产故障转移到备份系统。许多配置还提供了灾难恢复()机制,即当HA机制无法保持系统可用时,恢复系统可用性。

本页简要讨论可与基于 的应用程序一起使用的一般 策略,然后涵盖 IRIS HA 解决方案中的问题,提供 解决方案功能比较,并讨论使用分布式缓存和故障转移策略

解决方案中的问题

在为 系统评估潜在的 HA 解决方案时,请牢记以下两个重要问题:

  • 共享存储

架构的一个重要原则是避免单点故障。大多数 解决方案依赖于共享存储组件;这代表了这样的风险;如果存储出现故障,就不可能保持系统可用。存储级冗余可以在一定程度上减轻这种风险,但也可以延续某些类型的数据损坏。

另一方面, 镜像在完全独立的主存储和备份存储之间使用逻辑数据复制,完全消除了单点故障问题并避免了大多数类型的损坏。

  • IRIS 升级

许多 解决方案允许在不中断整体可用性的情况下对给定组件系统进行计划内停机。然而,大多数都需要大量的停机时间来升级生产 实例。

0
0 224
文章 姚 鑫 · 二月 12, 2023 2m read

第七十四章 使用 irisstat 实用程序监控 IRIS - 查看 irisstat 输出

查看 irisstat 输出

可以立即查看 irisstat 数据(通过终端)或重定向到输出文件以供以后分析。查看数据的最常见方法是:

注意:当 IRIS 被强制关闭时,irisstat 会运行以捕获系统的当前状态。作为紧急关闭程序的一部分,输出被添加到消息日志中。

irisstat 文本文件

irisstat 报告可以重定向到文件而不是终端,如果想收集一组 工具(诊断报告任务、IRISHung 脚本、 实用程序)未提供的一组 选项,这可能很有用或者如果在运行这些工具时遇到问题。

诊断报告任务

诊断报告任务会创建一个包含基本信息和高级信息的 HTML 日志文件,InterSystems 全球响应中心 (WRC) 可以使用该文件来解决系统问题。

注意:诊断报告任务不能在挂起的系统上运行;如果系统挂起,请参阅本附录中的 脚本。

IRISHung 脚本

脚本是一个操作系统工具,用于在 IRIS 实例挂起时收集系统数据。位于 目录中的脚本名称是特定于平台的,如下表中指定:

Platform Script name
Microsoft Windows IRISHung.cmd
UNIX®/Linux

脚本应以管理员权限运行。与诊断报告任务一样, 脚本运行 irisstat

0
0 229
文章 姚 鑫 · 二月 11, 2023 7m read

第七十三章 使用 irisstat 实用程序监控 IRIS - 使用选项运行 irisstat

使用选项运行 irisstat

不带选项运行 irisstat 会生成基本报告。通常,运行 irisstat 以获得特定信息。要指定目标信息,可以包括或排除如下选项:

  • 要包含(打开)一个选项,请指定一个标志,后跟一个 1(或其他级别)。
  • 要排除(关闭)一个选项,请指定一个标志后跟一个 0

例如,要在 irisstat 报告中包含全局文件表 () 部分,请使用 -m1 选项:

C:\iris-install-dir\Bin\irisstat -m1

或者,要关闭默认的基本选项,请使用 选项:

C:\iris-install-dir\bin\irisstat -a0

许多选项具有比 和 更详细的级别。这些附加级别被描述为具有“位”,它们以十进制显示为 的幂,并控制有关选项的特定类型的信息。例如,显示 表的基本 选项用 打开;但是,使用 添加 列,使用 添加 列。等等。这些位可以组合;例如,如果要查看 位和 位显示的信息,请指定 。要请求所有位,请使用 ,如下所示:

此外,可以在单个 命令中组合多个标志。例如,以下命令关闭基本选项,然后打开全局模块标志和 表的所有位,以及 的详细级别:

当开始诊断一个复杂的问题时,

0
0 204
文章 姚 鑫 · 二月 9, 2023 5m read

第七十一章 使用 REST API 监控 IRIS - 活动量指标

活动量指标

  • iris_interop_avg_processing_time {id="namespace",hosttype="HostType",host="host",production="production",messagetype="MessageType"} - 在生产和命名空间中处理指定 MessageType 的消息所需的平均时间长度(以秒为单位)。 HostType 可以是服务、操作或参与者(即进程)。 是用户定义的;如果未指定 ,则返回。如果输出已配置为包括主机标签,则单独提供每个主机的消息处理时间。
  • - 指定 的消息在生产和命名空间中由 HostType 的主机处理时在队列中花费的平均持续时间(以秒为单位)。 可以是服务、操作或参与者(即进程)。 是用户定义的;如果未指定 ,则返回“”。如果输出已配置为包括主机标签,则单独提供每个主机的排队时间。
  • - 在最近的采样间隔内,生产和命名空间中的主机类型主机处理的指定 的消息数。 HostType 可以是服务、操作或参与者(即进程)。 是用户定义的;如果未指定 ,则返回“”。如果输出已配置为包括主机标签,则单独提供每个主机处理的消息数。
  • - 生产和命名空间中的主机每秒处理的指定 的消息数,在最近的采样间隔内取平均值。
0
0 165
文章 姚 鑫 · 二月 8, 2023 3m read

# 第七十章 使用 REST API 监控 IRIS - 互操作性指标

除了上一节中描述的指标外, IRIS 实例还可以记录有关活动互操作性产品的指标,并将它们包含在 `/metrics` 端点的输出中。默认情况下禁用这些互操作性指标的记录。要启用它,必须为要监控的每个互操作性产品执行以下步骤:

1. 为运行要监控的生产的 `IRIS` 实例打开一个终端会话。如有必要,通过执行以下命令切换到与生产关联的命名空间:

```
set $namespace = "[interopNS]"
```
其中 `[interopNS]` 是命名空间名称。

2. 在终端中,执行以下命令以启用当前命名空间内活动生产的指标收集(`SAM` 指的是系统警报和监控, 监控解决方案):

```
do ##class(Ens.Util.Statistics).EnableSAMForNamespace()
```

注意:如果为命名空间启用了指标记录但相应的生产未激活,则 `/metrics` 端点不会返回任何指标。

`Ens.Util.Statistics` 类提供了自定义 `/metrics` 端点输出的方法。例如,调用方法 `DisableSAMIncludeHostLabel` 将为整个生产提供聚合指标,而不是为每个主机单独提供它们。

完成此步骤后可用的指标在下面的基本互操作性指标表中进行了描述。

3.

0
0 183
文章 姚 鑫 · 二月 7, 2023 8m read

# 第六十九章 使用 REST API 监控 IRIS

每个 `IRIS®` 数据平台实例都包含一个提供实例统计信息的 `REST` 接口。 `REST API` 提供了一种从多台运行 `IRIS` 的机器收集信息的方法,使能够详细监控构成您的应用程序的所有实例。

本附录描述了 `/api/monitor` 服务提供的指标。这些指标与开源监控和警报工具 `Prometheus` 兼容。配置 `Prometheus` 以抓取多个连接的 `IRIS` 实例提供了整个系统的内聚视图,从而更容易评估系统是否正常有效地运行。

注意:有关创建和使用 REST 接口的介绍,请参阅第一眼:使用 产品开发 `Rest` 接口。

# /api/monitor Service

`/api/monitor` 服务提供有关运行它的  `IRIS` 实例的信息。默认情况下,`/api/monitor Web` 应用程序启用了“未经身份验证”的访问权限。有关为此服务设置身份验证的信息,请参阅创建 `REST` 服务中的保护 REST 服务一章。

此 API 具有以下两个端点:

- `/metrics Endpoint`,,它返回所有实例指标,并且可以配置为返回特定的应用程序指标。
- `/alerts Endpoint`,它返回自上次抓取端点以来发布的所有系统警报。

0
0 359
文章 姚 鑫 · 二月 6, 2023 3m read

第六十八章 使用 Web 服务监控 IRIS - 监控网络客户端

SYS.WSMon.Client 类和相关类是一个 IRIS 网络服务客户端,可以在同一个 IRIS 实例或另一个 实例中调用 网络服务的方法。

此 Web 客户端类使用以下 参数:

其中,服务器是运行 IRIS 的服务器,端口是 IRIS Web 服务服务器使用的端口。

以与使用其他 IRIS 网络服务客户端相同的方式使用此网络客户端:

  1. 创建 Web 客户端类的实例。
  2. 如果需要,设置其 Location 属性。

如果要使用的 服务与客户端位于不同的计算机上,或者如果它使用 以外的端口,则这是必需的。

  1. 如果需要,设置其他属性。
  2. 调用网络方法。
  3. 检查 web 方法返回的值。

详细信息取决于调用的 Web 方法;请参阅“监视 Web 服务的 Web 方法”部分并查看返回类型的类参考。

下面显示了一个示例终端会话:

USER>set $namespace = "%SYS"
 
%SYS>set client=##class(SYS.WSMon.Client).%New()
 
%SYS>set client.Location="http://localhost:57799/csp/sys/SYS.WSMon.Service.cls"
 
%SYS>set myroutinestats=client.GetRoutine()
 
%SYS>write myroutinestats.RtnCallsLocal
19411581
%SYS>write myroutinestats.RtnCallsRemote
0
%SYS>write myroutinestats.RtnCommands
432764817
%SYS>
0
0 162
文章 姚 鑫 · 二月 5, 2023 3m read

第六十七章 使用 Web 服务监控 IRIS - 监控 Web 服务的 URL

对于给定的 IRIS 实例,日志监控 Web 服务可从以下 URL 获得:

其中,服务器是运行 的服务器,端口是 IRIS Web 服务服务器使用的端口。例如:

http://localhost:52773/csp/sys/SYS.WSMon.Service.cls

同样,此 服务的 WSDL 可从以下 获得:

http://server:port/csp/sys/SYS.WSMon.Service.cls?WSDL=1

监控 服务的 方法

类中的 提供以下 方法:

EnumBuffer()

在枚举所有缓冲区大小的统计信息中返回 的实例。对于此实例,数据集使用类中 的 类查询。

在中返回 的实例,该枚举该实例的所有数据库。对于此实例,数据集在类中使用 的 List() 类查询。

在中返回 的实例,该枚举所有系统资源占用的统计信息。对于此实例,数据集使用类中 的 类查询。

取消对给定网络服务的订阅;参见 。

订阅给定的网络服务以接收有关此 实例中的事件的信息。这可以是自己的 服务,也可以是作为示例提供的 服务。如果创建自己的 服务,则它必须遵循 服务的 。

对于位置,指定调用 服务的 方法所需的 。对于 ,可以指定如下位置:

其中 是运行 的服务器, 是 使用的端口。

0
0 135
文章 姚 鑫 · 二月 4, 2023 2m read

第六十六章 使用 Web 服务监控 IRIS - IRIS 对 WS-Monitoring 的支持概述

本附录介绍并简要描述了如何使用 IRIS® 数据平台支持 WS-Management 规范,它使能够通过 SOAP 远程监控 实例。

IRIS 对 WS-Monitoring 的支持概述

按照 规范, 包提供了一个 Web 服务,可以使用它来远程监控 实例。它在功能上类似于 接口(请参阅本指南的“使用 监控 ”附录),但使用内置的 网络服务支持。

对 的支持包括以下元素:

  • 提供返回有关 IRIS 实例信息的方法的日志监控 Web 服务()。
  • 一个 服务客户端(),可以调用此监控 Web 服务或另一个 实例的监控 服务中的方法。

可以创建自己的 客户端,而不是使用此 客户端,可能使用第三方技术。

此 Web 服务和客户端使用几个启用 XML 的类来表示监视信息。

这些类包括 ,它可以表示事件。

可以接收和处理事件的示例事件接收器 服务()。通过 调用,可以订阅此示例事件接收器服务,以便它接收来自任何监控 服务的事件。

可以创建自己的示例,而不是使用此示例,可能使用第三方技术。

这些类仅在 命名空间中可用。

对于基本监控,可以在另一个实例中将日志监控 服务与 客户端一起使用。下图显示了一个监控客户端向目标实例请求监控数据。

0
0 235
文章 姚 鑫 · 二月 3, 2023 5m read

第六十五章 使用 SNMP 监控 IRIS - 用户定义的 SNMP 监视器类示例

本节介绍如何定义可通过 SNMP 查询的用户应用程序监视器类的示例。应用程序监视器仅包括 SNMP 数据中具有 %Monitor 数据类型的属性。

Example Sample Class

以下是此示例的示例类:

Class SNMP.Example Extends %Monitor.Adaptor
{

  /// Give the application a name. This allows you to group different 
  /// classes together under the same application level in the SNMP MIB.
  /// The default is the same as the Package name.
  Parameter APPLICATION = "MyApp";

  /// This groups a set of properties together at the "table" level of the
  /// SNMP MIB hierarchy. The default is the Class name.
  Parameter GROUPNAME = "MyTable";

  /// An integer metric counter
  Property Counter1 As %Monitor.Integer;

  /// Another integer metric counter
  Property Counter2 As %Monitor.Integer;

  /// A status indicator as a string data type
  Property Status As %Monitor.String;

  /// The method is REQUIRED. It is where the Application Monitor
  /// calls to collect data samples, which then get picked up by the
  /// ^SNMP server process when requested.
  Method GetSample() As %Status
  {
    set ..Counter1=$r(200)
    set ..Counter2=200+$r(100)
    set n=$r(4)
    set ..Status=$s(n=1:"Crashed",n=2:"Warning",n=3:"Error",1:"Normal")
    Quit $$$OK
  }

}
0
0 182