MongoDB 主从复制
#Master配置
yum -y install mongodb mongodb-server
mkdir -p /mongodb/dbs/master
mkdir /mongodb/logs/master
mongod --dbpath=/mongodb/dbs/master/ --logpath=/mongodb/logs/master/logs.txt --logappend --oplogSize=64 --port=20000 --master --fork
#Slave1配置
yum -y install mongodb mongodb-server
mkdir -p /mongodb/logs/slave1
mkdir -p /mongodb/dbs/slave1
mongod --dbpath=/mongodb/dbs/slave1/ --logpath=/mongodb/logs/slave1/logs.txt --logappend --oplogSize=64 --port=20001 --slave --source=192.168.10.176:20000 --fork
#Slave2配置
yum -y install mongodb mongodb-server
mkdir -p /mongodb/logs/slave2
mkdir -p /mongodb/dbs/slave2
mongod --dbpath=/mongodb/dbs/slave2/ --logpath=/mongodb/logs/slave2/logs.txt --logappend --oplogSize=64 --port=20002 --slave --source=192.168.10.176:20000 --fork
#参数解释
--dbpath 数据库文件路径
--logpath 日志文件路径
--master 指定为主节点
--slave 指定为从节点
--source 指定主节点机器的IP地址
--pologSize 主节点操作记录,默认大小为当前可用磁盘空间的5%(64位机器最小值为1G,32位机器为50M),单位为mb。
--logappend 日志文件末尾添加
--port 指定端口号
--only 用在从节点中,用于指定只复制特定的数据库(默认是复制全部),如--only test 从节点只复制test数据库
--fork 在后台运行
--slavedelay 用在从节点上,指从复制检测的时间间隔
--autoresync  如果从节点与主节点不同步了,则自动重新同步
一个集群中有多少个从节点并没有明确限制,但是上千个从节点对单个主节点发起查询也会让其吃不消。所以实际中,建议不要超过12个从节点集群,
如果规模比较大,从节点比较多,可以采用菊花链形式复制。
#Master插入数据测试
> use testdb;
> show tables;
system.indexes
testducument01
> db.testducument01.find();
{ "_id" : ObjectId("551150c3b893f1a1c290b207"), "name" : "shanqiangwu", "sex" : "M" }
#Slave1验证数据
mongo --port 20001
> show dbs;
local	0.078125GB
testdb	0.203125GB
> use testdb;
> show tables
system.indexes
testducument01
> db.testducument01.find();
{ "_id" : ObjectId("551150c3b893f1a1c290b207"), "name" : "shanqiangwu", "sex" : "M" }
#Slave2验证数据
mongo --port 20002
> show dbs;
local	0.078125GB
testdb	0.203125GB
> use testdb;
> show tables
system.indexes
testducument01
> db.testducument01.find();
{ "_id" : ObjectId("551150c3b893f1a1c290b207"), "name" : "shanqiangwu", "sex" : "M" }