КС корректно работает с 3.x версией БД mongodb (по крайней мере проблем выявлено не было), в целом это более свежая версия, и она должна работать оптимальнее версии 2.4. Но по умолчанию она у нас не ставиться и сама не обновляется. Для обновления на работающем сервере БД Mongodb до 3.6, можно пользоваться следующей инструкцией.
srvadmin@ubuntu1404:~$ dpkg -l|grep mongo #обратить внимание на версию: 2.4 ii mongodb-10gen 2.4.14 amd64 An object/document-oriented database srvadmin@ubuntu1404:~$ dpkg -l|grep artix #обратить внимание на версию пакета: 3.0.12 или старше, если версия ниже, нужно доставить (надеюсь это возможно), для этого нужно: 1. обновить КС до последних версий: sudo aptitude install artixcs artix-cs-web 2. "обновить" подкложку КС вот такой страшной командой: sudo aptitude install -o Dpkg::Options::="--force-overwrite" artix-cashserver-config=3.0.12 virgo-tomcat-server virgo303-dblog- virgo-dblog virgo361-spring artix-cashserver2-config- 3. Во время обновления подложки, может спроситься пароль от mysql для root, в целом можно оставить root, ни на что повлиять не должно. после обновления, возможно нужно будет стартануть virgo ii artix-cashserver-config 3.0.12 all Setting and packages for Artix:Cashserver 3.x srvadmin@ubuntu1404:~$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 srvadmin@ubuntu1404:~$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list srvadmin@ubuntu1404:~$ sudo stop virgo srvadmin@ubuntu1404:~$ export LC_ALL="en_US.UTF-8" srvadmin@ubuntu1404:~$ mongodump srvadmin@ubuntu1404:~$ sudo stop mongodb srvadmin@ubuntu1404:~$ sudo mv /var/lib/mongodb/ /var/lib/mongodb_data_2.4 srvadmin@ubuntu1404:~$ sudo apt-get update srvadmin@ubuntu1404:~$ sudo apt-get install aptitude srvadmin@ubuntu1404:~$ sudo aptitude install mongodb-org mongodb-10gen- cashserver-default-data- srvadmin@ubuntu1404:~$ sudo aptitude purge mongodb-10gen srvadmin@ubuntu1404:~$ mongorestore srvadmin@ubuntu1404:~$ sudo service virgo start #Проверить, что КС стартанул и корректно работает. Может быть проблема с индексами в sale*Status и dict*Status, в данном случае коллекции со статусами можно просто удалить: mongo artixcs --eval 'db.getCollectionNames().forEach(function(collName){if(collName.startsWith("sale") || collName.startsWith("dict")){print("Remove: "+collName);db.getCollection(collName).drop();}});'
На что после всех этих операций обратить внимание:
- Дамп БД останется в текущем каталоге, если он не нужен, удалить его, или переместить
- На диске останутся файлы БД mongodb 2.4 (в каталоге /var/lib/mongodb_data_2.4) - также удалить или переместить
- С 3-ей версии демон Mongodb называется mongod, логи также располагаются в файле /var/log/mongod.log
- Файл конфигурации в yaml-формате, с отступами и комментариями, имейте это ввиду
- Имеет смысл посмотреть на параметр https://docs.mongodb.com/v3.6/reference/configuration-options/#storage.wiredTiger.engineConfig.cacheSizeGB - и задать его для MongoDB в размере 15-20% от размера RAM
Также имеет смысл настроить подрезку файла лога для mongod, сделать это можно след. скриптом (скопировать и вставить в консоль):
sudo echo test; cat <<EOF |sudo tee /etc/logrotate.d/mongod /var/log/mongodb/mongod.log { copytruncate daily missingok rotate 30 compress notifempty dateext } EOF