Хотя я купил APC, чтобы обойти эту проблему, я выделил время, чтобы проверить, можно ли её решить изменением конфигурации программного обеспечения.
Я заметил, что используется версия Mongod v.2.4.10 (от 4 апреля 2014 года), которая поддерживает журналирование, но экземпляр Unify/пользователь, запускающий Mongod, похоже, не включил поддержку журналирования.
При запуске процесса mongod параметр журналирования не используется (ps -aux | grep mong)
bin/mongod --dbpath /usr/lib/unifi/data/db --port 27117 --unixSocketPrefix /usr/lib/unifi/run --noprealloc --nohttpinterface --smallfiles --bind_ip 127.0.0.1
Если заглянуть в директорию базы данных /usr/lib/unifi/data/db, то там тоже нет файлов журналирования.
После добавления параметра --journal в /srv/unifi/data/system.properties...
< SNIP >
# unifi.throughput.port=6789
#Sat Dec 16 00:00:00 UTC 2017is_default=falseunifi.db.extraargs=--journal
uuid=abcd1234-4ef7-5ac6-af13-12345678a12c
< /SNIP >
… перезапустив сервис командами "service unifi stop", "service unifi start" и подождав минуту, я увидел, что параметр добавился:
bin/mongod --dbpath /usr/lib/unifi/data/db --port 27117 --unixSocketPrefix /usr/lib/unifi/run --noprealloc --nohttpinterface --smallfiles --journal --bind_ip 127.0.0.1
В папке базы данных появился каталог "journal":
root@CloudKey:/usr/lib/unifi/data/db/journal# ls -l
total 393220
-rw------- 1 unifi unifi 134217728 Dec 15 20:05 j._0
-rw------- 1 unifi unifi 88 Dec 15 20:05 lsn
-rw------- 1 unifi unifi 134217728 Dec 14 20:44 prealloc.1
-rw------- 1 unifi unifi 134217728 Dec 14 20:44 prealloc.2
Теперь Mongod запущен с поддержкой журналирования. Похоже, что изначально оно не было включено для экземпляра mongod, запущенного пользователем unifi.
Почему журналирование отключено? Это так задумано (unifi)?
Сохраняются ли изменения в system.properties после перезагрузки? Если нет, как гарантировать, что изменения сохранятся корректно и поддерживаются системой?