首页 > 数据库 > Mongodb > Mongodb主从架构
2015
03-04

Mongodb主从架构

前言

   在上一篇博客中我们写了Mongodb的基本安装,今天我们来写一篇Mongodb的主从,后续会写Mongodb的副本集和Mongodb的shared的博文,Mongodb的主从架构配置依然很简单!

一、环境介绍

centos6.5 系统

192.168.1.54 master

192.168.1.87 slave

二、Mongodb的安装(主从都需要安装)

请参考Mongodb安装部署

三、Mongodb服务启动

3.1、启动master上Mongodb服务

[root@tshare365-master ~]# /user/local/mongodb/bin/mongod --dbpath /data/ --logpath /data/log/mongodb.log --logappend --master --fork
about to fork child process, waiting until server is ready for connections.
forked process: 2067
all output going to: /data/log/mongodb.log
child process started successfully, parent exiting
[root@tshare365-master ~]#

Mongodb在启动的命令中与之前的启动有所差异需要添加–master参数表示是master

3.2、启动slave上Mongodb服务

[root@tshare365-slave ~]# /usr/local/mongodb/bin/mongod --dbpath /data/ --logpath /data/log/mongodb.log --logappend --slave --source=192.168.1.54:27017 --fork
about to fork child process, waiting until server is ready for connections.
forked process: 1998
all output going to: /data/log/mongodb.log
child process started successfully, parent exiting
[root@tshare365-slave ~]#

启动参数解释

–slave            #表示是从库 

–source            #指定主库的IP与端口

–slavedelay 10       #延时复制 单位为秒

–autoresync         #主从同步中断之后自动重新同步

–only             #同步指定的数据库,默认是所以数据库都同步

四、主从同步测试

4.1、主库上写入数据

[root@tshare365-master ~]# /user/local/mongodb/bin/mongo
MongoDB shell version: 2.4.12
connecting to: test
> use tshare365
switched to db tshare365
> db.tshare365info.insert({"name":"tshare365","site":"www.tshare365.com"})
> db.tshare365info.find()
{ "_id" : ObjectId("54f2506c0fb4e8aed1707856"), "name" : "tshare365", "site" : "www.tshare365.com" }
>

4.2、从库上查看数据是否同步过来

[root@tshare365-slave ~]# /usr/local/mongodb/bin/mongo
MongoDB shell version: 2.4.12
connecting to: test
> show dbs
local	0.078125GB
tshare365	0.203125GB
> use tshare365
switched to db tshare365
> show collections
system.indexes
tshare365info
> db.tshare365info.find()
{ "_id" : ObjectId("54f2506c0fb4e8aed1707856"), "name" : "tshare365", "site" : "www.tshare365.com" }
>

五、主从同步异常处理

5.1、主从同步异常时手动同步

> use admin
switched to db admin
> db.runCommand({"resync":1})
{ "ok" : 0, "errmsg" : "not dead, no need to resync" }
>

注意:要切换到admin库下执行,否则会报权限拒绝

后续工作中持续更新…..

本博客到此结束,如果有什么疑问请留言!




最后编辑:
作者:tshare365
这个作者貌似有点懒,什么都没有留下。
捐 赠您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击

留下一个回复