MongoDB主从复制,是不需要像mysql那样从数据库事先要完整的主数据快照
背景介绍:mongodb支持一主一从或多从复制
1) master节点:
mongod --dbpath=/usr/MongoDB/data/ --logpath=/usr/mongodb/log/mongodb.log --master
##可选--oplogSize 400 --directoryperd 主节点oplog的大小(单位是MB)
2) slave 节点:
mongod --dbpath=/usr/mongodb/data/ --logpath=/usr/mongodb/log/mongodb.log --slave --source masterIP:27017 --autoresync
###autoresync自动同步不一致数据
4) 参数:
a)—only
在从节点上指定只复制特定的某个数据库(默认复制所有的数据库)
b)—slavedelay
用在从节点上,当应用主节点的操作时增加延时(单位是秒).
c)—fastsync
以主节点的数据快照为基础启动从节点。如果数据目录一开始是主节点的数据快照,从节点用这个选项启动要比做完整同步快很多。
d)—autoresync
如果从节点与主节点不同步了,则自动重新同步(代价比较大)
5) 查看主从复制状态
use local
rs.isMaster()
db.printReplicationInfo()
6) Master服务器Local库保存了slave信息
7) 更改oplog大小。默认情况下.oplog大小占服务器剩余空间的5%,为了安全性应该尽量设置较大。
方法:1)停掉mongodb服务
2)删除mognodb本地数据库(local)
3)启动参数添加 --oplogSize 200 (单位:MB)
4)重启mongodb服务()
8) 动态 增加节点或删除节点
在从节点
use local
db.sources.insert({“host”:”IP:port”})
db.sources.remove({“host”:”IP:port”})
Mongodb主主复制
主主设置
192.168.129.47启动参数:
rm /usr/mongodb/log/mongodb.log
/usr/mongodb/bin/mongod --dbpath=/usr/mongodb/data/ --logpath=/usr/mongodb/log/mongodb.log --master --slave --source 192.168.129.48:27017
192.168.129.48启动参数:
rm /usr/mongodb/log/mongodb.log
/usr/mongodb/bin/mongod --dbpath=/usr/mongodb/data/ --logpath=/usr/mongodb/log/mongodb.log --master --slave --source 192.168.129.47:27017
以上两种方案,MongoDB 的最新版本(1.6以后)已不再推荐此方案。推荐Replica Sets 复制集方案