1.环境准备


     [root@node3 ~]# cat /etc/redhat-release

     CentOS release 6.6 (Final)


     主:192.168.200.140          从:192.168.200.144


2.配置mongod启动配置文件


     主:192.168.200.140

     vim /etc/mongodb.conf


     port=27017

     fork=true

     logpath=/a02/mongodb/logs/node1.log

     logappend=true

     dbpath=/a02/mongodb/data/

     maxConns=1024

     master=true

     oplogSize=2048    ########## 主节点oplog大小,主节点会把数据库操作的日志写在oplog中,从节点参考oplog做复制操作,可以根据自身情况调节日志大小。如果不指定oplogsize大小,mongod将指配5%的可用磁盘空间给他,32位机最小是50M,64位机最小是1G。


     从:192.168.200.144

      vim /etc/mongodb.conf


     port=27017

     fork=true

     logpath=/a02/mongodb/logs/node2.log

     logappend=true      #########开启日志循环

     dbpath=/a02/mongodb/data/

     maxConns=1024

     slave=true

     source=192.168.200.140:27017     ######需要同步的源也就是Master

     slavedelay=10          ####### 从数据库延迟同步主数据库的时间

     autoresync=true        ####### 如果主节点与从节点数据不同,则自动重新同步。配置这个节点可以给运行了一段时间的主节点加上                              一个新节点,则这个新节点会把之前的主节点数据全部同步过来,而不是从现在这个时间同步。  


3.启动mongod


    主:mongod -f  /etc/mongodb.conf

    从:mongod -f  /etc/mongodb.conf


4.主从复制测试

     

     主库新建数据库

     /usr/local/mongodb/bin/mongo

     > use test

     > db.test.save({"AGE":18})

     > db.test.find()

     > show dbs

     local  0.000GB

     test   0.000GB

     wang   0.000GB


     从库查看数据是否同步

     /usr/local/mongodb/bin/mongo

     > rs.slaveOk(1)      ####默认从库是不具备查询权限的,如果需要查询,开启即可。

     > show dbs

     local  0.000GB

     test   0.000GB

     wang   0.000GB

     > db.printReplicationInfo()

     this is a slave, printing slave replication info.

     source: 192.168.200.140:27017

        syncedTo: Mon Jul 25 2016 14:59:46 GMT+0800 (CST)

        12 secs (0 hrs) behind the freshest member (no primary available at the moment)