Child pages
  • Mongo съела все место
Skip to end of metadata
Go to start of metadata

Коллеги, в очередной раз монга доела место на диске.

гарабля частая, опишу методику решения:

  • находим немного места ~ 10% размеры базы – уже не плохо
  • определяемся что съело все место, как правило это:
  • грохаем эти базы. тут я предполагаю что они ненужны.
# mongo noc -u noc -p thenocproject       
MongoDB shell version: 2.6.5
connecting to: noc
> db.noc.events.archive.drop()
true
> 
bye
  • делаем дамп
cd /tmp #там где есть место
# mongodump -d noc -u noc -p thenocproject
connected to: 127.0.0.1
2014-10-27T15:02:04.158+0500 DATABASE: noc     to     dump/noc
2014-10-27T15:02:04.159+0500     noc.system.indexes to dump/noc/system.indexes.bson
2014-10-27T15:02:04.160+0500          229 documents
2014-10-27T15:02:04.239+0500     noc.noc.activatorcapscache to dump/noc/noc.activatorcapscache.bson
2014-10-27T15:02:04.239+0500          1 documents
2014-10-27T15:02:04.239+0500     Metadata for noc.noc.activatorcapscache to dump/noc/noc.activatorcapscache.metadata.json
2014-10-27T15:02:04.240+0500     noc.noc.alarmclassconfigs to dump/noc/noc.alarmclassconfigs.bson
2014-10-27T15:02:04.240+0500          0 documents
2014-10-27T15:02:04.241+0500     Metadata for noc.noc.alarmclassconfigs to dump/noc/noc.alarmclassconfigs.metadata.json
2014-10-27T15:02:04.241+0500     noc.noc.alarmclasses to dump/noc/noc.alarmclasses.bson
2014-10-27T15:02:04.242+0500          116 documents
2014-10-27T15:02:04.377+0500     Metadata for noc.noc.alarmclasses to dump/noc/noc.alarmclasses.metadata.json
2014-10-27T15:02:05.786+0500     noc.noc.alarms.active to dump/noc/noc.alarms.active.bson
2014-10-27T15:02:05.787+0500          65 documents
2014-10-27T15:02:05.788+0500     Metadata for noc.noc.alarms.active to dump/noc/noc.alarms.active.metadata.json
2014-10-27T15:02:06.440+0500     noc.noc.alarmseverities to dump/noc/noc.alarmseverities.bson
....

  • если видим вот такое

    2014-10-27T15:02:22.591+0500     Metadata for noc.noc.fm.ignorepatterns to dump/noc/noc.fm.ignorepatterns.metadata.json
    2014-10-27T15:02:22.591+0500     noc.noc.log.sa.interaction to dump/noc/noc.log.sa.interaction.bson
    2014-10-27T15:02:25.099+0500         Collection File Writing Progress: 27300/1398336    1%    (documents)
    2014-10-27T15:02:28.046+0500         Collection File Writing Progress: 380800/1398336    27%    (documents)
    2014-10-27T15:02:31.218+0500         Collection File Writing Progress: 679600/1398336    48%    (documents)
    
    

    значит эта таблица у вас большая. определитесь с ее надобностью. не нужна – под нож.

  • Результат дампа будет в директории /tmp/dump 
  • потом надо дропнуть базу

    # mongo noc -u noc -p thenocproject        
    MongoDB shell version: 2.6.5
    connecting to: noc
    > db.dropDatabase()
    { "dropped" : "noc", "ok" : 1 }
    > 
    bye


    после дропа базы реально освободиться место

  • потом разворачиваем обратно

    mongorestore dump 

    в моем случае развернуть сразу не удалось

    assertion: 18 { ok: 0.0, errmsg: "auth failed", code: 18 }
    [noc-devel] 15:07:28 /tmp # mongorestore -u noc -p thenocproject     
    connected to: 127.0.0.1
    assertion: 18 { ok: 0.0, errmsg: "auth failed", code: 18 }
    [noc-devel] 15:07:35 /tmp # mongorestore -u noc -p thenocproject
    connected to: 127.0.0.1
    assertion: 18 { ok: 0.0, errmsg: "auth failed", code: 18 }
    [noc-devel] 15:08:23 /tmp # mongorestore -u noc -p thenocproject dump 
    connected to: 127.0.0.1
    assertion: 18 { ok: 0.0, errmsg: "auth failed", code: 18 }

    поэтому я временно выключил аутентификацию

    vim /etc/mongodb.conf
    делаем
    noauth = false
    auth = false

    еще было вот так

    2014-10-27T15:13:31.846+0500 dump/noc/noc.events.archive.metadata.json not found. Skipping.
    2014-10-27T15:13:34.009+0500         Progress: 59707177/281133056    21%    (bytes)
    2014-10-27T15:13:37.006+0500         Progress: 134295084/281133056    47%    (bytes)
    2014-10-27T15:13:40.023+0500         Progress: 206281144/281133056    73%    (bytes)
    2014-10-27T15:13:43.011+0500         Progress: 259074081/281133056    92%    (bytes)
    2014-10-27T15:13:46.052+0500         Progress: 280268599/281133056    99%    (bytes)
    2014-10-27T15:13:47.688+0500 Assertion failure amt == (size_t)( size - 4 ) src/mongo/tools/tool.cpp 330
    2014-10-27T15:13:47.713+0500 0x11e8261 0x118b669 0x116f97e 0x1161ddd 0x772347 0x7772e7 0x776ab1 
     mongorestore(_ZN5mongo15printStackTraceERSo+0x21) [0x11e8261]
     mongorestore(_ZN5mongo10logContextEPKc+0x159) [0x118b669]
     mongorestore(_ZN5mongo12verifyFailedEPKcS1_j+0x17e) [0x116f97e]
     mongorestore(_ZN5mongo8BSONTool11processFileERKN5boost11filesystem34pathE+0x99d) [0x1161ddd]
     mongorestore(_ZN7Restore22processFileAndMetadataERKN5boost11filesystem34pathERKSs+0xda7) [0x772347]
     mongorestore(_ZN7Restore9drillDownEN5boost11filesystem34pathEbbbb+0xe47) [0x7772e7]
     mongorestore(_ZN7Restore9drillDownEN5boost11filesystem34pathEbbbb+0x611) [0x776ab1]
    assertion: 0 assertion src/mongo/tools/tool.cpp:330

    из-за того что я не удалял дампы и получились битые архивы. боремся просто убивая плохие файлы

    rm dump/noc/noc.events.archive.bson

    не забываем вернуть авторизацию как было. место почищено

  • Profit