web-dev-qa-db-ja.com

同じサーバーに複数のmongoDBバージョンをインストールする

2.4 mongoDBバージョンをインストールしましたが、最近リリースされた2.6バージョンと比較したいと思います。

更新ではなくクリーンな新規インストールを実行して、これらの2つのバージョンが同じサーバーに共存できるかどうかを確認したいのですが。

現時点ではLinux red-hatディストリビューションを使用しています。

ありがとう。

7
jack.the.ripper

Thomas Rueckstiess による mlaunch tool を見てください。コメントで提案されているように ダウンロードページ からバイナリの異なるバージョンをダウンロードしたら(そして、システム上で意味のある場所に配置して)、mlaunchを使用して同一の構成を開始できます別の バイナリパス を指定してテストする場合(および データディレクトリポート など、複数を並行して実行する場合)。

追加のツールが探しているものと異なる場合は、MongoDBが提供する内部テストコマンドを使用して同様の結果を得ることができますが、これらのコマンドは現在テスト目的で内部と見なされ、文書化されていないことに注意してください。いつでも変更(または機能を停止)することができます(私は最近2.4および2.6バージョンでテストし、この回答を書いている時点でそれらのバージョンで機能することを確認できます)。

たとえば、各シャードがレプリカセットである2シャードクラスターをセットアップする場合は、次のようにします。

// 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>
1
Adam C

これらのコマンドを使用して、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
1
Taha Jahangir