Перезапуск / автоматическое восстановление Mongodb в производственной среде

Я хочу иметь сценарий /etc/init.d, который более надежно запускает Mongodb, даже если он сильно упал - он должен попытаться выполнить автоматическое восстановление, если система не работает. в заблокированном состоянии.

Да, я мог бы написать это сам, но я думаю, что кто-то там уже должен был это сделать.

Я заметил, что после резкого отказа сервера Mongodb находится в состоянии, когда он не перезапускается с помощью сценария /etc/init.d/mongod. Очевидно, что файл (ы) блокировки необходимо удалить, и его нужно запустить с параметром --repair и сначала исправить --dbpath, прежде чем его можно будет успешно перезапустить. В некоторых случаях также необходимо изменить владельца файлов db на пользователя, который запускает mongodb. Еще одна проблема заключается в том, что стандартный сценарий /etc/init.d/mongod не сообщает о сбое в этой ситуации, а скорее радостно и неправильно возвращает статус «ОК», сообщая, что Mongod был запущен, хотя это не так.

$ sudo /etc/init.d/mongod start
Starting mongod: forked process: 9220
all output going to: /data/mongo/log/mongod.log
                                                           [  OK  ]
$ sudo /etc/init.d/mongod status
mongod dead but subsys locked

Операционная система - CentOS или Fedora.

Кто-нибудь модифицировал / etc / init.d или указатель на такие сценарии, которые автоматически пытаются восстановить в этой ситуации? Или есть другой инструмент, который функционирует как сторожевой пес для Mongod?

Есть мнения о том, почему это может быть плохой идеей попробовать чтобы автоматически восстановить mongodb?

$ sudo /etc/init.d/mongod status
mongod dead but subsys locked

$ sudo ls -l /var/lib/mongo/mongod.lock 
-rw-r--r--. 1 mongod mongod 5 Nov 19 11:52 /var/lib/mongo/mongod.lock


$ sudo tail -50 /data/mongo/log/mongod.log
************** 
old lock file: /data/mongo/db/mongod.lock.  probably means unclean shutdown
recommend removing file and running --repair
see: http://dochub.mongodb.org/core/repair for more information
*************
Sat Nov 19 11:55:44 exception in initAndListen std::exception: old lock file, terminating
Sat Nov 19 11:55:44 dbexit: 

Sat Nov 19 11:55:44 shutdown: going to close listening sockets...
Sat Nov 19 11:55:44 shutdown: going to flush oplog...
Sat Nov 19 11:55:44 shutdown: going to close sockets...
Sat Nov 19 11:55:44 shutdown: waiting for fs preallocator...
Sat Nov 19 11:55:44 shutdown: closing all files...
Sat Nov 19 11:55:44     closeAllFiles() finished

Sat Nov 19 11:55:44 dbexit: really exiting now
12
задан Tilo 26 November 2011 в 04:47
поделиться