Стартовая настройка MongoDB

MongoDB

Разработка MongoDB началась в октябре 2007 года компанией 10gen. Первый общедоступный релиз состоялся в августе 2009. Разработка ведется по принципу, применяемому при разработке ядра Linux: перед запуском новой линейки версий ведётся специальная тестовая линейка. Тестовая линейка обладает нечетной нумерацией (вторая цифра) и помечается как «нестабильная» (англ. unstable), рабочая линейка, соответственно, получает четные номера и статус «стабильной» (англ. stable).Действующей версией MongoDB является 3.4, она общедоступна и готова к использованию. Скачать её можно на официальном сейте проекта mongodb.com.

MongoDB работает как обычная программа. Исполняемый файл можно запустить из командной строки, используя команду mongod и указав параметры. MongoDB можно запустить и как сервис Windows.

В следующих примерах предполагается, что каталог, содержащий процесс mongod, находиться в системных путях. Процесс mongod это первичный процесс базы даннах, который выполняется на отдельном сервере. Mongos обеспечивает согласованный интервейс MongoDB эквивалентный mongod с точки зрения клиента. Бинарный файл mongo предоставляет административную оболочку. В данной статье мы рассматриваем процесс mongod; Однако некоторые части этого документа могут быть применимы экземпляры mongos.

Запуск процесса mongod

По умолчанию MongoDB слушает соединения на 27017 порту, и хранит данные в разделе /data/db.

На операционной системе Windows этот путь расположен на диске их которого вы запускаете MongoDB. Например, если вы не укажите путь -dbpath запуск сервера MongoDB в разделе C:\ будет хранить се данные в С:\data\db.

Для запуска MongoDB с настройками по умолчанию, необходимо ввести в командную оболочку следующую команду:

mongod

Если необходимо, чтобы mongod хранил файлы данных по пути отличному от /data/db, можно указать dbPath. Важно отметить что путь указанный в DbPath должен существовать до запуска mongod. Пример команды DbPath:

mongod --dbpath /srv/mongodb/

Лишь один процесс может слушать порт в один момент времени, потому если вы запускаете несколько процессов mongod на одной машине или ипользуете другие процессы которые уже заняли этот порт вы должны назначить каждому процессу отдельный порт. Чтобы указать порт для mongod используйте параметр -port в командной строке. Например следующая команда будет прослушивать 12345 порт:

mongod --port 12345

Рекомендуется использовать стандартный порт, для избегания конфликтов.

Запуск mongod как Daemon

Для запуска процесса mongod как daemon, и написать ответ в лог-файл, используйте --fork и --logpath опции. Создайте директорию для хранения журнала; кстати mongod сам создат файл журнала если он не существует.

Данная команда запускает mongod как daemon и записывает результаты в журнал рассположенный в /var/log/mongodb.log

mongod --fork --logpath /var/log/mongodb.log

Дополнительные параметры конфигурации

Обзор общих конфигураций и развертываний для общих случаев использования см. В разделе «Настройка базы данных во время выполнения».

Остановка процессов mongod

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

Выключайте mongod из оболочки mongo с помощью метода db.shutdownServer () следующим образом:

use admin

db.shutdownServer()

Для систем с включенной авторизацией пользователи могут использовать db.shutdownServer () только при входе от имени администратора или через интерфейс localhost в системах без аутентификации.

В командной строке Linux выключение mongodb выполняется с помощью опции -shutdown:

mongod --shutdown

При запуске экземпляра mongod в интерактивном режиме нажмите Control+C, чтобы выполнить чистое завершение работы.

В командной строке Linux можно отключить mongod с определенным ID, используя одну из следующих команд:

kill <mongod process ID>

kill -2 <mongod process ID>

Внимание: Никогда не используйте kill -9 (он же SIGKILL) для завершения экземпляра mongod.

Остановка набора реплик

Если mongod является основным в наборе реплик, процесс завершения для данного экземпляра mongod имеет следующие шаги:

1. Проверка актуальности вторичных данных.

2. Если никакие вторичные данные не находится в пределах 10 секунд от первичных, mongod вернет сообщение, что он не будет закрыт. Вы можете передать команде shutdown аргумент timeoutSecs, чтобы дождаться, когда вторичное значение будет достигнуто.

3. Если в течение 10 секунд после первичного объекта есть вторичный, первичная команда уйдет в отставку, дождитесь пока установится вторичный объект.

4. После шестидесяти секунд после того как вторичный объект достигнет максимума, первичный отключится.

Если нет вторичных данных, и вы хотите чтобы первичный файл был выключен, выполните команду shutdown с аргументом force, как в следующей операции оболочки mongo:

db.adminCommand({shutdown : 1, force : true})

Чтобы продолжить проверку второстепенных пользователей за указанное количество секунд, если ни один из них не обновлен сразу, используйте shutdown с аргументом timeoutSecs. MongoDB будет продолжать проверять вторичные ресурсы за указанное количество секунд, если они не будут обновлены немедленно. Если второстепенный объект догонит первичный в течение отведенного времени, первичный будет закрыт. Если второстипенные объекты не успевают, первичный закрыт не будет.

Следующая команда timeoutSecs с параметром 5 произведет выключение через пять секунд:

db.adminCommand({shutdown : 1, timeoutSecs : 5})

В качестве альтернативы вы можете использовать аргумент timeoutSecs с методом db.shutdownServer ():

db.shutdownServer({timeoutSecs : 5})