system.replicas
包含本地服务器上复制表的信息和状态。该表可用于监控。该表为每个 Replicated* 表包含一行。
示例:
列:
database
(String
) - 数据库名称table
(String
) - 表名称engine
(String
) - 表引擎名称is_leader
(UInt8
) - 副本是否为领导者。 多个副本可以同时是领导者。可以通过merge_tree
设置replicated_can_become_leader
来阻止副本成为领导者。领导者负责调度后台合并。 注意,写入可以在任何可用且在 ZK 中有会话的副本上执行,而不管它是否为领导者。can_become_leader
(UInt8
) - 副本是否可以成为领导者。is_readonly
(UInt8
) - 副本是否处于只读模式。 如果配置中没有包含 ClickHouse Keeper 的部分,如果在重新初始化 ClickHouse Keeper 中的会话时发生未知错误,以及在 ClickHouse Keeper 中重新初始化会话时,则会开启此模式。is_session_expired
(UInt8
) - 与 ClickHouse Keeper 的会话已过期。基本上与is_readonly
相同。future_parts
(UInt32
) - 将作为尚未完成的 INSERT 或合并的结果出现的数据部分数量。parts_to_check
(UInt32
) - 等待验证的数据部分数量。如果怀疑某个部分可能损坏,则该部分放入验证队列中。zookeeper_path
(String
) - ClickHouse Keeper 中表数据的路径。replica_name
(String
) - ClickHouse Keeper 中的副本名称。相同表的不同副本具有不同的名称。replica_path
(String
) - ClickHouse Keeper 中副本数据的路径。与连接 'zookeeper_path/replicas/replica_path' 相同。columns_version
(Int32
) - 表结构的版本号。指示 ALTER 操作执行的次数。如果副本具有不同的版本,表示某些副本尚未进行所有 ALTER。queue_size
(UInt32
) - 等待执行操作的队列大小。操作包括插入数据块、合并和某些其他操作。通常与future_parts
一致。inserts_in_queue
(UInt32
) - 需要进行的数据块插入数量。插入通常复制的相当迅速。如果这个数字很大,意味着出现了问题。merges_in_queue
(UInt32
) - 等待进行的合并数量。有时合并非常耗时,因此该值可能会长时间大于零。part_mutations_in_queue
(UInt32
) - 等待进行的突变数量。queue_oldest_time
(DateTime
) - 如果queue_size
大于 0,显示最早操作被添加到队列的时间。inserts_oldest_time
(DateTime
) - 参见queue_oldest_time
merges_oldest_time
(DateTime
) - 参见queue_oldest_time
part_mutations_oldest_time
(DateTime
) - 参见queue_oldest_time
接下来的 4 列仅在与 ZK 有活动会话的情况下具有非零值。
log_max_index
(UInt64
) - 一般活动日志中最大条目编号。log_pointer
(UInt64
) - 副本复制到其执行队列的活动日志中最大条目编号,加一。如果log_pointer
远小于log_max_index
,则有问题。last_queue_update
(DateTime
) - 上次更新队列的时间。absolute_delay
(UInt64
) - 当前副本的延迟,单位为秒。total_replicas
(UInt8
) - 此表的已知副本总数。active_replicas
(UInt8
) - 此表在 ClickHouse Keeper 中有会话的副本数量(即正常工作的副本数量)。lost_part_count
(UInt64
) - 自表创建以来,所有副本中丢失的数据部分数量。该值保存在 ClickHouse Keeper 中,只会增加。last_queue_update_exception
(String
) - 当队列包含损坏的条目时。尤其重要,当 ClickHouse 在版本之间打破向后兼容性,并且新版本写入的日志条目不能被旧版本解析时。zookeeper_exception
(String
) - 最后一次异常消息,如果在从 ClickHouse Keeper 获取信息时发生错误。replica_is_active
(Map(String, UInt8)) — 副本名称与副本是否处于活动状态之间的映射。
如果您请求所有列,表的性能可能会稍慢,因为每一行都需要执行多次与 ClickHouse Keeper 的读取。 如果您不请求最后 4 列(log_max_index,log_pointer,total_replicas,active_replicas),表的性能会更快。
例如,您可以这样检查一切是否正常:
如果此查询不返回任何内容,则表示一切正常。