mongodbを使ってみる (10) - replication -
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には自身でのデータ格納できない)