Skocz do zawartości
  • Cześć!

    Witaj na forum RootNode - aby pisać u nas musisz się zarejestrować, a następnie zalogować. Posty pisane z kont niezarejestrowanych nie są widoczne publicznie.

Problem z MongoDB po usunięciu plików mnemosyne


The I

Rekomendowane odpowiedzi

Baza Mongo z czasem puchła i puchła. W ciągu kilku miesięcy zawaliło ponad 100GB i trzeba było coś zrobić, więc usunąłem pliki, które każdy z nich ważył 2GB a było ich około 60:

mnemosyne.*

Po czy odpaliłem naprawienie bazy danych:

mongo mnemosyne:
>db.repairDatabase({}) 

Ale wywala taki błąd:

 db.repairDatabase({})
{
        "errmsg" : "exception: assertion src/mongo/db/storage/extent_manager.cpp:109",
        "code" : 0,
        "ok" : 0
}

Nie wiem czy ten błąd ma coś konkretnie do aplikacji, ale w każdym razie wszystkie usługi działają, ale serwer wywala błąd po zalogowaniu się do aplikacji WWW:

Internal Server Error

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

Ewidentnie coś jest z bazą, ponieważ strona główna wyświetla się, ale po zalogowaniu jest już powyższy błąd.

 

Czy potrafi ktoś pomóc? Jak to cholerstwo naprawić?

 

 

 

Edytowane przez The I
Odnośnik do komentarza
Udostępnij na innych stronach

11 minut temu, mariaczi napisał:

Próbowałeś zatrzymać bazę i potem

 


mongod --repair

?

 

Jest coś takiego:

 

2017-11-28T12:50:12.579+0100 [initandlisten] MongoDB starting : pid=2411 port=27017 dbpath=/data/db 64-bit host=vps431409
2017-11-28T12:50:12.579+0100 [initandlisten] db version v2.6.12
2017-11-28T12:50:12.579+0100 [initandlisten] git version: d73c92b1c85703828b55c2916a5dd4ad46535f6a
2017-11-28T12:50:12.580+0100 [initandlisten] build info: Linux build5.ny.cbi.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2017-11-28T12:50:12.580+0100 [initandlisten] allocator: tcmalloc
2017-11-28T12:50:12.580+0100 [initandlisten] options: { repair: true }
2017-11-28T12:50:12.580+0100 [initandlisten] exception in initAndListen: 10296
*********************************************************************
 ERROR: dbpath (/data/db) does not exist.
 Create this directory or give existing directory in --dbpath.
 See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
, terminating
2017-11-28T12:50:12.580+0100 [initandlisten] dbexit:
2017-11-28T12:50:12.580+0100 [initandlisten] shutdown: going to close listening sockets...
2017-11-28T12:50:12.581+0100 [initandlisten] shutdown: going to flush diaglog...
2017-11-28T12:50:12.581+0100 [initandlisten] shutdown: going to close sockets...
2017-11-28T12:50:12.581+0100 [initandlisten] shutdown: waiting for fs preallocator...
2017-11-28T12:50:12.581+0100 [initandlisten] shutdown: closing all files...
2017-11-28T12:50:12.581+0100 [initandlisten] closeAllFiles() finished
2017-11-28T12:50:12.581+0100 [initandlisten] dbexit: really exiting now

 

Odnośnik do komentarza
Udostępnij na innych stronach

4 godziny temu, mariaczi napisał:

No to wskaż do tego jeszcze ścieżkę do bazy, jak Cię informuje:


 ERROR: dbpath (/data/db) does not exist.
 Create this directory or give existing directory in --dbpath.

 

 

Ok. Jaka poprawna jest składnia? Bo na pewno nie:

mongod --repair /path

ani nie:

mongod --repair dbpath=/path

Komenda wyrzuca wszystkie możliwe opcje:

Options:

General options:
  -h [ --help ]               show this usage information
  --version                   show version information
  -f [ --config ] arg         configuration file specifying additional options
  -v [ --verbose ] [=arg(=v)] be more verbose (include multiple times for more
...
...
...
itd.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Godzinę temu, SomeGuy napisał:

Blisko:


mongod --dbpath /path/to/db --repair

 

 

 

Wywala coś takiego:

2017-11-28T20:33:01.506+0100 [initandlisten] MongoDB starting : pid=3585 port=27                                                                          017 dbpath=/mnt/vdb1/mongodb 64-bit host=vps431409
2017-11-28T20:33:01.506+0100 [initandlisten] db version v2.6.12
2017-11-28T20:33:01.506+0100 [initandlisten] git version: d73c92b1c85703828b55c2                                                                          916a5dd4ad46535f6a
2017-11-28T20:33:01.506+0100 [initandlisten] build info: Linux build5.ny.cbi.10g                                                                          en.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_                                                                          LIB_VERSION=1_49
2017-11-28T20:33:01.506+0100 [initandlisten] allocator: tcmalloc
2017-11-28T20:33:01.506+0100 [initandlisten] options: { repair: true, storage: {                                                                           dbPath: "/mnt/vdb1/mongodb" } }
**************
Error: journal files are present in journal directory, yet starting without jour                                                                          naling enabled.
It is recommended that you start with journaling enabled so that recovery may oc                                                                          cur.
**************
2017-11-28T20:33:01.507+0100 [initandlisten] exception in initAndListen: 13597 c                                                                          an't start without --journal enabled when journal/ files are present, terminatin                                                                          g
2017-11-28T20:33:01.507+0100 [initandlisten] dbexit:
2017-11-28T20:33:01.507+0100 [initandlisten] shutdown: going to close listening                                                                           sockets...
2017-11-28T20:33:01.507+0100 [initandlisten] shutdown: going to flush diaglog...
2017-11-28T20:33:01.507+0100 [initandlisten] shutdown: going to close sockets...
2017-11-28T20:33:01.507+0100 [initandlisten] shutdown: waiting for fs preallocat                                                                          or...
2017-11-28T20:33:01.507+0100 [initandlisten] shutdown: closing all files...
2017-11-28T20:33:01.507+0100 [initandlisten] closeAllFiles() finished
2017-11-28T20:33:01.507+0100 [initandlisten] shutdown: removing fs lock...
2017-11-28T20:33:01.507+0100 [initandlisten] dbexit: really exiting now

 

Odnośnik do komentarza
Udostępnij na innych stronach

9 godzin temu, gb1 napisał:

@The I z ciekawości zapytam, usuwając miałeś świadomość co usuwasz czy to tak na zasadzie "jakoś to będzie" ? ;-)

 

Miałem świadomość :) Ale liczyłem, że problem da się jakoś naprawić, bo jeśli nie tym razem to kiedy? Problem w tym, że nie chcę co kilka miesięcy stawiać od nowa aplikacji, bo baza mongo zapełnia całe 100GB dysku. Czyli na zasadzie - jak nie działa, to sformatuj dysk. To nie jest rozwiązanie, dlatego liczę, że jednak ktoś podsunie jakiś pomysł, jak to przywrócić do działania, aby w przyszłości nie mieć identycznego problemu.

Odnośnik do komentarza
Udostępnij na innych stronach

@The I poczytaj zatem co usunąłeś, do czego służyło, dlaczego przyrastało. Wszystko nagle stanie się jasne :)

 

Innym rozwiązaniem jest wynajęcie eksperta w zakresie mongodb, który nie dość że naprawi to omówi z Tobą co się wydarzyło, co jest tego powodem i jak można postępować w przyszłości.

 

Zatem jak widać dwie drogi nabycia wiedzy do wyboru w zależności od Twojej obecnej wiedzy i chęci do poświęcenia dłuższego czasu w celu nauki samodzielnej lub skorzystania z wiedzy eksperckiej, która jednak zwykle kosztuje.

  • Lubię 2
Odnośnik do komentarza
Udostępnij na innych stronach

19 minut temu, gb1 napisał:

@The I poczytaj zatem co usunąłeś, do czego służyło, dlaczego przyrastało. Wszystko nagle stanie się jasne :)

 

Innym rozwiązaniem jest wynajęcie eksperta w zakresie mongodb, który nie dość że naprawi to omówi z Tobą co się wydarzyło, co jest tego powodem i jak można postępować w przyszłości.

 

Zatem jak widać dwie drogi nabycia wiedzy do wyboru w zależności od Twojej obecnej wiedzy i chęci do poświęcenia dłuższego czasu w celu nauki samodzielnej lub skorzystania z wiedzy eksperckiej, która jednak zwykle kosztuje.

 

OK. W takim razie poczekam na pomoc innych użytkowników.

Odnośnik do komentarza
Udostępnij na innych stronach

1 minutę temu, gb1 napisał:

@The I usuwając miałeś świadomość co usuwasz zatem teraz wykaż się trochę większą inicjatywą we własnym zakresie, :) jak czekasz na pomoc innych. Myślę, że to będzie miało dobre efekty długoterminowo w zakresie powiększenia posiadanej wiedzy.

 

Skoro sam autor aplikacji nie wie, jak rozwiązać ten problem, to skąd niby ja, marny użytkownik mam wiedzieć? Nigdzie mi się nie śpieszy, poczekam. 

Odnośnik do komentarza
Udostępnij na innych stronach

Godzinę temu, The I napisał:

Skoro sam autor aplikacji nie wie, jak rozwiązać ten problem, to skąd niby ja, marny użytkownik mam wiedzieć?

A czy to autor aplikacji wykonywał operacja kasowania plików  na Twojej instancji tej aplikacji ?

 

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra, weźcie skończcie z takimi poradami. Nie potraficie pomóc, to idźcie sobie do innego tematu i nie spamujcie.

14 godzin temu, SomeGuy napisał:

Jeśli masz kopię zapasową, to spróbowałbym:

1. usunąć pliki journala 

2. dodać :

 


mongod --dbpath /path/to/db --repair --nojournal

 

 

Zrobiłem kopię i oto wynik komendy:

mongod --dbpath /mnt/vdb1/mongodb --repair --nojournal
2017-11-29T11:38:44.275+0100 [initandlisten] MongoDB starting : pid=4006 port=27017 dbpath=/mnt/vdb1/mongodb 64-bit host=vps431409
2017-11-29T11:38:44.275+0100 [initandlisten] db version v2.6.12
2017-11-29T11:38:44.275+0100 [initandlisten] git version: d73c92b1c85703828b55c2916a5dd4ad46535f6a
2017-11-29T11:38:44.275+0100 [initandlisten] build info: Linux build5.ny.cbi.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2017-11-29T11:38:44.275+0100 [initandlisten] allocator: tcmalloc
2017-11-29T11:38:44.276+0100 [initandlisten] options: { repair: true, storage: { dbPath: "/mnt/vdb1/mongodb", journal: { enabled: false } } }
2017-11-29T11:38:44.283+0100 [initandlisten] repairDatabase mnemosyne
2017-11-29T11:38:44.283+0100 [initandlisten] allocating new ns file /mnt/vdb1/mongodb/_tmp_repairDatabase_0/mnemosyne.ns, filling with zeroes...
2017-11-29T11:38:44.350+0100 [FileAllocator] allocating new datafile /mnt/vdb1/mongodb/_tmp_repairDatabase_0/mnemosyne.0, filling with zeroes...
2017-11-29T11:38:44.351+0100 [FileAllocator] creating directory /mnt/vdb1/mongodb/_tmp_repairDatabase_0/_tmp
2017-11-29T11:38:44.363+0100 [FileAllocator] done allocating datafile /mnt/vdb1/mongodb/_tmp_repairDatabase_0/mnemosyne.0, size: 64MB,  took 0.004 secs
2017-11-29T11:38:44.364+0100 [initandlisten] SEVERE: unable to open file number 8
2017-11-29T11:38:44.365+0100 [initandlisten] mnemosyne.counts Assertion failure n >= 0 && n < static_cast<int>(_files.size()) src/mongo/db/storage/extent_manager.cpp 109
2017-11-29T11:38:44.372+0100 [initandlisten] mnemosyne.counts 0x121df81 0x11bd689 0x11a1bf4 0xf14a5c 0xf14b6f 0xf54e36 0x8b90af 0xe1c7e5 0x76942e 0x76c54e 0x76e907 0x76f53b 0x76fb85 0x76fe59 0x7f31cf5abf45 0x766419
 mongod(_ZN5mongo15printStackTraceERSo+0x21) [0x121df81]
 mongod(_ZN5mongo10logContextEPKc+0x159) [0x11bd689]
 mongod(_ZN5mongo12verifyFailedEPKcS1_j+0x194) [0x11a1bf4]
 mongod(_ZNK5mongo13ExtentManager12_getOpenFileEi+0xcc) [0xf14a5c]
 mongod(_ZNK5mongo13ExtentManager9getExtentERKNS_7DiskLocEb+0x1f) [0xf14b6f]
 mongod(_ZN5mongo12FlatIteratorC1EPKNS_10CollectionERKNS_7DiskLocERKNS_20CollectionScanParams9DirectionE+0xe6) [0xf54e36]
 mongod(_ZNK5mongo10Collection11getIteratorERKNS_7DiskLocEbRKNS_20CollectionScanParams9DirectionE+0x9f) [0x8b90af]
 mongod(_ZN5mongo14repairDatabaseESsbb+0x22e5) [0xe1c7e5]
 mongod(_ZN5mongo11doDBUpgradeERKSsPNS_14DataFileHeaderE+0x5e) [0x76942e]
 mongod() [0x76c54e]
 mongod(_ZN5mongo14_initAndListenEi+0x637) [0x76e907]
 mongod(_ZN5mongo13initAndListenEi+0x1b) [0x76f53b]
 mongod() [0x76fb85]
 mongod(main+0x9) [0x76fe59]
 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f31cf5abf45]
 mongod() [0x766419]
2017-11-29T11:38:44.374+0100 [initandlisten] cleaning up failed repair db: mnemosyne path: /mnt/vdb1/mongodb/_tmp_repairDatabase_0
2017-11-29T11:38:44.385+0100 [initandlisten] exception in initAndListen: 0 assertion src/mongo/db/storage/extent_manager.cpp:109, terminating
2017-11-29T11:38:44.385+0100 [initandlisten] dbexit:
2017-11-29T11:38:44.385+0100 [initandlisten] shutdown: going to close listening sockets...
2017-11-29T11:38:44.385+0100 [initandlisten] shutdown: going to flush diaglog...
2017-11-29T11:38:44.385+0100 [initandlisten] shutdown: going to close sockets...
2017-11-29T11:38:44.386+0100 [initandlisten] shutdown: waiting for fs preallocator...
2017-11-29T11:38:44.386+0100 [initandlisten] shutdown: closing all files...
2017-11-29T11:38:44.386+0100 [initandlisten] closeAllFiles() finished
2017-11-29T11:38:44.386+0100 [initandlisten] shutdown: removing fs lock...
2017-11-29T11:38:44.386+0100 [initandlisten] dbexit: really exiting now

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z forum, wyrażasz zgodę na: Warunki użytkowania, Regulamin, Polityka prywatności.