MongoDB主从复制,主主复制

时间:2022-09-15 11:35:48
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 复制集方案