主从复制是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 主从复制,副本集分布式存储(OSX为例 其他的都一样)
mongodb主从复制.docx
MongoDB主从复制.pdf 学习资料 复习资料 教学资源
MongoMultiMaster - 一个帮助你搭建MongoDB主从复制的工具
主要介绍了详解mongoDB主从复制搭建详细过程的相关资料,这里对实现主从复制进行了详细的步骤介绍,需要的朋友可以参考下
主要为大家详细介绍了mongodb主从复制的相关资料,讨论mongodb的部署技术,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了MongoDB 主从复制实例讲解,主从复制可以用来数据库备份,故障恢复,读写分离,有兴趣的小伙伴可以参考下本
主从复制是数据库运维中一种常见的备份方式,这里我们来看一下MongoDB的Master-Slave主从模式配置及主从复制要点解析,需要的朋友可以参考下
k8s 安装 mongodb 分片(Sharding)+ 副本集(Replica Set)
MongoDB可以在以一个主节点处理客户端请求的情况下以其他节点服务器负责映射主节点上的数据,即为我们通常所说的主从复制功能,这里我们就来共同总结MongoDB的主从复制及副本集的replSet配置教程:
主要介绍了MongoDB入门教程之主从复制配置详解,本文环境是windows+MongoDB,操作部分使用图片来讲解,需要的朋友可以参考下
linux mongodb分布式负载... MongoDB集群主从复制部署帮助文档 MongoDB集群主从复制使用帮助文档 MongoDB集群主从复制遇到问题解决文档 mongodb网页资料 linux内网生产环境使用;文档比较清晰,按照步骤安装即可;
由于 MongoDB 的主从复制功能不支持高可用,所以从 3.2 版本开始已经被废弃了,转而用副本集来代替实现数据复制的功能。一个副本集总会有一个活跃节点(Primary)和若干个备份节点(Secondary),还有一个可选的一个...
视频目录: 01-mongodb文档型数据库特点介绍 01-NoSQL简介 02-mongodb安装过程 02-mongodb操作1 03-mongodb操作2 ...04-mongodb操作3 ...10-主从复制 11-shard分片 11-分片 12-使用java操作mongodb