Зачем делать ошибку mongod мертвой, но subsys заблокирован и Недостаточно свободного места для файлов журнала в Linux?

Я установил mongo-10gen mongo-10gen-server на Linux CentOS-сервер.

Я выполнил шаги Link.

Я настроил /etc/mongod.conf как -

logpath=/var/log/mongo/mongod.log
port=27017
dbpath=/var/lib/mongo

Я установил порт 27017 для mongo в iptables. Чтобы запустить mongo, я использовал команды -

service mongod start and
mongo

Это началось хорошо, но через несколько дней я получаю сообщение об ошибке -

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

Когда я выполняю команду -

service mongod status

Он дает ошибку -

mongod dead but subsys locked

Пожалуйста, помогите мне решить проблему mongod dead, но subsys locked и Недостаточно свободного места для журналов, завершение

Ответ 1

Вы можете добавить следующее в файл конфигурации, который предоставляется при запуске mongod --config mongod.conf

Для MongoDB 3.x (последняя версия)

storage:
   mmapv1:
      smallFiles: true

Для версии 2.6 +

storage:
   smallFiles: true

Для версии 2.4 и менее

smallfiles = true

Затем просто запустите mongod, чтобы принять ваш файл конфигурации (здесь он предполагает, что расположение конфигурации -/etc/mongodb.conf):

mongod -f /etc/mongodb.conf

Документация для параметра smallfiles:

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.

Ответ 2

Запустите mongod экземпляр, используя следующую команду

mongod --dbpath /data/db --smallfiles

Ответ 3

Я следил за официальным руководством по http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

После использования

$sudo service mongod start

Я пошел проверить, успешно ли MongoDB, просмотрев этот журнал:

/var/log/mongodb/mongod.log

Это проблема, которую я нашел:

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

Решение:

В конце файла /etc/mongod.conf я добавил эту строку:

smallfiles = true

После этого я перезапустил службу mongod:

$sudo service mongod restart

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

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

Ответ 4

Для всех, у кого есть эта проблема, несмотря на наличие достаточного пространства для создаваемого файла журнала.

Моя проблема: у меня было достаточно места для создаваемого файла журнала. Монго дал мне сообщение об ошибке. Я использовал команду kill, чтобы убить процесс mongod, который, в свою очередь, дал мне вопрос о субах. Вот что сработало для меня:

Перейдите к /var/lock/subsys и удалите файл mongod

теперь service mongod stop, а затем service mongod start

Начнется mongo shell сейчас, и все работает нормально.

Ответ 5

первый

cd /usr/local/src/mongo/bin/<br>

затем

./mongod --dbpath /usr/local/src/mongo/data/db/ --smallfiles