Скрипт для запуску в ubuntu для mongodb


11

Я новачок у Linux та mongodb. Я вже встановив mongodb на ubuntu, але хочу запустити ще один екземпляр на іншому порту. Як я зрозумів з інших питань та форумів, має бути сценарій на початку. /programming/7300109/ubuntu-start-upstart-second-instance-of-mongodb

Але я не можу знайти або знайти скрипт для запуску на своєму сервері. Якщо я створити сценарій для запуску, де мені його знайти, щоб почати службу.

чи є інший правильний і простий спосіб запустити інший примірник mongodb на тому ж сервері, але інший порт.

Відповіді:


8

Ви працюєте зі сховища 10gen або з репо-версії Debian / Ubuntu за замовчуванням? Я рекомендую використовувати офіційний сховище 10gen.

Перевірте це посилання - [10gen MongoDB How-To Install on Ubuntu:] http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ . Найкраще видалити попередню установку mongodb до цієї зміни, яка також вимагатиме змінити джерело вашого сховища (у /etc/apt/source.list), але це також детально описано за посиланням вище. Рекомендую скористатися швидким запуском над sysvinit, а оброблене викладено в "Як робити".

При налаштуванні 10gen Ubuntu файл конфігурації знаходиться в /etc/mongodb.conf.

Існує декілька способів, за допомогою яких ви можете запустити окремий процес mongod, а просто запустити його із кліпу -

sudo -u mongodb mongod --dbpath /var/tmp/mongotest --logpath /var/tmp/mongotest_log --port 3001 &

який буде виробляти (з використанням 'ps')

mongodb   2210  3.3  1.5 259012 15300 pts/0    Dl   11:48   0:00 mongod --dbpath /var/tmp/mongotest --logpath /var/tmp/mongotest_log --port 3001

і ви можете підключитися через cli -> mongod --port 3001

Ще один спосіб створити копію /etc/mongodb.conf -

sudo cp /etc/mongodb.conf /etc/mongodbnew.conf and editing the following lines in the new file - 


# mongodbnew.conf

dbpath=/var/lib/mongodbnew

#where to log
logpath=/var/log/mongodb/mongodbnew.log

port = 27018

Я змінив dbpath (де зберігаються файли mongodb) з / var / lib / mongodb на / var / lib / mongodbnew; шлях журналу змінився з mongodb.log на mongodbnew.log, а порт змінився зі стандартних значень 27017 на 27018 (вам також доведеться видалити #, щоб коментувати рядок).

Я також змінив верхній рядок, щоб відобразити нову назву цього файлу конфігурації.

Вам також доведеться створити каталог даних, оскільки він не буде існувати, і без нього процес mongod не запуститься і забезпечить власником і групою mongodb -

sudo mkdir /var/lib/mongodbnew
sudo chown -R mongodb:mongodb mongodbnew/

Крім того, створіть та змініть дозволи вашого файлу журналу -

sudo touch /var/log/mongodb/mongodbnew.log && sudo chown mongodb:mongodb /var/log/mongodb/mongodbnew.log

Щоб розпочати новий процес монгода (на задньому плані) із кліпу, введіть

sudo -u mongodb /usr/bin/mongod --config /etc/mongodbnew.conf &

які надсилають на екран наступне:

"весь вихід буде: /var/log/mongodb/mongodbnew.log"

Переконайтеся, що процеси mongod працюють з "ps" -

sysadmin@ubuntu:/var/lib$ ps auwx | grep mongo | egrep -v 'grep|sudo'
mongodb    921 11.3  1.5 627672 15608 ?        Ssl  10:56   4:30 /usr/bin/mongod --config /etc/mongodb.conf
mongodb   2137  7.8  1.5 627672 15880 pts/0    Sl   11:36   0:00 /usr/bin/mongod --config /etc/mongodbnew.conf

Щоб переконатися, що ви можете підключитися, запустіть оболонку Mongo -

$ mongo --port 27018
MongoDB shell version: 2.0.5
connecting to: 127.0.0.1:27018/test
> 

Тепер у lsof ви маєте побачити два ваші процеси монгоду, початковий пов'язаний з 27017 та новий пов'язаний з 27018.

$ sudo lsof -i :27017
COMMAND PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mongod  921 mongodb    6u  IPv4   9066      0t0  TCP *:27017 (LISTEN)
sysadmin@ubuntu:/var/lib$ sudo lsof -i :27018
COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mongod  2137 mongodb    6r  IPv4  11923      0t0  TCP *:27018 (LISTEN)

Щоб переконатись у запуску двох процесів, скопіюйте оригінальний файл конфігурації init -

sudo cp /etc/init/mongodb.conf /etc/init/mongodbnew.conf

що має призвести до двох файлів, таких як -

$ ls -lart /etc/init/mongo*
-rw-r--r-- 1 root root 536 May  8 15:51 /etc/init/mongodb.conf
-rw-r--r-- 1 root root 554 Jun 11 11:43 /etc/init/mongodbnew.conf

Відредагуйте новий файл mongodbnew.conf, використовуючи vi або все, що ви хочете виглядати так -


## Ubuntu upstart file at /etc/init/mongodbnew.conf

limit nofile 20000 20000

kill timeout 300 # wait 300s between SIGTERM and SIGKILL.

pre-start script
    mkdir -p /var/lib/mongodbnew/
    mkdir -p /var/log/mongodbnew/
end script

start on runlevel [2345]

зупинка на пробігу [06]

script
  ENABLE_MONGODB="yes"
  if [ -f /etc/default/mongodbnew ]; then . /etc/default/mongodbnew; fi
  if [ "x$ENABLE_MONGODB" = "xyes" ]; then exec start-stop-daemon --start --quiet --chuid mongodb --exec                /usr/bin/mongod -- --config /etc/mongodbnew.conf; fi

кінцевий сценарій

Я перевірив це на Ubuntu 12.04, і, здається, він працює добре, в тому числі після перезавантаження. Я, очевидно, не працював у виробництві. Вибачте, якщо там є якісь помилки, але є багато інформації, і я, можливо, щось пропустив.

Нарешті, ось посилання на набори Replica, яке може допомогти вам, оскільки це наводить приклади запуску декількох екземплярів mongod із кліпу - http://www.mongodb.org/display/DOCS/Replica+Set+Tutorial .


Посилання для install-mongodb-on-debian-or-ubuntu-linux було змінено на docs.mongodb.org/manual/tutorial/install-mongodb-on-debian та docs.mongodb.org/manual/tutorial/install-mongodb -on-ubuntu .
Фернандо Кош

2

У мене виникла проблема із наведеною вище відповіддю, коли демон-стоп-старт не починає новий процес з такою ж назвою не один раз. Однак є --nameаргумент, який дозволяє вам змінити рядок у своєму початковому скрипті, /etc/init/щоб включити нове ім'я, щоб воно почалося. Щось на зразок цього:

if [ "x$ENABLE_MONGODB" = "xyes" ]; then exec start-stop-daemon --start --quiet --chuid mongodb --name mongodb-shard2 --exec /usr/bin/mongod -- --config /etc/mongodb-shard2.conf; fi

У цьому випадку --nameаргумент робить цей екземпляр унікальним і дозволяє йому запускатись окремо від інших екземплярів mongod.


0

upstart сценарії знайдені в /etc/init/


thnx, є mongodb.conf, але це типовий конф-файл для типового запущеного екземпляра

Я щойно подивився на мій mongodb.conf він джерела / etc / default / mongodb, мабуть, для конфігурації, а потім запускає mongodb, використовуючи start-stop-демон

Ви можете скопіювати цей файл і змінити команду для запуску mongodb з іншого порту. ви, ймовірно, хочете вказати абсолютно новий конфігураційний файл, хоча ви можете змінювати файли журналів тощо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.