一、缘由:
看着数据库大家庭都有主从模式,想着Mongodb应该也不会落下。但从官网看来,先是早先舍弃了Master-Master模式,现在又在不推荐
Master-Slave模式,这是要标新立异呀。不过,也许大家都会觉得Replica Set的Primary故障自动转移、分片,用起来更爽一点,所以抛弃就
抛弃吧,但是目前还是要了解的。
Mongodb Master-Slave模式,可支持读写分离;也可读写都在Master,Slave做备份。一旦Master挂掉,就要手动干预将从切换为主。
实践版本:3.2。
二、解决办法:
1、安装Mongdb并配置好两个实例:
我这里将Mongodb二进制文件放在/usr/local/mongodb-3.2.9目录,且在这个目录下增加两个配置文件mongod_27017.conf、mongod_27018.conf;
具体用二进制包部署过程看这里:http://www.cnblogs.com/langdashu/p/6022225.html
2、主从实例启动:
主:sudo su -l mongod -c "numactl --interleave=all mongod -f /usr/local/mongodb-3.2.9/mongod_27017.conf --master --oplogSize 20480 &"
从:sudo su -l mongod -c "numactl --interleave=all mongod -f /usr/local/mongodb-3.2.9/mongod_27018.conf --slave --source 127.0.0.1:27017 --autoresync &"
具体参数解释:
sudo su -l mongod -c cmd
numactl --interleave=all
--oplogSize 20480
--source 127.0.0.1:27017
--autoresync
主库:会保存操作日志到local.oplog.$main collection中。
从库:会将主库的数据源 存到local.source collection中。
3、确认主从状态:
Master:rs.printReplicationInfo()
Slave:rs.printSlaveReplicationInfo()
db.serverStatus( { repl: 1 } )
4、开启安全认证:(待补充完全)
Master && Slave 的配置文件都要加上:
security:
keyFile = /usr/local/mongodb-3.2.9/keyfile
然后更改权限:
sudo chown mongod.mongod keyfile
sudo chmond 400 keyfile
之后按照主从CMD重启mongodb。
keyfile文件的字符串可以这样生成:openssl rand -base64 741