清除过滤器
文章
姚 鑫 · 五月 1, 2023
# 第四十五章 管理镜像 - 使用 ^MIRROR 状态监视器
# 使用 ^MIRROR 状态监视器
`^MIRROR` 例程提供基于字符的镜像状态监视器。 `^MIRROR Status Monitor` 选项显示镜像成员的状态,包括类型、状态、日志传输延迟和 `dejournal` 延迟(请参阅镜像成员日志传输和 `Dejournaling` 状态)。监视器可以在任何镜像成员上运行,但在故障转移成员上运行它会提供有关仲裁器配置和所有连接的异步成员的信息,而在异步成员上运行它则不会。
要启动状态监视器,请打开终端窗口,在 `%SYS` 命名空间中运行 `^MIRROR` 例程(请参阅使用 `^MIRROR` 例程),然后从镜像状态菜单中选择状态监视器。以下是在故障转移成员上运行时监视器的输出示例:
```java
Status of Mirror MIR25FEB at 17:17:53 on 02/27/2018
Member Name+Type Status Journal Transfer Dejournaling
-------------------------- --------- ---------------- --------------
MIR25FEB_A
Failover Primary N/A N/A
MIR25FEB_B
Failover Backup Active Caught up
MIR25FEB_C
Disaster Recovery Connected Caught up Caught up
MIR25FEB_D
Read-Only Reporting Connected Caught up Caught up
Arbiter Connection Status:
Arbiter Address: 127.0.0.1|2188
Failover Mode: Arbiter Controlled
Connection Status: Both failover members are connected to the arbiter
Press RETURN to refresh, D to toggle database display, Q to quit,
or specify new refresh interval
```
当在异步成员上运行状态监视器时,仅列出故障转移成员和该异步成员,并且还会显示异步(正在运行或已停止)上的 `dejournaling` 状态,例如:
```java
Status of Mirror MIR25FEB at 17:17:53 on 02/27/2018
Member Name+Type Status Journal Transfer Dejournaling
-------------------------- --------- ---------------- --------------
MIR25FEB_A
Failover Primary N/A N/A
MIR25FEB_B
Failover Backup Active Caught up
MIR25FEB_C
Disaster Recovery Connected Caught up Caught up
Dejournal Status: running (process id: 12256)
Press RETURN to refresh, D to toggle database display, Q to quit,
or specify new refresh interval
```
默认情况下,不显示有关镜像数据库的信息。在提示符处输入 `d` 以列出有关镜像中每个数据库的信息,包括名称、目录、状态和要取消的下一条记录,如使用镜像监视器中所述,例如:
```java
Mirror Databases:
Last Record
Name Directory path Status Dejournaled
------------- ----------------------------------- ----------- -----------
MIR25FEB_DB1 C:\InterSystems\20182209FEB25A\Mgr\MIR25FEB_DB1\
Active
Current,c:\intersystems\20182209feb25a\mgr\journal\MIRROR-MIR25FEB-20180227.001,40233316
MIR25FEB_DB2 C:\InterSystems\20182209FEB25A\Mgr\MIR25FEB_DB2\
Active
Current,c:\intersystems\20182209feb25a\mgr\journal\MIRROR-MIR25FEB-20180227.001,40233316
```
# 监控镜像通信进程
每个系统(主要和备份故障转移成员,以及每个连接的异步成员)上运行的进程负责镜像通信和同步。
## 主要故障转移成员上的镜像进程
在主要故障转移成员上运行系统状态例程 (^%SS) 会显示下表中列出的进程。
注意:本节的 `^%SS` 输出中有意省略了 `CPU`、`Glob` 和 `Pr` 列。
#### 主要故障转移成员上的镜像进程
Device| Namespace| Routine| User/Location
---|---|---|---
/dev/null| %SYS |MIRRORMGR |Mirror Master
MDB2| %SYS| MIRRORCOMM| Mirror Primary*
192.168.1.1 |%SYS |MIRRORCOMM |Mirror Svr:Rd*
这些过程定义如下:
- `Mirror Master`:该进程在系统启动时启动,负责各种镜像控制和管理任务。
- `Mirror Primary`:这是出站数据通道;这是一个单向通道。每个连接的系统有一个作业(备份故障转移或异步成员)。
- `Mirror Svr:Rd*`:这个是入站确认通道;这是一个单向通道。每个连接的系统有一个作业(备份故障转移或异步成员)。
每个连接的异步成员都会在主故障转移成员上产生一组新的 `Mirror Master`、`Mirror Primary` 和 `irror Svr:Rd*` 进程。
## 备份故障转移/异步成员上的镜像进程
在备份故障转移/异步成员上运行系统状态例程 (`^%SS`) 会显示下表中列出的进程。
#### 备份故障转移/异步成员上的镜像进程
Device| Namespace| Routine| User/Location
---|---|---|---
/dev/null| %SYS |MIRRORMGR |Mirror Master
/dev/null |%SYS|MIRRORMGR| Mirror Dejour
/dev/null| %SYS|MIRRORMGR| Mirror Prefet*
/dev/null |%SYS |MIRRORMGR| Mirror Prefet*
MDB1 |%SYS|MIRRORMGR |Mirror Backup
/dev/null| %SYS|MIRRORMGR |Mirror JrnRead
此表中标识的进程也出现在每个连接的异步成员上:
- `Mirror Master`:该进程在系统启动时启动,负责各种镜像控制和管理任务。
- `Mirror JrnRead (Mirror Journal Read)`:该过程将备份生成的日志数据读入内存,并将这些更改排队等待 `dejournal` 作业取消。
- 镜像延迟(`Mirror Dejournal`):这是备份故障转移成员上的延迟作业;它将接收到的日志数据中的 `sets` 和 `kills` 发送到镜像数据库。
- `Mirror Prefet*`(镜像预取):这些进程负责在`dejournal` 作业实际尝试使用它们之前将 `dejournal` 作业所需的磁盘块预取到内存中。这样做是为了加快 `dejournaling` 过程。系统上通常配置了多个镜像预取作业。镜像备份:这个过程是一个双向通道,将从主服务器接收到的日志记录写入备份的镜像日志文件,并向主服务器返回确认。