面试题答案
一键面试- 使用
rs.status()
命令- 操作方法:在MongoDB shell中,连接到副本集中的任意成员,然后执行
rs.status()
命令。 - 信息获取:
- 健康状态:通过
members
数组中每个成员的health
字段判断,1
表示健康,0
表示不健康。 - 优先级:
members
数组中每个成员的priority
字段显示其优先级。 - 同步状态:
members
数组中每个成员的syncingTo
字段,如果存在值,表示该成员正在同步到指定的成员;stateStr
字段若为PRIMARY
、SECONDARY
等不同状态描述,也能间接反映同步状态。例如SECONDARY
说明正在从主节点同步数据。
- 健康状态:通过
- 操作方法:在MongoDB shell中,连接到副本集中的任意成员,然后执行
- 使用
db.serverStatus()
命令- 操作方法:在MongoDB shell中,连接到副本集中的成员,执行
db.serverStatus()
命令。 - 信息获取:
- 健康状态:
host
字段会显示主机信息,结合其他系统相关指标可辅助判断节点健康。 - 副本集相关信息:
repl
字段下包含副本集角色(如setName
显示副本集名称,isMaster
等字段判断是否为主节点等),可辅助了解副本集状态。
- 健康状态:
- 操作方法:在MongoDB shell中,连接到副本集中的成员,执行
- 使用MongoDB Compass
- 操作方法:打开MongoDB Compass,连接到副本集。在“Overview”面板中,选择“Replication”选项卡。
- 信息获取:
- 健康状态:以图形化方式直观显示每个成员的健康状况,绿色表示健康,红色表示异常。
- 优先级:可看到每个成员的优先级数值。
- 同步状态:显示成员是主节点还是从节点,以及从节点的同步进度等信息。
- 使用MongoDB监控和管理工具(如Ops Manager)
- 操作方法:将副本集接入Ops Manager进行管理。
- 信息获取:
- 健康状态:在Ops Manager界面中,有详细的节点健康状态显示,包括整体副本集健康和单个成员健康状态。
- 优先级:可在副本集成员配置界面查看和修改成员优先级。
- 同步状态:提供实时的同步状态指标,如复制延迟等详细信息。