一、背景

1.1 我遇到了几个项目,他们的接口服务器崩溃了。 项目上希望尽快恢复服务器。他们的服务器在局域网上运行,他们不能使用git,服务器中有多个命名空间运行不同的服务,而且通常只有一台平台服务器。

1.2 如果消息中有字符流类型的属性,消息搜索页面不支持使用字符流属性进行过滤,因此很难找到想要的消息。

1.3 其他同事可能会更新服务器上的代码,代码中可能有些错误。

2.挑战

2.1 如何快速恢复?

2.2 如何支持字符流属性过滤消息?

2.3 如何在编译类时自动备份?

3.解决方案

1.编译时自动导出为备份文件

首先,我们定义一个名为“SYS.base”的类,它只有一个名为“ CLSBAKPATH”的参数,并设置它的值

1 1
0 9

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

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

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

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

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

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

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

0 0
0 8
文章
姚 鑫 · 三月 25 阅读大约需 4 分钟
第八章 镜像架构和规划 - 镜像同步

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

镜像同步

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

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

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

0 0
0 8
文章
姚 鑫 · 三月 24 阅读大约需 2 分钟
第七章 镜像架构和规划 - 报告异步

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

报告异步

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

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

单一故障转移镜像配置

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

0 0
0 9
文章
姚 鑫 · 三月 23 阅读大约需 3 分钟
第六章 镜像架构和规划 - 镜像组件

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

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

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

镜像组件

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

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

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

  • ISCAgent

  • Arbiter

0 0
0 7
文章
姚 鑫 · 三月 23 阅读大约需 24 分钟
中高级开发者教程:通用查询解决方案

简介

什么是Query

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

Query类别

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

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

2 0
0 12
文章
Michael Lei · 三月 21 阅读大约需 3 分钟
参赛文章选编- 使用嵌入式 Python教程

InterSystems IRIS 是一个高性能、可靠且可扩展的数据平台,用于为医疗保健、金融服务和其他行业构建和部署关键任务应用程序。它提供了广泛的功能,包括数据管理、集成、分析等。

IRIS 提供的功能之一是能够将 Python 代码嵌入到 ObjectScript 代码中。这意味着您可以在 IRIS 应用程序中使用 Python 库和函数,让您可以访问大量的工具和资源。在本文中,我们将了解如何在 InterSystems IRIS 中使用嵌入式 Python。

设置嵌入式 Python

在 IRIS 中开始使用嵌入式 Python 之前,您需要设置环境。这涉及安装 Python 解释器和配置 IRIS 以识别它。

第一步是安装 Python。您可以从官方网站 ( https://www.python.org/downloads/ ) 下载最新版本的 Python。安装 Python 后,需要将其添加到系统的 PATH 环境变量中。这允许 IRIS 找到 Python 解释器。

0 0
0 12
文章
姚 鑫 · 三月 21 阅读大约需 3 分钟
第四章 高可用性的故障转移策略

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

IRIS 镜像

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

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

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

0 0
0 6