mongodb主从复制配置实践:
mongodb的主从复制是一种常用的复制方式,即为一个数据库同步备份的集群技术。
基本结构:一个主节点和一个或者多个从节点:
主从服务器结构图:
主从服务器的优点:
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 #后台运行
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
mongod --config /etc/slaver.conf
4. 开启两个客户端并分别登陆:
mongo 127.0.0.1:8888
mongo 127.0.0.1:7777
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})}
从服务器查看:
show dbs 多了一个master_slave 数据库
进入数据库use master_slave 从服务器中可以查询到主服务器的更改:
从服务器中执行db.persons.insert({"name":"newperson"})
可以很明显看到从服务器没有写的权限
主从复制的其他设置项:
–only 从节点指定复制某个数据库,默认是复制全部数据库
–slavedelay 从节点设置主数据库同步数据的延迟(单位是秒)
–fastsync 从节点以主数据库的节点快照为节点启动从数据库
–autoresync 从节点如果不同步则从新同步数据库(即选择当通过热添加了一台从服务器之后,从服务器选择是否更新主服务器之间的数据)
–oplogSize 主节点设置oplog的大小(主节点操作记录存储到local的oplog中)
–slavedelay 从节点设置主数据库同步数据的延迟(单位是秒)
–fastsync 从节点以主数据库的节点快照为节点启动从数据库
–autoresync 从节点如果不同步则从新同步数据库(即选择当通过热添加了一台从服务器之后,从服务器选择是否更新主服务器之间的数据)
–oplogSize 主节点设置oplog的大小(主节点操作记录存储到local的oplog中)
从服务器中有一个local数据库,其中的集合sources保存了主服务器是谁:
从服务器中关于主服务器的信息全部存到local的sources的集合中
只要对集合进行操作就可以动态操作主从关系
挂接主服务器:操作之前只留下从数据库服务
db.sources.insert({“host”:”127.0.0.1:8888”})
删除已经挂接的主节点:操作之前只留下从数据库服务
db.sources.remove({“host”:”127.0.0.1:8888”})