GNU/Linux >> Znalost Linux >  >> Linux

Proč se chyba mongod mrtvý, ale subsys uzamčený a nedostatek volného místa pro soubory žurnálu v Linuxu?

Následující můžete přidat do konfiguračního souboru poskytnutého při spuštění mongod --config mongod.conf

Pro MongoDB 3.x (nejnovější verze)

storage:
   mmapv1:
      smallFiles: true

Pro verzi 2.6+

storage:
   smallFiles: true

Pro verzi 2.4 a méně

smallfiles = true

Pak stačí spustit mongod, abyste přijali váš konfigurační soubor (zde se předpokládá, že umístění konfigurace je /etc/mongodb.conf ):

mongod -f /etc/mongodb.conf

Dokumentace pro malé soubory parametr:

Set to true to modify MongoDB to use a smaller default data file size. 
Specifically, smallfiles reduces the initial size for data files and
limits them to 512 megabytes. The smallfiles setting also reduces the
size of each journal files from 1 gigabyte to 128 megabytes.

Začněte mongod instance pomocí následujícího příkazu

mongod --dbpath /data/db --smallfiles

Postupoval jsem podle oficiálního průvodce na http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

Po použití

$sudo service mongod start

Šel jsem ověřit, zda se MongoDB úspěšně spustil kontrolou tohoto protokolu:

/var/log/mongodb/mongod.log

Toto je problém, který jsem našel:

2014-11-11T12:54:05.808-0500 [initandlisten] ERROR: Insufficient free space for journal files
2014-11-11T12:54:05.808-0500 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
2014-11-11T12:54:05.808-0500 [initandlisten]
2014-11-11T12:54:05.808-0500 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
2014-11-11T12:54:05.808-0500 [initandlisten] dbexit:
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to close listening sockets...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to flush diaglog...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to close sockets...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: waiting for fs preallocator...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: lock for final commit...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: final commit...
2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: closing all files...
2014-11-11T12:54:05.808-0500 [initandlisten] closeAllFiles() finished
2014-11-11T12:54:05.808-0500 [initandlisten] journalCleanup...
2014-11-11T12:54:05.808-0500 [initandlisten] removeJournalFiles
2014-11-11T12:54:05.814-0500 [initandlisten] shutdown: removing fs lock...
2014-11-11T12:54:05.814-0500 [initandlisten] dbexit: really exiting now

Řešení:

Na konec souboru /etc/mongod.conf jsem přidal tento řádek:

smallfiles = true

Poté jsem restartoval službu mongod:

$sudo service mongod restart

Když jsem pak šel zkontrolovat protokol, uvědomil jsem si, že je vše perfektní, a problém byl vyřešen:

2014-11-11T22:32:20.544-0500 ***** SERVER RESTARTED *****
2014-11-11T22:32:20.552-0500 [initandlisten] MongoDB starting : pid=5200 port=27017 dbpath=/var/lib/mongodb 64-bit host=jaimemontoya-VirtualBox
2014-11-11T22:32:20.552-0500 [initandlisten] db version v2.6.5
2014-11-11T22:32:20.552-0500 [initandlisten] git version: e99d4fcb4279c0279796f237aa92fe3b64560bf6
2014-11-11T22:32:20.552-0500 [initandlisten] build info: Linux build8.nj1.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
2014-11-11T22:32:20.552-0500 [initandlisten] allocator: tcmalloc
2014-11-11T22:32:20.552-0500 [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1" }, storage: { dbPath: "/var/lib/mongodb", smallFiles: true }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2014-11-11T22:32:20.564-0500 [initandlisten] journal dir=/var/lib/mongodb/journal
2014-11-11T22:32:20.564-0500 [initandlisten] recover : no journal files present, no recovery needed
2014-11-11T22:32:20.738-0500 [initandlisten] waiting for connections on port 27017
2014-11-11T22:33:20.748-0500 [clientcursormon] mem (MB) res:36 virt:245
2014-11-11T22:33:20.748-0500 [clientcursormon]  mapped (incl journal view):64
2014-11-11T22:33:20.748-0500 [clientcursormon]  connections:0

Linux
  1. 7 tipů pro příkazový řádek Linuxu pro úsporu místa v souborech médií

  2. Proč získáte cp:vynechání chyby adresáře v Linuxu a jak to vyřešit

  3. Linux – získávání souborů pro aktuální datum v Linuxu?

  1. DistroTest – Testujte operační systémy Linux a Unix online zdarma

  2. Použijte Najít a najít k vyhledání souborů v Linuxu

  3. 5 bezplatný a otevřený software pro správu školy pro Linux

  1. Opravit chybu Exim-exim mrtvý, ale subsys uzamčen

  2. „docker mrtvý, ale subsys uzamčen“ – chyba při spouštění dockeru

  3. Jak auditovat změny souborů a spouštění souborů v Linuxu