Mongodb主从复制

系统 1654 0

主从复制是Mongodb最常用的复制方式。这种方式非常灵活,可用于备份、故障恢复、读扩展等。Mongodb主从结构如下图所示:

mongodb主从架构

最基本的方式就是建立一个主节点和一个或者多个从节点,每个从节点要知道主节点的地址。主节点服务器使用mongod --master方式启动,而从节点服务器则使用mongod --slave --source master_address方式启动。其中master_address指的是主节点服务器的地址。

 

一般主从节点是在多台服务器上,这里我通过在单台机器上建立多个实例来模拟主从复制。

首先建立主从节点数据目录:

    [root@localhost mongodb]# mkdir -p /opt/mongodb/data/dbs/master
[root@localhost mongodb]# mkdir -p /opt/mongodb/data/dbs/slave
  

然后配置主从节点的配置文件(也可以通过参数直接启动)

mongodb-master.conf(主节点配置文件)

    port=10000
dbpath=data/dbs/master
logpath=log/mongodb-master.log
logappend=true
  

mongodb-slave.conf(从节点配置文件)

    port=10001
dbpath=data/dbs/slave
logpath=log/mongodb-slave.log
logappend=true
  

接着分别启动主节点服务和从节点服务:

1)启动主节点服务

    [root@localhost mongodb]# ./bin/mongod -f mongodb-master.conf --master
all output going to: log/mongodb-master.log
  

2)启动从节点服务(注意需要使用--source参数指定主服务的地址)

    [root@localhost mongodb]# ./bin/mongod -f mongodb-slave.conf --slave --source localhost:10000
all output going to: log/mongodb-slave.log
  

然后连接到主节点

    [root@localhost mongodb]# ./bin/mongo localhost:10000
MongoDB shell version: 2.0.6
connecting to: localhost:10000/test
> db.users.find() #查询主节点users集合中的数据,结果返回为空
> 
  

使用另外一个连接连接到从节点

    [root@localhost mongodb]# ./bin/mongo localhost:10001
MongoDB shell version: 2.0.6
connecting to: localhost:10001/test
> db.users.find() #查询从节点users集合中的数据,结果也返回为空
>
  

往主节点users集合中插入数据

    #首先往users集合中插入数据
> db.users.save({"name":"zhouxiaofei","position":"Web tester"})
> db.users.save({"name":"chenzhou","position":"Java developer"})
> db.users.find() #查询主节点users集合中数据,返回如下结果
{ "_id" : ObjectId("502a83750e192a4a90d0f6c1"), "name" : "zhouxiaofei", "position" : "Web tester" }
{ "_id" : ObjectId("502a837c0e192a4a90d0f6c2"), "name" : "chenzhou", "position" : "Java developer" }
> 
  

通过另外一个连接从节点的实例查询从节点中users集合中的数据

    > db.users.find() #查询从节点中users集合,返回了主节点中插入的数据
{ "_id" : ObjectId("502a83750e192a4a90d0f6c1"), "name" : "zhouxiaofei", "position" : "Web tester" }
{ "_id" : ObjectId("502a837c0e192a4a90d0f6c2"), "name" : "chenzhou", "position" : "Java developer" }
> 
  

根据结果可以看出,简单的主从复制已经实现。关于Mongodb主从复制更多的知识,可以参考mongodb在线文档,地址如下: http://www.mongodb.org/display/DOCS/Master+Slave

Mongodb主从复制


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论