Назад | Перейти на главную страницу

Установка нескольких версий mongoDB на одном сервере

Я установил версию mongoDB 2.4 и хотел бы сравнить ее с недавно выпущенной версией 2.6.

Я хочу знать, можно ли выполнить чистую новую установку, а не обновление, чтобы увидеть, могут ли эти две версии сосуществовать на одном сервере.

В данный момент я использую дистрибутив Linux Red Hat.

Спасибо.

Эти команды можно использовать для загрузки mongodb rpm и извлечения файлов. После извлечения содержимого пакета двоичные файлы можно использовать напрямую.

yum install yum-plugin-downloadonly
yum install --downloadonly --downloaddir=/tmp mongodb-org-server
mkdir /usr/local/mongo2
cd /usr/local/mongo2
rpm2cpio /tmp/mongodb-org-server-2.6.4-1.x86_64.rpm | cpio -idmv

Теперь новый mongod может быть вызван с помощью:

/usr/local/mongo2/usr/bin/mongod

Взгляните на mlaunch инструмент по Thomas Rueckstiess. После загрузки различных версий двоичных файлов из страница загрузки как предлагается в комментариях (и поместите их где-нибудь, что имеет смысл в вашей системе), вы можете затем использовать mlaunch для запуска идентичных конфигураций для тестирования, указав другой двоичный путькаталог данных, порт и т.д. при параллельном запуске нескольких).

Если дополнительные инструменты не то, что вам нужно, вы можете добиться аналогичных результатов, используя внутренние тестовые команды, предоставляемые MongoDB, хотя обратите внимание что эти команды в настоящее время считаются внутренними для целей тестирования, не документированы и могут быть изменены (или прекратить работу) в любое время (Я недавно тестировал версии 2.4 и 2.6 и могу подтвердить, что они работают для этих версий на момент написания этого ответа).

Например, если вы хотите настроить кластер из двух сегментов, где каждый сегмент представляет собой набор реплик, вы можете сделать следующее:

// start a shell from the command line, do not connect to a database
./mongo --nodb
// using that shell start a new 2 shard cluster (this will take a while)
cluster = new ShardingTest({shards : 2, rs : true});
// once that is finished, start a new shell and connect to the mongos (leave previous shell running to monitor logs etc.)
./mongo --port 30999
MongoDB shell version: 2.6.0
connecting to: 127.0.0.1:30999/test
mongos>

Повторите и повторно используйте по мере необходимости с любой версией, которую хотите, чтобы выключить ее, просто Ctrl-C исходная оболочка (где, надеюсь, все еще ведется журнал).

Точно так же, если вы просто хотите, чтобы реплика была настроена для тестирования:

// start a shell from the command line, do not connect to a database
./mongo --nodb
var rst = new ReplSetTest({ name: 'testSet', nodes: 3});
rst.startSet();
// this next line can be hard to type with logging scrolling by, so copy & paste is your friend if you have trouble
rst.initiate();
// start a new shell and connect to the set
 ./mongo --port 31000
MongoDB shell version: 2.4.9
connecting to: 127.0.0.1:31000/test
testSet:PRIMARY>