> 数据库 > MongoDB >

mongodb不同版本实现主从复制

mongoDB有一个主要特性就是复制,有多种复制形式,其中,主从复制是比较常用的一种。

    主从复制的工作原理:首先要有两个或更多的服务器,其中一个是主节点,负责处理客户端的请求,其他的都是从节点,负责映射主节点的数据。主节点记录在其上执行的所有操作,从节点定期轮询主节点获得的这些操作,然后执行这些操作。由于从节点和主节点执行了相同的操作,从节点就能保持与主节点的数据同步。

    实战讲解一下mongodb的搭建和主从复制,因为只有一台服务器,所以只能通过修改端口号实现mongodb的主从,而不是通过多台服务器实现。其实原理是一样的~,只是这样做实际意义不大~

    之前已经装了一个版本的mongodb(2.6.11),既然现在mongodb已经更新到了3.0.6,那么从库就特意使用3.0.6,反正是测试用途,就不管那么多了~ 

安装

    mongodb下载地址

    下载mongodb3.0.6执行文件包,并解压,把二进制执行文件放在/usr/local/mongo3.0.6目录

配置

  主库配置

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# mongod.conf
 
#where to log
logpath=/var/log/mongodb/mongod-27017.log
 
logappend=true
 
# fork and run in background
fork=true
 
port=27017
 
#dbpath=/var/lib/mongo
dbpath=/data/mongodb/mongo-27017
 
# location of pidfile
pidfilepath=/var/run/mongodb/mongod-27017.pid
 
bind_ip=127.0.0.1,192.168.56.61
 
#noauth=true
 
# Ignore query hints
#nohints=true
 
# Disable the HTTP interface (Defaults to localhost:27017).
nohttpinterface = false
rest = true
 
master = true

 从库配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# mongod.conf
 
#where to log
logpath=/var/log/mongodb/mongod-27018.log
 
logappend=true
 
# fork and run in background
fork=true
 
port=27018
 
#dbpath=/var/lib/mongo
dbpath=/data/mongodb/mongo-27018
 
# location of pidfile
pidfilepath=/var/run/mongodb/mongod-27018.pid
 
# Listen to local interface only. Comment out to listen on all interfaces. 
bind_ip=127.0.0.1,192.168.56.61
 
#noauth=true
 
# Ignore query hints
#nohints=true
 
# Disable the HTTP interface (Defaults to localhost:27018).
nohttpinterface = false
rest = true
 
slave = true
source = 127.0.0.1:27017

启动

 
1
2
3
4
5
# 主库启动
/usr/local/mongo2.6.11/mongod -f /etc/mongod/mongod-27017.conf
 
# 从库启动
/usr/local/mongo3.0.6/mongod -f /etc/mongod/mongod-27018.conf

认证

   不同版本的mongodb开始auth模式可以通过下面的方法来实现

   1. 先把所有主从mongodb设为unauth模式

   2. 在master添加一个账号,这样slave也就自动同步了该账号

   3. 把所有主从mongodb开启auth模式

 

(责任编辑:IT)