Mongodb için Ubuntu'da Komut Dosyası Çalıştır


11

Linux ve mongodb için yeniyim. Ben zaten ubuntu mongodb yükledim ama farklı bağlantı noktasında bir örnek daha çalıştırmak istiyorum. Diğer sorulardan ve forumlardan da anladığım gibi, uptart script olmalı. /programming/7300109/ubuntu-start-upstart-second-instance-of-mongodb

Ancak sunucumda bir uptart betiği bulamıyorum veya bulamıyorum. Bir uptart betiği oluşturursam, bir hizmet olarak başlamak için nerede bulacağım.

veya aynı sunucuda ancak farklı bağlantı noktasında başka bir mongodb örneğini başlatmanın başka uygun ve kolay bir yolu var mı?

Yanıtlar:


8

10gen deposundan mı yoksa varsayılan Debian / Ubuntu deposundan mı çalışıyorsunuz? Resmi 10gen deposunu kullanmanızı tavsiye ederim.

Bu bağlantıyı kontrol edin - [10gen MongoDB Ubuntu'ya Nasıl Kurulur:] http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ . Bu değişiklikten önce önceki mongodb kurulumunu kaldırmak en iyisidir, bu da havuz kaynağınızı (/etc/apt/source.list içinde) değiştirmenizi gerektirir, ancak bu aynı zamanda yukarıdaki bağlantıda ayrıntılı olarak açıklanmaktadır. Ben start up sysvinit üzerinden kullanmanızı öneririm ve işlenen Nasıl Yapılır bölümünde özetlenmiştir.

10gen Ubuntu kurulumu ile yapılandırma dosyası /etc/mongodb.conf dizinindedir.

Ayrı bir mongod işlemini çalıştırmanın birkaç yolu vardır, biri sadece klipten çalıştırır -

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

üretecek ('ps' kullanarak)

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

ve cli -> mongod --port 3001 üzerinden bağlanabilirsiniz

Başka bir yol /etc/mongodb.conf dosyasının bir kopyasını oluşturmaktır -

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

/ Var / lib / mongodb / var / lib / mongodbnew için (mongodb dosyaları depolanır) dbpath değiştirdim; günlük yolu mongodb.log yerine mongodbnew.log olarak değiştirildi ve bağlantı noktası varsayılan 27017'den 27018'e değiştirildi (ayrıca satırı kaldırmak için # öğesini de kaldırmanız gerekir).

Üst satırda da bu yapılandırma dosyasının yeni adını yansıtacak şekilde değiştirdim.

Veri dizinini de oluşturmanız gerekecek çünkü mevcut olmayacak ve onsuz mongod işlemi başlamayacak ve sahibin ve grubun mongodb olduğundan emin olmalısınız.

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

Buna ek olarak, günlük dosyanızın isteklerini oluşturun ve değiştirin -

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

Yeni mongod işleminize (arka planda) cli'den başlamak için şunu yazın

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

ki bunlar aşağıdakileri ekrana gönderir -

"tüm çıktılar şu adrese gidiyor: /var/log/mongodb/mongodbnew.log"

Moğod süreçlerinin "ps" ile çalışıp çalışmadığını kontrol edin -

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

Bağlanabildiğinizi doğrulamak için Mongo kabuğunu çalıştırın -

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

Lsof ile, orijinal 27017'ye ve yeni 27018'e bağlı iki mongod işleminizi görmelisiniz.

$ 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)

İki işlemin başlangıçta çalıştığından emin olmak için orijinal init yapılandırma dosyasını kopyalayın -

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

bu iki dosya ile sonuçlanmalıdır:

$ 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

Vi veya böyle görünmesini istediğiniz her şeyi kullanarak yeni mongodbnew.conf dosyasını düzenleyin -


## 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]

çalışma seviyesinde dur [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

komut dosyasını bitir

Bunu Ubuntu 12.04'te test ettim ve bir yeniden başlatmadan sonra da dahil olmak üzere iyi çalışıyor gibi görünüyor. Açıkçası üretimde çalıştırmadım. Özür dilerim, yukarıda herhangi bir yazım hatası varsa, ancak çok fazla bilgi varsa ve bir şey kaçırmış olabilirim.

- Son olarak, burada cli birden mongod örneğini başlatma hakkında örnekler geldi size yardımcı olabilecek Kopya Kümeler Üzerinde bir bağlantı var http://www.mongodb.org/display/DOCS/Replica+Set+Tutorial .


İnstall-mongodb-on-debian-veya-ubuntu-linux bağlantısı docs.mongodb.org/manual/tutorial/install-mongodb-on-debian ve docs.mongodb.org/manual/tutorial/install-mongodb olarak değiştirildi -on-ubuntu .
Fernando Kosh

2

Stop-start-daemon uygulamasının aynı ada sahip bir kereden fazla yeni bir işleme başlamadığı yukarıdaki cevapla ilgili bir sorunla karşılaştım. Ancak, --nameuptart komut dosyanızdaki satırı /etc/init/yeni bir ad içerecek şekilde değiştirmenize izin veren bir argüman vardır, böylece başlayacaktır. Bunun gibi bir şey:

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

Bu durumda, --nameargüman bu örneği benzersiz kılar ve diğer mongod örneklerinden ayrı olarak başlamasına izin verir.


0

upstart komut dosyaları şurada bulunur: /etc/init/


thnx, bir mongodb.conf var ama varsayılan çalışan örnek için varsayılan conf dosyası

Ben sadece yapılandırma için muhtemelen mongodb.conf kaynakları / etc / default / mongodb bir göz vardı ve sonra start-stop-daemon kullanarak mongodb başlar

bu dosyayı kopyalayabilir ve mongodb'u farklı bir bağlantı noktasıyla başlatma komutunu değiştirebilirsiniz. günlük dosyalarını değiştirebilmeniz için büyük olasılıkla tamamen yeni bir yapılandırma dosyası belirtmek istersiniz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.