MongoDB主从复制实践

mongodb主从复制配置实践:

mongodb的主从复制是一种常用的复制方式,即为一个数据库同步备份的集群技术。
基本结构:一个主节点和一个或者多个从节点:

主从服务器结构图:
MongoDB主从复制实践_第1张图片


主从服务器的优点:
1. 数据备份 2. 数据恢复 3. 读写分离

注意事项:
1. 主服务器只有一台
2. 从服务器需要配置主服务器信息

主从数据库建立步骤:
1. 建立主从服务器数据存储文件夹
    mkdir -p /mongodb/data/master
    mkdir -p /mongodb/data/slaver

2. 配置主从服务器配置文件:

vim /etc/master.conf  

dbpath = /mongodb/data/master   #主数据库地址
logpath=/mongodb/data/master/mongod.log #主服务器log
port = 8888 #主数据库端口号
bind_ip = 127.0.0.1 #主数据库所在服务器
master = true #确定我是主服务器
fork=true #后台运行

vim /etc/salver.conf

dbpath = /mongodb/data/slaver   #从数据库地址
logpath=/mongodb/data/slaver/mongod.log #从服务器log
port = 7777 #从数据库端口号
bind_ip = 127.0.0.1 #从数据库所在服务器
source = 127.0.0.1:8888 #确定主数据库端口
slave = true #确定自己是从服务器
fork=true #后台运行

3. 分别启动两台主从服务器:

mongod --config /etc/master.conf
mongod --config /etc/slaver.conf

4. 开启两个客户端并分别登陆:

mongo 127.0.0.1:8888
mongo 127.0.0.1:7777

5.  操作主服务器:

5.1 use master_slave:


5.2 for(i=0;i<15;i++){ db.persons.insert({"name":"cheng"+i})}

MongoDB主从复制实践_第2张图片



从服务器查看:
show dbs 多了一个master_slave 数据库
进入数据库use master_slave 从服务器中可以查询到主服务器的更改:

MongoDB主从复制实践_第3张图片


从服务器中执行db.persons.insert({"name":"newperson"})
可以很明显看到从服务器没有写的权限





主从复制的其他设置项:

–only 从节点指定复制某个数据库,默认是复制全部数据库 
–slavedelay 从节点设置主数据库同步数据的延迟(单位是秒) 
–fastsync 从节点以主数据库的节点快照为节点启动从数据库 
–autoresync 从节点如果不同步则从新同步数据库(即选择当通过热添加了一台从服务器之后,从服务器选择是否更新主服务器之间的数据) 
–oplogSize 主节点设置oplog的大小(主节点操作记录存储到local的oplog中)


从服务器中有一个local数据库,其中的集合sources保存了主服务器是谁:
MongoDB主从复制实践_第4张图片

从服务器中关于主服务器的信息全部存到local的sources的集合中 
只要对集合进行操作就可以动态操作主从关系
挂接主服务器:操作之前只留下从数据库服务 
db.sources.insert({“host”:”127.0.0.1:8888”})
删除已经挂接的主节点:操作之前只留下从数据库服务 
db.sources.remove({“host”:”127.0.0.1:8888”})





你可能感兴趣的:(mongodb)