将如下代码保存到文件mongodbstats.js
function checkRS(members){
var valid=true;
members.forEach(function(member){
print(member.name+" is "+member.stateStr)
if (member.stateStr != "SECONDARY" && member.stateStr != "PRIMARY" && member.stateStr != "ARBITER"){
valid=false;
}
});
return valid;
}
db = db.getSiblingDB('config');
shards=db.shards.find();
print("\ncurrent shards:\n")
while ( shards.hasNext() ) {
printjson( shards.next() );
}
print("\ncheck rs status:\n")
shards=db.shards.find();
while ( shards.hasNext() ) {
shard=shards.next();
print("checking "+shard._id)
connStr=shard.host;
mongo=new Mongo(connStr);
rsStats=mongo.getDB("admin")._adminCommand("replSetGetStatus");
var valid=checkRS(rsStats.members);
if(!valid){
print("please check this rs!!")
printjson(rsStats)
}
print("")
}
在mongos上运行mongo mongodbstats.js --quiet | grep -v "I NETWORK"
效果如下
引用
current shards:
{ "_id" : "s1", "host" : "s1/dev185.smarket:31001,dev186.smarket:31001" }
{ "_id" : "s2", "host" : "s2/dev250.smarket:31002" }
check rs status:
checking s1
dev186.smarket:31001 is PRIMARY
dev185.smarket:31001 is SECONDARY
dev250.smarket:31001 is ARBITER
checking s2
dev250.smarket:31002 is PRIMARY
分享到:
相关推荐
配置服务器是 MongoDB 集群的重要组成部分之一,它负责维护集群的状态信息,如分片信息、路由信息等。 ```bash ./mongodb/bin/mongod --configsvr --dbpath /data/mongodb/config/data --port 21000 --logpath /...
- 创建相应的目录结构,如 `/usr/local/mongodb/conf`、`/usr/local/mongodb/mongos/log`、`/usr/local/mongodb/config/data`、`/usr/local/mongodb/config/log`、`/usr/local/mongodb/shard1/data`、`/usr/local/...
1. **创建配置文件**:分别在服务器nosql01、nosql02和nosql03的`/shard/configFile/`目录下创建配置文件`mongodb_shard1.conf`、`mongodb_shard2.conf`和`mongodb_shard3.conf`。 2. **启动Shard**:在三台服务器的...
- `/data/mongodb/shard1/data` - `/data/mongodb/shard1/log` - `/data/mongodb/shard2/data` - `/data/mongodb/shard2/log` - `/data/mongodb/shard3/data` - `/data/mongodb/shard3/log` 5. **规划端口号*...
- `/data/mongodbtest/shard1/data` 和 `/data/mongodbtest/shard1/log`、`/data/mongodbtest/shard2/data` 和 `/data/mongodbtest/shard2/log`、`/data/mongodbtest/shard3/data` 和 `/data/mongodbtest/shard3/log...
MongoDB使用分片键(Shard Key)来决定数据应存储在哪个分片上。分片集群通常包括分片服务器、路由进程(Mongos)和配置服务器(Config Server)。路由进程负责接收客户端请求,根据分片键将请求路由到正确的分片,...
用于Shard和Config服务器的Pod的部署: 此处,分片副本集存储实际数据或块(文档集合),而配置服务器副本集存储mongodb集群的元数据和配置信息。 在k8s集群中,我们创建了无头服务和状态集,用于部署分片和配置...
配置服务器对于维护集群状态至关重要。 **3. 分片集群的结构** MongoDB的分片集群通常包括三个主要部分:mongos、配置服务器和分片。每个部分都有其独特的功能和职责,共同协作以实现高效的数据管理和查询响应。 ...
在移除过程中,`printShardingStatus()` 命令会显示 `draining` 状态为 `true`,表示正在执行数据迁移。迁移完成后,Shard 就会被正式从集群中移除。 **注意事项:** - 时间同步:在运行 MongoDB 分片集群时,所有...
- 使用`cd /`进入根目录,然后依次创建`/datatang/apps/mongodb`和`/datatang/workspace/mongo/shard1`等目录,这些目录分别用于存放MongoDB安装文件和数据文件。 2. **创建日志文件**: - 在`/datatang/apps/...
### MongoDB分片技术详解 #### 一、MongoDB分片概念 ...在实际部署过程中,还需要注意监控各个服务的状态,确保数据的完整性和一致性。此外,对于生产环境,还需要考虑备份和恢复策略,以及故障转移等高级功能的实现。
sharding模式下的MongoDB集群主要由三个部分组成:shard、config服务器和客户端连接服务器(OS)。shard服务器负责数据的存储;config服务器维护集群的元数据信息,比如各shard的存储信息;而客户端连接服务器(OS)...
MongoDB提供了丰富的监控和管理工具,包括`db.printShardingStatus()`、`sh.status()`等命令,用于查看分片状态和调整分片策略。 **九、故障恢复与高可用性** 确保每个角色都有备份,如使用复制集提供配置服务器和...
为了确保集群的稳定运行,建议定期监控集群状态,检查副本集同步情况,以及调整分片策略以适应数据增长。 总之,MongoDB 分片集群的部署是一项复杂但必要的任务,它为大数据量的应用提供了高性能和高可用性的解决...
MongoDB Sharding 机制分析 ...4. 高可扩展性:MongoDB 的 Sharding 节点是无状态的,可以任意水平扩展。 因此,MongoDB 的 Sharding 机制可以解决单机性能极限的问题,提高数据库的可扩展性和可靠性。
5. **验证副本集状态**:使用`rs.status()`命令查看副本集状态,确保所有成员已加入且状态正常。 ## 四、MongoDB分片集群安装 1. **配置分片**:需要至少三个MongoDB实例作为分片服务器,以及至少一个配置服务器...
作为基于分布式文件存储的数据库,在目前的云计算实践中,MongoDB炙手可热。《深入云计算(MongoDB管理与开发实战详解)》系统全面的介绍了MongoDB开发、管理、维护和性能优化等方方面面。详细而深入,对MongoDB的开发...
1. **Config Server**:配置服务器存储每个shard节点的配置信息、每个chunk的shard key范围、chunk在各shard的分布情况以及集群中所有DB和collection的sharding配置信息。 2. **Replica Set**:主从配置(master-...