第四十三章 管理镜像 - 镜像成员日记传输和取消日记状态
当一个 IRIS 实例属于一个镜像时,它的成员类型和状态、日志传输状态和 dejournaling 状态由镜像监视器和 ^MIRROR 例程状态监视器选项显示,如监视镜像中所述。
下表描述了可能显示的类型和状态;第一个显示特定成员类型的特定状态,而第二个中的状态适用于所有成员类型。
| Type | Status | Description |
|---|---|---|
Failover | `Primary | Current primary. |
Failover | Backup | Connected to primary as backup. |
Failover | In Trouble | 作为主要的,由于与备份失去连接而处于故障状态; |
Disaster Recovery | Connected | Connected to primary as async. |
Read-Only Reporting | Connected | (as above) |
Read-Write Reporting | Connected | (as above) |
Indeterminate | Not Initialized | 成员未初始化(尚未加载镜像配置)。 |
| Status (any type) | Description |
|---|---|
Transition | 处于过渡状态,在初始化或其他操作完成时很快就会改变;此状态提示查询成员状态的进程稍后再次查询。 当没有运行中的主节点时,故障转移成员可以在很长一段时间内报告此状态,同时在成为主节点的过程中检索和应用日志文件;如果有另一个主要的故障转移成员,则状态改为正在同步。 |
Synchronizing | 在停止或断开连接后启动或重新连接,检索和应用日志文件以便在成为备份或已连接之前同步数据库和日志状态。 |
Waiting | 无法完成一项操作,例如成为主要、备份或已连接;将无限期重试,但可能需要用户干预。 |
Stopped | 成员镜像被用户无限期停止,不会自动启动 |
Crashed | 由于意外情况,镜像不再运行;有关详细信息,请参阅消息日志。 |
Error | 获取成员的状态时发生意外错误。 |
Down | 对于已关闭或无法访问的成员,在其他成员上显示。 |
注意:也可以使用 $SYSTEM.Mirror.GetMemberType() 和 $SYSTEM.Mirror.GetMemberStatus() 方法获取镜像成员类型和状态。的一些组合
这些调用报告了上面未列出的类型和状态,如下所示:
Not Member and Not Initialized- 实例配置为非镜像成员。- 只读或读写报告和
M/N状态——实例是多个镜像的异步成员;提供mirrorname参数以获取特定镜像的状态。
对于备份和异步镜像成员,Journal Transfer 表示镜像成员是否拥有来自主成员的最新日志数据,如果没有,则落后于日志传输多远,而 Dejournaling 表示是否所有从主成员接收的日志数据都已 dejournaled (应用于成员的镜像数据库),如果没有,那么,dejournaling 落后了多少。下表描述了镜像监视器和 ^MIRROR 显示的这些字段的可能状态。 (这些字段对于主要字段始终为 N/A。).
| Journal Transfer | Description |
|---|---|
Active (backup only) | 备份已从主服务器接收到最新的日志数据并与主服务器同步。 (有关活动备份状态的更多信息,请参阅备份状态和自动故障转移。)请注意,即使其 Dejournaling 状态未被捕获,备份也可以是活动的;只要备份有所有需要的日志文件,即使在它失去与主文件的连接后也可以取消日志记录。 |
Caught up | 在备份上,表示备份已从主服务器接收到最新的日志数据,但未完全同步,因为主服务器没有等待它确认收到日志数据。这种状态通常是短暂的,就像备份重新连接到镜像时一样。 在异步上,表示异步已从主服务器接收到最新的日志数据并与主服务器同步。 |
time behind | 成员落后于主节点特定的时间量,时间表示成员收到的最后一个日志块的时间戳与当前时间之间经过的时间量。 |
Disconnected on time | 该成员在指定时间与主要成员断开连接。 |
如前所述,Journal Transfer 字段中的 Active 表示备份已从主服务器接收所有日志数据并与主服务器同步,因此能够在故障转移期间从主服务器接管,而无需联系主服务器的 ISCAgent 以获取额外的日志数据。
| Dejournaling | Description |
|---|---|
Caught up | 从主数据库接收到的所有日志数据都已取消日志记录(应用于成员的镜像数据库)。 |
time behind | 从主服务器接收到的一些日志数据尚未取消日志,时间表示最后一个取消日志的日志块的时间戳与从主服务器接收的最后一个日志块之间经过的时间量。 |
Disconnected on time | 该成员在指定时间与主要成员断开连接。 |
Warning! Some databases need attention. | 至少有一个镜像数据库不在正常状态;应检查数据库。 |
Warning! Dejournaling is stopped. | Dejournaling 已被操作员或由于错误而停止;请参阅管理数据库日志记录。 |
Caught Up in the Dejournaling field for Active backup failover member 或 Caught Up in both the Dejournaling field and the Journal Transfer field for an async member 表示该成员已从主要成员接收到最新的日志数据并应用了最新的全局操作包含在该数据中。如果成员没有赶上,则会显示自生成最近的日志数据或在主服务器上写入最近的操作以来经过的时间量。