2015-06-10 4 views
0

Странно, на автономном сервере MongoDB 3.0.3 после запуска команды db.stats() в базе данных я получаю только этот вывод, который не отображает информацию о размерах файлов моя база данных для не существующих, за исключением:MongoDB - Я не могу найти размер файла базы данных

> use MyBase 
switched to db MyBase 
> show collections 
XmlCache 
system.profile 
> db.stats() 
{ 
     "db" : "MyBase", 
     "collections" : 2, 
     "objects" : 62228, 
     "avgObjSize" : 139963.13608022113, 
     "dataSize" : 8709626032, 
     "storageSize" : 3128832000, 
     "numExtents" : 0, 
     "indexes" : 9, 
     "indexSize" : 15106048, 
     "ok" : 1 
} 
> db.runCommand({ dbStats: 1, scale: 1 }) 
{ 
     "db" : "MyBase", 
     "collections" : 2, 
     "objects" : 63765, 
     "avgObjSize" : 138065.89466007997, 
     "dataSize" : 8803771773, 
     "storageSize" : 3129327616, 
     "numExtents" : 0, 
     "indexes" : 9, 
     "indexSize" : 15286272, 
     "ok" : 1 
} 
> show dbs 
ABase      0.035GB 
AnotherBase    0.036GB 
MyBase     2.929GB 
local      0.000GB 
> use dummy 
switched to db dummy 
> db.stats() 
{ 
     "db" : "dummy", 
     "collections" : 0, 
     "objects" : 0, 
     "avgObjSize" : 0, 
     "dataSize" : 0, 
     "storageSize" : 0, 
     "numExtents" : 0, 
     "indexes" : 0, 
     "indexSize" : 0, 
     "fileSize" : 0, 
     "ok" : 1 
} 

Запуск те же команды на любом сервере в replicaset с одной и теми же базой данных 2.6.9 или 3.0.3 получите мне гораздо больше информации, и я не понимаю почему (и это беспокоит меня, поскольку мне нужна эта информация для некоторых сценариев):

rs0:SECONDARY> use MyBase 
switched to db MyBase 
rs0:SECONDARY> show collections 
XmlCache 
system.indexes 
system.profile 
rs0:SECONDARY> db.stats() 
{ 
     "db" : "MyBase", 
     "collections" : 4, 
     "objects" : 127225, 
     "avgObjSize" : 36730.40902338377, 
     "dataSize" : 4673026288, 
     "storageSize" : 6541684736, 
     "numExtents" : 24, 
     "indexes" : 9, 
     "indexSize" : 49333984, 
     "fileSize" : 55741251584, 
     "nsSizeMB" : 16, 
     "extentFreeList" : { 
       "num" : 52, 
       "totalSize" : 45903593184 
     }, 
     "dataFileVersion" : { 
       "major" : 4, 
       "minor" : 22 
     }, 
     "ok" : 1 
} 
rs0:SECONDARY> show dbs 
ABase       0.078GB 
AnotherBase      0.453GB 
MyBase       51.929GB 
local       6.075GB 
rs0:SECONDARY> 

Где это скрывает информацию о файлах?

+0

'' dataSize ": 4673026288 и" storageSize ": 6541684736' введите необходимую информацию, не так ли? – marijnz0r

+1

Не совсем, данные, хранение и размер файлов - это 3 различных информации. Перед уплотнением хранилище может быть равно размеру файла – Shugolarv

+0

Фактически для wiredTiger 'fileSize = storageSize + indexSize' – Shugolarv

ответ

2

dbStats.fileSize

только присутствует при использовании механизма хранения mmapv1.

Source.

+0

Черт, я не видел его, несмотря на то, что прочитал страницу заранее. Мне нужно найти другой способ: – Shugolarv

+2

Кому интересно: 'fileSize = storageSize + indexSize' – Shugolarv

Смежные вопросы