mongoDB主从配置如下:

主库:

port=27017
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/log/mongodb.log
fork=true ##后台运行
master=true

从库:

port=27018
dbpath=/usr/local/mongodb/slave/data/
logpath=/usr/local/mongodb/slave/log/mongodb.log
fork=true ##后台运行
slave=true
source=127.0.0.1:27017

 

 

启动:

./bin/mongod --master -config mongodb.conf
./bin/mongod --slave -config mongodb-slave.conf

 

查看主库log:

local数据库 oplog.$main表记录了log,从库通过此log同步数据

log的大小可以指定;

查看从库同步情况:

错误:not master and slaveOk=false

原因:从库默认不允许读写

解决办法:rs.slaveOk();

一些常用命令:

1、查看是否是主库 -切换到admin库下:

  db.runCommand({"isMaster":1})

  输出: 

{
    "ismaster" : false,
    "maxBsonObjectSize" : 16777216,
    "maxMessageSizeBytes" : 48000000,
    "maxWriteBatchSize" : 1000,
    "localTime" : ISODate("2017-06-14T06:58:00.707Z"),
    "maxWireVersion" : 5,
    "minWireVersion" : 0,
    "readOnly" : false,
    "ok" : 1
}

  查看从库的源  local数据库下:

db.sources.find();

输出:

{ "_id" : ObjectId("59193ecfc8727abb3f4bd429"), "host" : "127.0.0.1:27017", "source" : "main", "syncedTo" : Timestamp(1497423513, 1) }

 

 

 

然后正常执行即可;

主从复制主要用来做读写分离,但并不能实现主从切换;

主从切换的实现需要通过副本集