mongodbを使ってみる (10) - replication -

2013-01-23T00:00:00+00:00 MongoDB

master/slaveでレプリケーション構成を作ってみる

マスター側を起動

mongod --master --dbpath /tmp/mongo1 --logpath /tmp/mongo1/mongod.log --port 10001

--masterでmasterであるっていうのを指定するだけ。

スレーブ側を起動

mongod --slave --source localhost:10001 --dbpath /tmp/mongo2 --logpath /tmp/mongo2/mongod.log --port 10002

--slaveでslaveを設定し、--sourceでマスター側を指定する。--sourceを指定しなくても

use local
db.sources.save({ host: "localhost:10001" })

な感じで設定しても良い模様。でこの状態でマスターに

use sample
db.samples.save({ name: "hoge" })
db.samples.save({ name: "fuga" })

db.samples.find()
// 出力: 2件が出る

でスレーブ側に接続して

use sample
db.samples.find()

// 出力: マスター側と同じ

で、もう一個スレーブ作っちゃう

mkdir /tmp/mongo3

mongod --slave --source localhost:10001 --dbpath /tmp/mongo3 --logpath /tmp/mongod/mongod.log --port 10003

で起動する。でアクセスするとマスターでデータがこっちにもレプリカを作ってる

でマスター落としたらどうなるのかってそりゃなんも出来ないリードオンリーにはなるけど(slaveには自身でのデータ格納できない)

NPAPIをざっくりやってみる (1) FuelPHPをやってみる (27) - Model_Softを使う -