主从配置一般用来做数据备份,当主数据库挂掉后可以迅速切换到从数据库。
配置十分简单,这里先在同一台机器上模拟验证测试效果:
原先配置的dbpath为C:\data\db,这里将其作为master的数据库,你还需要建一个从数据库的dbpath,比如为C:\data\slavedb
分别启动2个实例(需要开2个dos窗口),启动顺序先主后从,
主命令为:mongod --master --dbpath=C:\data\db --port=23456
从命令为:mongod --slave --dbpath=C:\data\slavedb --port=23457 --source=127.0.0.1:23456
很容易理解 从的source就是主的地址端口;
连接主数据库,写一条数据:
mongo 127.0.0.1:23456
use test
db.newtable.insert({"word":"write master"})
db.newtable.find()
可以查到刚写进去的数据,
再切换到从数据库
先exit或者ctrl+c
mongo 127.0.0.1:23457
use test
db.newtable.find()
同样能查到这条数据;
但是如果想写从数据库,测试:
db.newtable.insert({"word":"write slave"})
就会报write error了,所以从数据库可以理解为是一个只读的备份,可以做临时的读取用,却不能直接自动升级为主库。
当然,如果手动重启从数据库(去掉--slave 和--source参数) 这样就可以将从数据库作为主数据库使用了。
如果想自动完成主从故障升级,可以通过Replica Pairs借用arbite,后文再详细描述。