MongoDB主从复制

2014-11-24 17:36:54 · 作者: · 浏览: 0

在生产环境中单台数据库已不能满足业务需求,数据库主从复制在架构中使用很常见,用于备份、高可用、读写分离来提高数据处理性能和冗余,常用架构模式是一主一从、一主多从、双主。MongoDB数据库特点我就不多说了,百度上说的更详细。我们这次架构采用的是一主一从。



[root@localhost ~]# vi /usr/local/mongodb/conf/mongod.conf
port=27017 #端口号
fork=true #以守护进程方式运行
logpath=/usr/local/mongodb/logs/mongodb.log #日志文件
logappend=true #日志输出方式
dbpath=/usr/local/mongodb/data #数据库位置
maxConns=1024 #数据库最大连接数
master=true #主模式
oplogSize=2048 #日志滚动,单位M


2、从Mongodb配置



[root@localhost ~]# mkdir /usr/local/mongodb/data
[root@localhost ~]# mkdir /usr/local/mongodb/logs
[root@localhost ~]# mkdir /usr/local/mongodb/conf



[root@localhost ~]# vi /usr/local/mongodb/conf/mongod.conf
port=27017
fork=true
logpath=/usr/local/mongodb/logs/mongodb.log
logappend=true
dbpath=/usr/local/mongodb/data
maxConns=1024
slave=true #从模式
source=192.168.0.201:27017 #指定主Mongodb
autoresync=true #自动同步


3、添加环境变量并启动Mongodb


[root@localhost ~]# echo "PATH=$PATH:/usr/local/mongodb/bin" >> /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# mongod -f /usr/local/mongodb/conf/mongod.conf #启动
[root@localhost ~]# netstat -tupln | grep mongod
tcp 0 0 0.0.0.0:28017 0.0.0.0:* LISTEN 1923/mongod
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1923/mongod


#主上日志信息看出主数据库允许让192.168.0.202从数据库45458端口连接


MongoDB主从复制



#从上日志信息看出开始同步192.168.0.201主数据库


MongoDB主从复制


4、测试Mongodb主从复制
#创建一个数据库test,集合名也是test,插入一个字段AGE:18。然后再从数据库showdbs;查看已经同步过去。语法与Mysql有很大区别。
[root@localhost ~]# mongo
MongoDB shell version:2.4.9-rc0
> use test
> db.test.save({AGE:18})
> db.test.find()
{ "_id" :ObjectId("52addd66124c02eb8b2d1a5a"), "AGE" : 18 }
> show dbs
local 2.0771484375GB
test 0.203125GB
>


主日志



MongoDB主从复制从日志


MongoDB主从复制


创建数据库后,由上主从日志看出,主允许从连接,从同步主数据(applied 1 operations)。主数据库操作记录为OpLog日志,说明主从数据库原理是定期从主服务器中获取oplog记录,然后在本机上执行。


相关阅读