文章 姚 鑫 · 五月 10, 2023 3m read

第五十四章 镜像中断程序

由于计划维护或计划外问题,镜像中一个或两个故障转移成员上的 IRIS 实例可能变得不可用。当故障转移成员的 IRIS 实例不可用时,其 ISCAgent 可能继续可用(如果主机系统仍在运行),也可能不可用(如主机系统关闭时)。本节提供了处理各种计划内和计划外中断场景的过程,这些场景涉及实例中断或一个或两个故障转移成员的全部中断。

如自动故障转移机制中所述,从主要故障转移成员到备份故障转移成员的安全和成功故障转移有两个要求:

  • 确认主实例确实已关闭,并且没有被临时网络问题隔离。
  • 确认备份具有来自主数据库的最新日志数据,因为它在主数据库发生故障时处于活动状态(请参阅镜像同步)或因为它已被手动捕获(请参阅主数据库的计划外中断而没有自动故障转移)。

在阅读和使用本材料时,可能需要参考自动故障转移规则来查看管理自动故障转移的规则。

有关使用镜像监视器确定备份故障转移成员是否处于活动状态或 DR 异步是否被赶上的信息,请参阅镜像成员日志传输和取消日志状态和监控镜像。

本章涵盖以下过程:

  • 备份故障转移成员的维护
  • 主要故障转移成员的维护
  • 在故障转移成员维护期间避免不必要的故障转移
  • 镜像中的系统间 iris 实例升级

计划外停电程序

0
0 139
文章 Meng Cao · 五月 10, 2023 1m read

今天从官网下载了IRISHealth-2023.1.0.229.0-lnxrh9x64版本的数据库安装包,在RHEL9.0上进行安装配置测试,遇到一个问题,趁热记录下来。

测试环境及软件版本:

操作系统——Red Hat Enterprise Linux release 9.0 (Plow)

数据库——IRISHealth-2023.1.0.229.0-lnxrh9x64

测试创建镜像时,配置好虚拟IP,点击保存。

保存后发现数据库没有变成主成员状态,一直是等待的状态,如下图所示:

这时查看控制台日志发现有大量报错,如下图所示:

从控制台日志看出,此时矛头指向了virtualIP.sh,经过查找发现这个脚本位置在安装目录下的bin目录中。

这里只是创建了MIRROR的配置,然后出现了问题,大概可以猜到可能是添加VIP的方法有什么问题,开启脚本的DEBUG,测试运行添加VIP的方法。

果然,发现了一处报错,如下图所示:

打开脚本文件,查看第588行代码。

研究发现RHEL9.0中,ID=`id | grep uid= | awk -F"=" '{print $2}' | awk -F"(" '{print $1}'`,$ID返回是空,不是数字,所以报错了,修改脚本,注释掉其中六行代码,并关闭DEBUG,如下:

保存脚本后,再次执行添加IP方法测试,IP可以正常添加。PS:不要忘记把测试添加的IP移除掉。

0
1 404
文章 Nicky Zhu · 五月 9, 2023 5m read

在上一篇文章中,我们看到了如何捕获位于我们服务器上一个文件夹中的DICOM类型的文件,以及如何将它们发送到PACS软件(在我们的案例中是ORTHANC开源解决方案)进行存储和咨询。那么,在这篇文章中,我们要处理的是相反的动作。

在我们的例子中,我们将配置我们的IRIS for Health Prodcution,以接收从我们的PACS通过TCP/IP发送的图像。要做到这一点,我们必须包括一个标准EnsLib.DICOM.Service.TCP类的业务服务,它将允许我们配置接收端。让我们来看看这个配置:

如您所见,我们已经声明了将监听的端口,通过该端口将接收从 PACS 发送的图像。我们还配置了本地 AET (Application Entity Title,应用实体名称)(IRIS) 和将向我们发送 DICOM (ORTHANC) 的 PACS,请记住这些字段是强制性的,并且将用于检查发送和接收 DICOM 消息的有效性。不要忘记必须从 DICOM 设置菜单配置和关联两个 AET:

正如你所看到的,我们已经配置了从IRIS到ORTHANC(前一篇文章的案例)和从ORTHANC到IRIS(本文中的案例)的信息发送。确认你已经为这两个关联上下文配置了你在两个系统中发送和接收的DICOM图像类型的演示上下文。

1
0 328
文章 姚 鑫 · 五月 9, 2023 2m read

第五十三章 管理镜像 - Production自动启动如何在镜像环境中工作

当镜像系统启动时(此时还没有成员成为主故障转移成员):

  1. IRIS 不会启动任何访问镜像数据的生产,即使在 ^Ens.AutoStart 中指定了生产。如果成员成为主实例,则这些产品将在那时开始。
  2. IRIS 确定实例上是否存在不访问镜像数据的命名空间。如前所述, 建议只在镜像成员上安装镜像产品。但是,如果安装了任何带有非镜像数据库的产品, IRIS 将启动 ^Ens.AutoStart 中指定的产品。 (此逻辑确保如果在镜像成员上安装了非镜像命名空间,它会在 IRIS 启动时启动。)

稍后,当该成员成为主要故障转移成员时, IRIS 会找到引用镜像数据的名称空间,以便它可以在这些名称空间中启动生产。如果遵循 的建议,则在实例成为主镜像成员之前,不应运行任何生产访问镜像数据。 IRIS 在开始生产之前首先检查生产是否已经在运行,特别是:

  1. IRIS 通过计算在命名空间中作为 _Ensemble 用户运行的作业来确定生产是否已经在运行。如果有两个以上的此类作业,表明生产已经在运行, IRIS 会在消息日志中记录警告,并且不会尝试开始生产。
  2. 如果正如预期的那样,生产没有运行, IRIS 会自动启动 ^Ens.AutoStart 中指定的生产。

医疗保健产品的镜像注意事项

0
0 155
文章 Claire Zheng · 五月 9, 2023 1m read

2023年4月,InterSystems亚太区总经理老卢(Luciano Brustia)回到了阔别三年多的北京,针对一些热门问题分享了自己的观点:北京在疫情前后有什么不同?InterSystems是如何进行本土化创新服务中国市场的?与其他亚太国家相比,中国医疗信息化发展有什么特色?医疗信息化未来的发展方向和趋势是什么?

0
0 163
文章 姚 鑫 · 五月 8, 2023 3m read

第五十二章 管理镜像 - 使用^DATABASE例程重新创建现有镜像数据库

使用^DATABASE例程重新创建现有镜像数据库

^DATABASE 例程的 10) Recreate a database 选项使可以在不更改数据库名称或大小的情况下清除现有数据库中的数据。 (有关例程的信息,请参阅 ^DATABASE。)可以将此选项用于镜像数据库,但必须在出现数据库的每个镜像成员上使用它,并且顺序与使用创建数据库选项的顺序相同创建一个新的镜像数据库——首先在主数据库上,然后是备份数据库,然后是数据库作为镜像一部分的任何异步数据库。

注意:如果使用 10) 重新创建数据库选项在主数据库上重新创建数据库,则必须对备份和镜像中的任何 DR 异步操作重复该操作;如果不这样做,数据库可能会在发生故障转移或灾难恢复时变得过时。强烈建议也对报告异步重复重新创建操作。

挂载/卸载镜像数据库

可以在任一故障转移成员上安装/卸载镜像数据库。但是,如果在备份故障转移成员上卸载,数据库将保持“陈旧”状态,直到重新安装,之后镜像会尝试自动赶上数据库。如果所需的日志文件在主要故障转移成员上可用,自动更新应该会成功,但如果主要成员上的任何所需日志文件已被清除,则必须从主要成员上的最近备份还原数据库。

将镜像数据库复制到非镜像系统

可以将镜像数据库复制到非镜像系统,并通过执行以下操作在该系统上以读写方式挂载它:

0
0 138
文章 姚 鑫 · 五月 7, 2023 4m read

第五十一章 管理镜像 - 镜像的数据库注意事项

镜像的数据库注意事项

本节提供配置和管理镜像数据库时要考虑的信息:

IRIS 实例兼容性

镜像中的 IRIS 实例必须以多种方式兼容,如下所示:

  1. 镜像中的所有 IRIS 实例必须:
  • 使用相同的字符宽度(8 位或 Unicode;请参阅安装指南“准备安装”一章中的字符宽度设置)。
  • 使用相同的语言环境(请参阅系统管理指南的“配置 IRIS”一章中的使用管理门户的 NLS 设置页面)。

注意:这些要求的一个例外是使用基于 ISO 8859 Latin-1 字符集的区域设置的 8 位实例与使用相应宽字符区域设置的 Unicode 实例兼容。例如,使用 enu8 语言环境的 8 位主实例与使用 enuw 语言环境的 Unicode 备份实例兼容。但是,使用 heb8 语言环境的 8 位主实例与使用 hebw 语言环境的 Unicode 备份实例不兼容,因为这些语言环境不基于 ISO 8859 Latin-1

0
0 139
文章 姚 鑫 · 五月 6, 2023 4m read

第五十章 管理镜像 - 在报告异步上使用 Dejournal 过滤器

在报告异步上使用 Dejournal 过滤器

仅在报告异步上,可以在给定镜像上设置用户定义的 dejournal 过滤器,让为每个日志记录执行自己的代码以确定哪些记录应用于该镜像中的读写数据库。定义过滤器后,可以在任意数量的镜像上设置它,并且可以随时设置、更改和删除过滤器。

重要提示:此功能仅适用于高度专业化的情况。应仔细考虑替代方案。为了控制将哪些全局变量复制到镜像成员,到非镜像数据库的全局映射提供了一种更简单、轻量级的解决方案。对于监控应用程序数据库的更新,在应用程序级别构建的解决方案通常更加灵活。

dejournal 过滤器允许报告异步跳过从主要接收的日志文件中的某些记录的 dejournaling。但是,这仅适用于读写数据库——最初以读写报告异步方式添加到镜像中的数据库,或者自数据库以只读方式添加到镜像后已清除 FailoverDB 标志的数据库。 (有关 FailoverDB 标志和镜像数据库在报告异步时的装载状态的详细说明,请参阅清除报告异步镜像成员上的 FailoverDB 标志。)如果在数据库上设置了 FailoverDB 标志,这意味着该数据库被装载为读取- 只是,dejournal 过滤器代码仍然执行,但所有记录总是在该数据库上 dejournaled,无论过滤器代码返回什么。

0
0 220
文章 姚 鑫 · 五月 5, 2023 6m read

第四十九章 管理镜像 - 停止备份和异步成员的镜像

停止备份和异步成员的镜像

可以暂时停止在备份或异步成员上进行镜像。例如,可能希望在短时间内停止备份成员上的镜像以进行维护或重新配置,或者在主数据库维护期间停止镜像,并且可能暂时停止报告异步成员上的镜像以减少网络使用。为此,请执行以下操作:

  1. 导航到要停止镜像的成员的“系统操作”>“镜像监控”页面
  2. 如果该成员是备份故障转移成员,请单击停止在此成员上镜像按钮。
  3. 如果该成员是异步成员,请单击希望异步停止镜像的镜像所在行中的“在此成员上停止镜像”链接。 (停止一个镜像的镜像不会影响报告异步所属的其他镜像。)

该操作需要几秒钟。当刷新镜像监视器时,“在此成员上停止镜像”将替换为“在此成员上开始镜像”,可以使用它来恢复镜像。

重要提示:当停止对某个成员进行镜像时,镜像将保持停止状态,直到如前所述再次明确启动它。镜像的重新初始化或成员的重新启动都不会在成员上启动镜像。

注意:还可以使用镜像 SYS.Mirror.StopMirror()SYS.Mirror.StartMirror()API 方法或 ^MIRROR 例程(请参阅使用 ^MIRROR 例程)来执行这些操作任务。

管理数据库取消日志记录

0
0 171
文章 Jingwei Wang · 五月 5, 2023 3m read

WIN SQL是大多数用户使用的普通编辑器。但是我们不能使用winsql下载大量数据。所以我写了一个教程如何连接一个新的基于 Java 的编辑器,叫做 Squirrel SQL,它可以很容易地下载或导出 excel 或任何其他格式的数据。我还包括一个 Java JCBC 连接程序来连接 IRIS 数据库,尤其是镜像/故障转移服务器。

基于 SQL Java 的编辑器导出大量数据和用于 IRIS 连接的 Java JDBC 程序

基于 SQL Java 的编辑器导出大量数据

WinSql 是通常用于从 Iris 数据库中提取数据的编辑器,但是,如果没有许可的 winsql,则无法导出大量数据。

解决方案是使用基于 java 的编辑器,称为 Squirrel SQL。这是一个基于 java 的编辑器,您可以在从 IRIS 数据库执行 fetch 从编辑器中导出大量数据。这是用 Java 构建的开源 SQL 客户端,它使用 JDBC 连接到 IRIS 数据库。

Squirrel SQL 的特点

  • Java 19 兼容性
  • 多个插入符/光标编辑
  • 全局首选项和新会话属性搜索
  • Saved Sessions 的多项改进(用于保存和恢复 Session 的所有 SQL 编辑器的特性)
  • 可配置的鼠标右键菜单
  • 重新设计的添加/编辑 JDBC 驱动程序对话框

安装 Squirrel SQL 的步骤

0
0 690
文章 Michael Lei · 五月 5, 2023 5m read

虽然在一项研究中,与医生的回答相比,一些专业人士确实更喜欢ChatGPT的回答,但凯洛格Kellog研究人员表示,现在判断人工智能是否真的能与医生的专业知识和对待病人的态度相媲美还为时过早。

根据本周发表在《美国医学会杂志》(JAMA Internal Medicine)上的一项研究,人工智能聊天机器人助手可以为患者的健康问题提供可以与医生回复相提并论的同等质量而且富有同情心的答复。

一组有执照的医护人员比较了医生和聊天机器人2022年10月在社交媒体论坛Reddit的r/AskDocs上公开提出的病人问题的回答,到了12月下旬他们被ChatGPT的答复征服了。

研究作者称:"聊天机器人的回答比医生的回答更受欢迎,而且在质量和同情心方面的评价都明显更高。“

加州大学圣地亚哥分校高通研究所的约翰-艾尔斯(John Ayers)撰写的《比较医生和人工智能聊天机器人对发布在公共社交媒体论坛上的患者问题的回应》的研究新闻很快被大量报道,其中充满了决定性的动词,如 "超越"、"击败 "或 "战胜",医生们上了头条,而ChatGPT成为了胜利者。

但其他生成型人工智能学者并不确定ChatGPT的同理心是否能取代医生的同理心。

医生是如何对待回答社交媒体上的问题的?

0
0 141
文章 姚 鑫 · 五月 4, 2023 4m read

第四十八章 管理镜像 - 将备份降级为 DR 异步

除了将 DR 异步提升为故障转移成员外,还可以执行相反的操作 — 将不是当前主要成员的故障转移成员降级为 DR 异步,这样镜像就只剩下一个故障转移镜像。当不希望故障转移成员响应镜像配置中的临时更改时,这在计划中断情况下很有用。例如:

  • 当关闭备份故障转移成员及其主机系统进行维护并且主系统上的 IRIS 实例重新启动(无论出于何种原因)时,它在重新启动后无法成为主系统,因为它无法联系备份实例或其 ISCAgent,因此无法确定它是否是最近的主节点。但是,如果在关闭备份之前将备份降级为 DR 异步,如备份故障转移成员的维护中所述,则可以避免这种风险,因为主要知道没有当前备份,因此它可以在重新启动后成为主要。然后,可以在重启后将降级的 DR 异步提升为备份(如将 DR 异步成员提升为故障转移成员中所述),
  • 当通过故意故障转移到 DR 异步来测试灾难恢复功能时,如计划故障转移到提升的 DR 异步中所述,并关闭主实例以触发故障转移,可能希望重新启动它以在没有它的情况下保持同步自动成为备份(因为在真正的灾难中它不太可能可用)。在这种情况下,可以在重新启动之前将其降级为异步 DR(通过其 ISCAgent),然后在准备好后将其提升为故障转移成员。
0
0 124
文章 Weiwei Gu · 五月 4, 2023 11m read

我们客户的一个共同需求是配置 HealthShare HealthConnect 和 IRIS的高可用性模式。

市场上的其他集成引擎通常被宣传为具有“高可用性”配置,但事实并非如此。通常,这些解决方案与外部数据库一起使用,因此,如果这些数据库未配置为高可用性,当发生数据库崩溃或与它的连接丢失时,整个集成工具将变得不可用。

对于 InterSystems 解决方案,这个问题不存在,因为数据库是工具本身的一部分和核心。 InterSystems 如何解决高可用性问题?深奥的配置会把我们拖入异化和疯狂的漩涡?不!在 InterSystems,我们倾听并处理了您的投诉(正如我们一直努力做的那样 ;)),并且我们已将镜像功能提供给所有用户和开发人员。

镜像

镜像如何工作?这个概念本身非常简单。如您所知,IRIS 和 HealthShare 都使用一个日志系统,该系统记录每个实例的数据库上的所有更新操作。这个日志系统是后来帮助我们在崩溃后恢复实例而不会丢失数据的系统。好吧,这些日志文件在镜像中配置的实例之间发送,允许并保持镜像中配置的实例永久更新。

架构

让我们简要解释一下在 Mirror 中配置的系统架构是什么样的:

0
0 488
文章 Hao Ma · 五月 4, 2023 6m read

当系统发生严重危机,一般错误,以及其他需要管理员关注的其他事件发生时, 管理员必须及时的收到系统发出的警告信息。

上篇文章中介绍了控制台日志。这是个文本文件,包含几乎所有的系统级别的错误信息,并且有严重级别的标识,那么使用工具来监控控制台日志文件,并给管理员发送通知是可行的方案吗?

当然。实际上,有些用户正是这样来管理Caceh'/IRIS的。他们有自己熟悉的监控工具,实时读取控制台日志,分析内容,并完成警告通知的发送。

这篇文章我来介绍的是Cache'/IRIS内置的处理警告的机制和配置方法。 通过把严重的错误和事件写入另一个文本文件alert.log,并配置邮件,SNMP, API接口发送通知,可以基本的实现caceh'/IRIS系统的警告通知工作。

Alerts.log

控制台日志中最严重的两个级别(级别2和3), 的记录会被写入另一个文本文件,名字是Alert.log。 默认存储于\installDir\mgr\路径。

在操作门户中“系统>系统日志>控制台日志” ,你会发现 Alerts.log的内容会以红色的字体显示在最上方。比如下图中有2个严重级别的Alert。

另外, 告警的条目数量会显示在系统仪表板的“错误和告警”模块中的‘严重告警’(Serious Alerts)栏。

0
0 545
文章 姚 鑫 · 五月 2, 2023 5m read

第四十六章 管理镜像 - 更新镜像成员网络地址

当必须更新一个或多个镜像成员(包括主要成员)的一个或多个网络地址时,如编辑或删除故障转移成员中所述,通常会在主要成员上更改此信息。当您保存更改时,主节点将它们传播到所有连接的镜像成员(并在它们重新连接时传播到断开连接的成员)。不能更改连接的备份或异步成员上的任何镜像成员网络地址,因为镜像成员必须从主成员接收所有此类信息。但是,一般情况下有一些例外情况,如下所示:

  • 由于 IRIS 实例的超级服务器端口是其常规配置的一部分,因此必须在本地进行更改。因此,镜像成员的超级服务器端口是唯一始终在成员本身上更新的镜像网络信息。要更改主服务器的超级服务器端口,请转到主服务器的“编辑镜像”页面,要更改备份的,请转到备份的“编辑镜像”页面,依此类推。

注意:当在“编辑网络地址”对话框中单击本地成员超级服务器端口的“编辑端口”链接时,将出现一个包含管理门户内存和启动页面的对话框,以便更改端口号。但是,不要直接转到此页面来更改镜像成员的超级服务器端口;始终使用“编辑镜像”或“编辑异步配置”页面和“编辑网络地址”对话框来进行此更改。

0
0 118
文章 姚 鑫 · 五月 1, 2023 5m read

第四十五章 管理镜像 - 使用 ^MIRROR 状态监视器

使用 ^MIRROR 状态监视器

^MIRROR 例程提供基于字符的镜像状态监视器。 ^MIRROR Status Monitor 选项显示镜像成员的状态,包括类型、状态、日志传输延迟和 dejournal 延迟(请参阅镜像成员日志传输和 Dejournaling 状态)。监视器可以在任何镜像成员上运行,但在故障转移成员上运行它会提供有关仲裁器配置和所有连接的异步成员的信息,而在异步成员上运行它则不会。

要启动状态监视器,请打开终端窗口,在 %SYS 命名空间中运行 ^MIRROR 例程(请参阅使用 ^MIRROR 例程),然后从镜像状态菜单中选择状态监视器。以下是在故障转移成员上运行时监视器的输出示例:

0
0 181
文章 姚 鑫 · 四月 30, 2023 3m read

第四十四章 管理镜像 - 传入日记传输率

传入日记传输率

在备份和异步成员的镜像成员状态列表下方,自上次刷新镜像监视器以来日志数据从主服务器到达的速率显示在该成员的传入日志传输率下。

首次加载镜像监控页面时,该区域显示文本---(将在刷新时显示)。下次刷新页面时,显示的信息取决于传入的日志数据是否压缩(参见镜像流量压缩),如下:

  • 如果日志数据未压缩,则传入日志数据速率以每秒千字节 (KB) 为单位提供,例如:
42345 KB/s (22s interval)
  • 如果传入的日志数据是压缩的,则显示包括传入的压缩数据速率、传入的日志(未压缩)数据速率以及后者与前者的比率,例如:
14288 KB/s network; 39687 KB/s journal; ratio 2.78:1 (143s interval)

镜像数据库状态

重要提示:在备份和 DR 异步成员上,镜像监视器页面上的丢失镜像数据库报告会提醒存在于主成员上但不存在于当前成员上的任何镜像数据库。这一点非常重要,因为备份或 DR 异步(如果提升为备份)如果没有完整的镜像数据库集,则无法在主中断的情况下成功接管。列出了每个缺失数据库的完整镜像数据库名称。如果没有缺失数据库,则不会显示缺失镜像数据库报告。

在所有成员上,“镜像监视器”页面上的“镜像数据库”列表显示列出的每个数据库的以下状态之一:

0
0 172
文章 姚 鑫 · 四月 29, 2023 4m read

第四十三章 管理镜像 - 镜像成员日记传输和取消日记状态

当一个 IRIS 实例属于一个镜像时,它的成员类型和状态、日志传输状态和 dejournaling 状态由镜像监视器和 ^MIRROR 例程状态监视器选项显示,如监视镜像中所述。

下表描述了可能显示的类型和状态;第一个显示特定成员类型的特定状态,而第二个中的状态适用于所有成员类型。

TypeStatusDescription
Failover`PrimaryCurrent primary.
FailoverBackupConnected to primary as backup.
FailoverIn Trouble作为主要的,由于与备份失去连接而处于故障状态;
Disaster RecoveryConnectedConnected to primary as async.
Read-Only ReportingConnected(as above)
Read-Write ReportingConnected(as above)
IndeterminateNot Initialized成员未初始化(尚未加载镜像配置)。
0
0 226
文章 Hao Ma · 四月 28, 2023 12m read

这里只讨论Caché和IRIS本身产生的错误和警告。用户在维护工作中通常会需要更多的内容, 那些我们在后面的 “系统性能指标”里介绍。另外, 关于集成平台的告警和日志, 也会在后面单独讨论。集成平台,也就是Ensemble Production,是IRIS系统上运行的应用,它的日志,告警,以及指标,测量,是单独的内容。

控制台日志

控制台日志是系统运行状态的日志文件,在IRIS里是messages.log, 在Cache‘里的名字是console.log,默认放在安装目录的mgr子目录。 用户也可以在管理门户的"系统操作>系统日志>控制台日志"里查看。以下是一个实际的例子:

0
0 416
文章 姚 鑫 · 四月 28, 2023 4m read

第四十二章 管理镜像 - 监控镜像

本章涵盖与管理和维护可操作的 IRIS 镜像相关的主题。

监控镜像

可以使用以下两种方法之一监视现有镜像的操作:

  • 管理门户的镜像监控页面
  • ^MIRROR 例程的状态监视器选项

这两种方法都显示有关镜像及其成员的操作状态和传入日志传输率的信息,以及有关镜像数据库状态的信息。此外,镜像监视器还允许您对镜像数据库执行多项操作。

监控镜像通信进程描述了在镜像成员上运行的镜像通信进程。

注意:基本镜像成员信息,包括指向镜像监视器的链接,也会出现在管理门户主页消息窗格中(请参阅系统管理指南的“使用管理门户”一章中的管理门户消息窗格。

许多与数据库和镜像相关的操作,例如安装或卸载数据库以及将数据库添加到镜像或从镜像中删除数据库,都记录在消息日志中。

使用镜像监视器

要显示镜像监视器,请导航到任何镜像成员上的“系统操作”>“镜像监视器”页面。

在故障转移成员上,镜像监视器包含以下按钮和部分:

0
0 155
文章 Lilian Huang · 四月 28, 2023 8m read

     

嗨社区,
在本文中,我将演示 InterSystems Embedded Python 的用法,我们将涵盖以下主题:

  • 1-嵌入式Python概述
  • 2-嵌入式Python的使用
    • 2.1- 从 ObjectScript 使用 Python 库
    • 2.2- 从 Python 调用 InterSystems API
    • 2.3- 一起使用 ObjectScript 和 Python
  • 3-使用python内置函数
  • 4-Python 模块/库
  • 5 个嵌入式 Python 用例
  • 6-总结

我们从概述开始
 

1-嵌入式Python概述

嵌入式 Python 是 InterSystems IRIS 数据平台的一项功能,它允许 Python 开发人员完全直接地访问 InterSystems IRIS 中的数据和功能。

InterSystems IRIS 带有一种名为 ObjectScript 的强大内置编程语言,可在数据平台内部进行解释、编译和运行。

0
0 336
文章 姚 鑫 · 四月 27, 2023 3m read

第四十一章 配置镜像 - 使用 ^ZMIRROR 例程

用户定义的 ^ZMIRROR 例程允许为特定镜像事件(例如故障转移成员成为主要成员)实现自己的自定义、特定于配置的逻辑和机制。

^ZMIRROR 例程包含以下入口点。如果它们被省略,它们都提供适当的默认值。

  • $$CanNodeStartToBecomePrimary^ZMIRROR() — 当实例确定
    • 另一个故障转移成员当前未充当主要成员,并且在没有手动干预的情况下无法成为主要成员。
    • 本地成员有资格成为主要成员,即将开始接管过程。

CanNodeStartToBecomePrimary 为逻辑提供了一个入口点,以阻止故障转移成员自动成为主节点(无论是在启动时还是作为备份连接时),以提供对故障转移的手动控制,并且不是大多数 ^ZMIRROR 例程的一部分。

CanNodeStartToBecomePrimary 返回 1 时,本地实例已完全初始化为主要故障转移成员,可以继续成为主要成员的过程:所有镜像数据库都是可读写的,ECP 会话已恢复或回滚,本地事务(如果有)来自以前的主要已回滚。由于不允许用户登录,超级服务器连接被阻止,ECP 仍处于恢复状态,因此没有完成新的工作。

如果此入口点返回 0 (False),则实例进入重试循环,在该循环中它继续每 30 秒调用 CanNodeStartToBecomePrimary,直到

0
0 159
文章 姚 鑫 · 四月 26, 2023 4m read

第四十章 配置镜像 - 配置服务质量 (QoS) 超时设置

服务质量超时(QoS 超时)设置通过定义时间范围(以毫秒为单位)在管理故障转移成员和仲裁器行为方面起着重要作用,镜像成员在采取行动之前等待另一个镜像成员的响应。 QoS 超时本身代表最大等待时间,而最小值是其二分之一。较大的 QoS 超时允许镜像容忍来自网络或主机的较长时间的无响应,而不会将其视为中断;降低 QoS 允许镜像更快地响应中断。 QoS超时具体影响以下几种情况:

  • 如果备份故障转移成员未在 QoS 超时定义的范围内确认从主要成员接收到数据,则主要成员断开备份并根据可能的备份中断采取行动。
  • 如果备份在 QoS 超时定义的范围内没有收到来自主服务器的消息,则备份将断开连接并根据主服务器可能中断的情况采取行动。
  • 如果仲裁器在 QoS 超时定义的范围内没有收到来自故障转移成员的响应,它认为它与该故障转移成员的连接丢失。
  • 如果在故障转移成员的主机上执行的操作导致主机在 QoS 超时定义的范围内的一段时间内完全无响应,则可能会导致不需要的故障转移或警报。在涉及备份或迁移等虚拟化平台操作时,这是一个特别值得关注的问题;有关详细信息,请参阅虚拟化环境中的镜像
0
0 173
文章 姚 鑫 · 四月 25, 2023 3m read

第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Linux 和 macOS 系统上为非根实例启动 ISCAgent

UNIX®/Linux 和 macOS 系统上为非根实例启动 ISCAgent

尽管 IRIS 通常以根用户身份安装,但在 UNIX®/LinuxmacOS 系统上,实例可能会被其他用户安装和运行。

非根实例的 ISCAgent 由安装用户在后台运行 ISCAgentUser 脚本启动,该脚本位于 IRISSYS 环境变量定义的目录中,例如:

nohup <IRISSYS_directory>/ISCAgentUser &

虽然可能无法将 ISCAgent 配置为在系统启动时自动启动,但如果可以实现,这仍然是首选。当镜像包含两个故障转移成员时,最佳做法是在系统启动后尽快启动代理,即使您不打算启动 IRIS;这有助于在某些情况下恢复,例如两个故障转移成员的计划外中断中描述的情况。

Microsoft Windows 系统上启动 ISCAgent

Microsoft Windows 系统上,按如下方式启动 ISCAgent 进程:

a. 在 Microsoft Windows 控制面板中,双击进入系统和安全菜单。

b. 在“系统和安全”中,双击“管理工具”菜单,然后从出现的子菜单中选择“服务”。

0
0 182
问题 water huang · 四月 23, 2023

我用%SQLGatewayConnection把别人给我的数据转为sql 写入mysql的时候,如果数据里面有 ascii 码为57659 这样的数据的时候,

ClassMethod Execute(sql, conn, Output msg) As%Status
{
    s$zt="Err"
    s msg=""
    k hstmt
    set sc=conn.AllocateStatement(.hstmt)
    set sc=conn.PrepareW(hstmt,sql) 
    
  if$$$ISERR(sc) quit sc
  //Execute statement
  set sc=conn.Execute(hstmt)
  if$$$ISERR(sc) 
  {
      k err
   Set xsc=conn.GetErrorList(hstmt,.err)
      set sc=conn.DropStatement(hstmt)
   ;Zwrite err
   Quit err
  }
    set sc=conn.DropStatement(hstmt)
    q$$$OK
Err
    ;w $ze,!
    q$ze
}
1
0 194
文章 姚 鑫 · 四月 24, 2023 2m read

第三十八章 配置镜像 - 配置 ISCAgent - 在 Linux 系统上启动 ISCAgent

在 Linux 系统上启动 ISCAgent

在支持systemdLinux系统上(如SUSE Linux Enterprise Server 12, SP1及以后版本),会安装/etc/systemd/system/ISCAgent.service文件,支持使用systemd管理ISCAgent。在任何此类系统上,以下命令可用于启动、停止和显示 ISCAgent 的状态:

systemctl start ISCAgent.service
systemctl stop ISCAgent.service
systemctl status ISCAgent.service

要在支持 systemd 的系统上控制 SCAgent 是否在系统引导时启动,请使用以下命令:

sudo systemctl enable ISCAgent.service
sudo systemctl disable ISCAgent.service

默认情况下,systemd 服务是禁用的。可以使用 systemctl 按需启动和停止服务,即使它已被禁用。

0
0 200
文章 姚 鑫 · 四月 22, 2023 3m read

第三十六章 配置镜像 - 配置镜像虚拟 IP (VIP)

配置镜像虚拟 IP (VIP)

如规划镜像虚拟 IP (VIP) 中所述,可以配置一个镜像虚拟地址,允许外部应用程序使用单个地址与镜像交互,确保在故障转移时持续访问。

在为镜像 VIP 配置 IRIS 并配置镜像 VIP 后,通过正常关闭当前主节点(如计划中断过程中所述)执行故障转移测试,以确保应用程序可以继续连接到镜像,而不管哪个故障转移成员是基本的。

重要提示:在 Linux 平台上配置镜像 VIP 之前,请通过安装适当的软件包(例如,Debian iputils-arping 软件包)确保 arping 命令可用。

如果一个或多个镜像成员是 UNIX®Linux 系统上的非根 IRIS 实例,如安装指南中“在 UNIX®Linux 上安装 IRIS”一章的 IRIS 非根安装中所述,则镜像 VIP不能使用。

注意:有关在使用 VIP 时将 DR 异步提升为主的重要信息,请参阅将 DR 异步成员提升为故障转移成员。

为镜像 VIP 配置 IRIS

为确保无论哪个故障转移成员当前为主,管理门户和 Studio 都可以无缝访问镜像,建议将故障转移成员配置为使用相同的超级服务器和 Web 服务器端口号。

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

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

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

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

0
0 154
文章 Michael Lei · 四月 4, 2023 1m read

嗨开发者们!

如您所知,InterSystems IRIS 除了Global、对象、文档和 XML 数据模型还支持关系,其中 SQL 语言也被用来处理数据。

与其他关系型 DBMS 一样,InterSystems IRIS 有自己的特点。

我开始这篇文章是为了抛砖引玉,并邀请您分享您的小诀窍 - 我会根据收到的评论更新内容。

开始了!

1
1 272