Mongodb的master-slave模式与master-master模式实验
Mongodb的master-slave模式与master-master模式实验
--Master Slave实验 --创建数据目录 $ mkdir /data/1 $ mkdir /data/2 $ mkdir /data/3 --启动mongodb库 $ /data/mongodb-linux-i686-1.6.0/bin/mongod --port 27020 --dbpath /data/1 --master & $ /data/mongodb-linux-i686-1.6.0/bin/mongod --port 27021 --dbpath /data/2 --master & $ /data/mongodb-linux-i686-1.6.0/bin/mongod --port 27022 --dbpath /data/3 --slave & --启动客户端 $ /data/mongodb-linux-i686-1.6.0/bin/mongo localhost:27020 $ /data/mongodb-linux-i686-1.6.0/bin/mongo localhost:27020 > use db1 > db.foo.insert({x:1}) > db.foo.insert({x:2}) > exit $ # master 2 $ /data/mongodb-linux-i686-1.6.0/bin/mongo localhost:27021 > use db2 > db.foo.insert({x:999, note:"in db2"}) > exit $ # configure slave $ /data/mongodb-linux-i686-1.6.0/bin/mongo localhost:27022 > use local > db.sources.insert({host:"localhost:27020"}) > db.sources.insert({host:"localhost:27021"}) > db.sources.find() > // wait a little, still connected to slave > use db1 > db.foo.count() 2 > use db2 > db.foo.find() { "_id" : ObjectId("4b8ed00a1d42d47b3afa3c47"), "x" : 999, "note" : "in db2" } > db.printSlaveReplicationInfo() ===================================================================================== --Master Master 实验 --创建数据目录 $ mkdir /data/m1 $ mkdir /data/m2 -- 启动服务器 $ /data/mongodb-linux-i686-1.6.0/bin/mongod --port 27017 --dbpath /data/m1 --master $ /data/mongodb-linux-i686-1.6.0/bin/mongod --slave --master --dbpath /data/slave --port 10000 --source localhost --启动客户端 $ /data/mongodb-linux-i686-1.6.0/bin/mongo localhost:27017 > z = connect("localhost:10000/test") > db.foo.insert({x:7}); > z.foo.find() > db.foo.find() // 此处master、slave数据同步 > db.foo.insert({x:81}); > db.foo.find() > z.foo.find() // 此处master、slave数据同步 > z.foo.insert({x:91}); > db.foo.find() > z.foo.find()
// 此处不同步,db查不到x为9的数据。跟http://www.mongodb.org/display/DOCS/Master+Master+Replication上记载不一致
> z.foo.remove({x:8}); > db.foo.find() > z.foo.find()
// 此处不同步,db查到x为8的数据。跟http://www.mongodb.org/display/DOCS/Master+Master+Replication上记载不一致
【】总结:db(master)可以同步到slave,但是slave不能同步到master上。跟doc上不一致。