MongoDB 3.X 구버전도 가능.

 

아래 소스코드를 복사해서 mongos shell에 붙여넣고 실행시키면,

(function(){
    var configDb = db.getSisterDB('config');
    var shardList = [];
    configDb.shards.find().sort({_id:1}).forEach(function(doc){
        shardList.push(doc._id);
    });
 
    configDb.collections.find().forEach(function(doc){
        var colName = doc._id;
        var totalCount = configDb.chunks.count({ns:colName});
 
        print('\n\n['+colName+']\n--------------------------------------');        
        print('TOTAL = '+totalCount);
        for (var i=0; i<shardList.length; i++) {
            var shardName = shardList[i];
            var cnt = configDb.chunks.count({ns:colName, shard:shardName});
            var per = (cnt / totalCount) * 100;
            print(shardName+' = '+cnt+' ('+per.toFixed(1)+' %)');
        }
    });
})()

 

이런 식으로 출력됨. 필요한 내용 추가나 필터링, 포맷 등은 소스코드 변경해서 입맛에 맞게 하면 되고.

[DB_NAME.COLLECTION_NAME1]
--------------------------------------
TOTAL = 4000
shard_001 = 1000 (25.0 %)
shard_002 = 1000 (25.0 %)
shard_003 = 1000 (25.0 %)
shard_004 = 1000 (25.0 %)

[DB_NAME.COLLECTION_NAME2]
--------------------------------------
TOTAL = 1000
shard_001 = 250 (25.0 %)
shard_002 = 250 (25.0 %)
shard_003 = 250 (25.0 %)
shard_004 = 250 (25.0 %)
Posted by bloodguy

댓글을 달아 주세요