Tập lệnh khởi động trong ubfox cho mongodb


11

Tôi mới sử dụng linux và mongodb. Tôi đã cài đặt mongodb trên Ubuntu nhưng tôi muốn chạy thêm một phiên bản khác trên cổng khác. Theo tôi hiểu từ các câu hỏi và diễn đàn khác, phải có kịch bản mới nhất. /programming/7300109/ubfox-start-upstart-second-instance-of-mongodb

Nhưng tôi không thể tìm thấy hoặc định vị tập lệnh khởi động trên máy chủ của mình. Nếu tôi tạo tập lệnh khởi động, tôi nên tìm tập lệnh này ở đâu để bắt đầu như một dịch vụ.

hoặc có bất kỳ cách thích hợp và dễ dàng nào khác để bắt đầu một phiên bản khác của mongodb trên cùng một máy chủ nhưng cổng khác nhau.

Câu trả lời:


8

Bạn đang chạy từ kho lưu trữ 10gen hoặc từ repo Debian / Ubuntu mặc định? Tôi khuyên bạn nên sử dụng kho lưu trữ 10gen chính thức.

Kiểm tra liên kết này - [10gen MongoDB Cách cài đặt trên Ubuntu:] http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ub Ubuntu / . Tốt nhất là gỡ cài đặt mongodb trước đó trước khi thay đổi này, điều này cũng sẽ yêu cầu bạn sửa đổi nguồn kho lưu trữ của bạn (trong /etc/apt/source.list) nhưng điều này cũng được nêu chi tiết trong liên kết ở trên. Tôi khuyên bạn nên sử dụng upstart over sysvinit và việc xử lý được nêu trong Hướng dẫn.

Với thiết lập Ubuntu 10gen, tệp cấu hình nằm trong /etc/mongodb.conf.

Có một số cách mà bạn có thể chạy một quy trình mongod riêng biệt, một cách đơn giản là chạy nó từ cli -

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

cái nào sẽ tạo ra (sử dụng '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

và bạn có thể kết nối qua cli -> mongod --port 3001

Một cách khác là tạo một bản sao của /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

Tôi đã thay đổi dbpath (nơi lưu trữ các tệp mongodb) từ / var / lib / mongodb thành / var / lib / mongodbnew; đường dẫn nhật ký đã thay đổi từ mongodb.log thành mongodbnew.log và cổng đã thay đổi từ mặc định 27017 thành 27018 (bạn cũng sẽ phải xóa # để bỏ dòng).

Tôi cũng đã thay đổi dòng trên cùng để phản ánh tên mới của tệp cấu hình này.

Bạn cũng sẽ phải tạo thư mục dữ liệu vì nó sẽ không tồn tại và không có nó, quá trình mongod sẽ không bắt đầu và đảm bảo rằng chủ sở hữu và nhóm là mongodb -

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

Ngoài ra, tạo và thay đổi các bản phát hành của tệp nhật ký của bạn -

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

Để bắt đầu quá trình mongod mới của bạn (trong nền) từ cli, hãy nhập

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

gửi phần sau đến màn hình -

"tất cả đầu ra sẽ đến: /var/log/mongodb/mongodbnew.log"

Kiểm tra xem các quy trình mongod đang chạy với "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

Để xác minh rằng bạn có thể kết nối, hãy chạy trình bao Mongo -

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

Với lsof, bây giờ bạn sẽ thấy hai quy trình mongod của mình, ràng buộc ban đầu là 27017 và quy trình mới được ràng buộc đến 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)

Để đảm bảo hai quy trình chạy khi khởi động, hãy sao chép tệp cấu hình init gốc -

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

sẽ dẫn đến hai tệp như -

$ 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

Chỉnh sửa tệp mongodbnew.conf mới bằng vi hoặc bất cứ thứ gì bạn thích trông như thế này -


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

dừng lại trên runlevel [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

kịch bản kết thúc

Tôi đã thử nghiệm điều này trên Ubuntu 12.04 và nó có vẻ hoạt động tốt, kể cả sau khi khởi động lại. Tôi đã không chạy nó trong sản xuất rõ ràng. Xin lỗi, nếu có bất kỳ typo nào ở trên nhưng có rất nhiều thông tin và tôi có thể đã bỏ lỡ điều gì đó.

Cuối cùng, đây là một liên kết trên Bộ bản sao có thể giúp bạn vì nó đã xuất hiện các ví dụ về việc bắt đầu nhiều phiên bản mongod từ cli - http://www.mongodb.org/display/DOCS/Replica+set+Tutorial .


Liên kết cho install-mongodb-on-debian-hoặc- ubfox -linux đã được đổi thành docs.mongodb.org/manual/tutorial/install-mongodb-on-debiandocs.mongodb.org/manual/tutorial/install-mongodb -on-ubfox .
Fernando Kosh

2

Tôi gặp phải một vấn đề với câu trả lời ở trên trong đó stop-start-daemon không bắt đầu một quy trình mới có cùng tên nhiều lần. Tuy nhiên, có một --nameđối số cho phép bạn thay đổi dòng trong tập lệnh khởi động của bạn /etc/init/để bao gồm một tên mới để nó sẽ bắt đầu. Một cái gì đó như thế này:

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

Trong trường hợp này, --nameđối số làm cho trường hợp này là duy nhất và cho phép nó bắt đầu tách biệt với các thể hiện mongod khác.


0

upstart kịch bản được tìm thấy trong /etc/init/


Thnx, có một mongodb.conf nhưng nó là tệp conf mặc định cho phiên bản chạy mặc định

Tôi vừa mới có một cái nhìn tại mongodb.conf của tôi nó nguồn / etc / default / MongoDB lẽ cho cấu hình và sau đó bắt đầu MongoDB sử dụng start-stop-daemon

bạn có thể sao chép tệp này và sửa đổi lệnh để bắt đầu mongodb với một cổng khác. bạn có thể muốn chỉ định một tệp cấu hình hoàn toàn mới mặc dù vậy bạn có thể thay đổi các tệp nhật ký, v.v.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.