MongoDB  创建副本集

MongoDB复制是将数据同步在多个服务器的过程。

复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。

复制还允许您从硬件故障和服务中断中恢复数据。

1. 建立配置文件

mongodb.conf

  1 # Start MongoDB as a daemon on port 5568
2
3 port = 5568
4 fork = true
5 replSet = test_replica_set
6 dbpath = /datatest/db
7 logpath = /datatest/db/test.log
8 logappend = true
9 mongodb2.conf 2
3 port = 5569
4 fork = true
5 replSet = test_replica_set
6 dbpath = /datatest/db2
7 logpath = /datatest/db/test2.log
8 logappend = true
9 mongodb3.conf 2
3 port = 5570
4 fork = true
5 replSet = test_replica_set
6 dbpath = /datatest/db3
7 logpath = /datatest/db/test.log
8 logappend = true
9

2. 启动数据库

mac-abeen:bin abeen$ sudo ./mongod -f mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 37181
child process started successfully, parent exiting
mac-abeen:bin abeen$ sudo ./mongod -f mongodb2.conf
about to fork child process, waiting until server is ready for connections.
forked process: 37185
child process started successfully, parent exiting
mac-abeen:bin abeen$ sudo ./mongod -f mongodb3.conf
about to fork child process, waiting until server is ready for connections.
forked process: 37189
child process started successfully, parent exiting

3. 初始化副本集

mac-abeen:bin abeen$ ./mongo --nodb
MongoDB shell version: 3.2.8
> config = {}
{ }
> config = {"_id": "test_replica_set", "members": [
... {"_id": 0, "host": "localhost:5568"}, {"_id": 1, "host": "localhost:5569"}, {"_id": 2, "host": "localhost:5570"}]}
{
"_id" : "test_replica_set",
"members" : [
{
"_id" : 0,
"host" : "localhost:5568"
},
{
"_id" : 1,
"host" : "localhost:5569"
},
{
"_id" : 2,
"host" : "localhost:5570"
}
]
}
> db = (new Mongo("localhost:5568")).getDB("test")
test
> rs.initiate(config)
{ "ok" : 1 }
test_replica_set:OTHER> test_replica_set:PRIMARY> rs.config()
{
"_id" : "test_replica_set",
"version" : 1,
"protocolVersion" : NumberLong(1),
"members" : [
{
"_id" : 0,
"host" : "localhost:5568",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : { },
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 1,
"host" : "localhost:5569",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : { },
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 2,
"host" : "localhost:5570",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : { },
"slaveDelay" : NumberLong(0),
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"getLastErrorModes" : { },
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("5850f445c8cacd70496883b0")
}
}

4. 写入数据并查看副本集数据

test_replica_set:PRIMARY>
test_replica_set:PRIMARY> for (i=0; i < 100; i++){db.coll.insert({"count": i})}
WriteResult({ "nInserted" : 1 })
test_replica_set:PRIMARY> db.coll.count()
100
test_replica_set:PRIMARY> db.coll.find().limit(5)
{ "_id" : ObjectId("5850f5f35f1a7d82c0b45b51"), "count" : 0 }
{ "_id" : ObjectId("5850f5f35f1a7d82c0b45b52"), "count" : 1 }
{ "_id" : ObjectId("5850f5f35f1a7d82c0b45b53"), "count" : 2 }
{ "_id" : ObjectId("5850f5f35f1a7d82c0b45b54"), "count" : 3 }
{ "_id" : ObjectId("5850f5f35f1a7d82c0b45b55"), "count" : 4 } 查看副本集是否有数据
mac-abeen:bin abeen$ ./mongo --port 5569 --host localhost
MongoDB shell version: 3.2.8
connecting to: localhost:5569/test test_replica_set:SECONDARY> db.coll.find().limit(5)
Error: error: { "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 }
设置连接可读取数据
test_replica_set:SECONDARY> db.setSlaveOk()
副本中已有数据
test_replica_set:SECONDARY> db.coll.find().limit(5)
{ "_id" : ObjectId("5850f5f35f1a7d82c0b45b53"), "count" : 2 }
{ "_id" : ObjectId("5850f5f35f1a7d82c0b45b55"), "count" : 4 }
{ "_id" : ObjectId("5850f5f35f1a7d82c0b45b52"), "count" : 1 }
{ "_id" : ObjectId("5850f5f35f1a7d82c0b45b54"), "count" : 3 }
{ "_id" : ObjectId("5850f5f35f1a7d82c0b45b51"), "count" : 0 }

[DataBase] MongoDB (8) 副本集的更多相关文章

  1. Mongodb主从复制/ 副本集/分片集群介绍

    前面的文章介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 Master-Slave 模式(主从复制),一种是 Replica Sets 模式(副本集). Mong ...

  2. mongodb创建副本集命令

    mongodb创建副本集命令 ./mongod --replSet spock --dbpath ../data --smallfiles > config ={... "_id&qu ...

  3. MongoDB之副本集

    MongoDB之副本集 一.简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库 ...

  4. MongoDB 复制(副本集)

    MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性. 复制还允许您从硬件故障和服务中断中恢复数据. ...

  5. MongoDB 搭建副本集

    副本集(Replica Set)是一组MongoDB实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成.通过Replication,将数据的更新由Primary ...

  6. [原创]在Docker上部署mongodb分片副本集群。

    一.安装docker. 请参考:http://www.cnblogs.com/hehexiaoxia/p/6150584.html 二.编写dockerfile. 1.在根目录下创建mongod的do ...

  7. mongodb(副本集)

    副本集是mongo下的一种集群配置方式: 1.通过oplog的方式将主节点数据同步到副本节点,oplog不记录查询语句(因为不改变数据): 2.mongo的副本集可以有一个主节点,多个副本节点,主节点 ...

  8. MongoDb的副本集搭建教程(个人操作笔记)

    很多公司都在用MongoDb ,一直没有时间研究,最近好好的整了一下,做下笔记,直接上操作步骤,关于Mongodb的理论知识可以搜索其他资料,也可以联系我索取 mongoDB官方已经不建议使用主从模式 ...

  9. mongodb系列~mongodb的副本集(1)

    一 简介: mongodb副本集 二 复制方式: 1 全量复制 2 增量复制三 同步检测过程:    一 正常情况下:       1 master执行语句,并将所有的修改数据库的操作以日志Oplog ...

随机推荐

  1. 视觉机器学习读书笔记--------SVM方法

    SVM是一种二类分类模型,有监督的统计学习方法,能够最小化经验误差和最大化几何边缘,被称为最大间隔分类器,可用于分类和回归分析.支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题, ...

  2. Inventory Costing in AX 2009

    I wanted to explore some scenarios that illustrate a few important concepts related to inventory cos ...

  3. PHP获取某个表与其他表的关联关系算法

    如图 电影movie有多个附表,如果通过movie表来找出多个与之关联的表. 本算法规则: 外键写法必须是X_id; A与B 1对多关系,中间表表名必须是A_B,且A_B,必须包含A_id,B_id外 ...

  4. C#中调用user32.dll库的keybd_Event函数,操作键盘

    keybd_event()的函数原型是: void keybd_event( byte bVk,          //虚拟键码 byte bScan,       //该键的硬件扫描码 dword ...

  5. Leetcode: Find Leaves of Binary Tree

    Given a binary tree, collect a tree's nodes as if you were doing this: Collect and remove all leaves ...

  6. 【js跨域】js实现跨域访问的几种方式

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  7. Coins

    Description Whuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. One day Hi ...

  8. hadoop的学习

    http://www.aboutyun.com/thread-6179-1-1.html

  9. crontab每秒执行URL接口

    首先crontab -e打开进行编辑 添加以下代码(默认为每秒执行一次脚本crontab.sh): * * * * * /bin/sh /var/www/aa/crontab.sh 下面是/var/w ...

  10. nginx,文件下载,预览,防止浏览器下载时直接打开,防止预览时直接下载文件,解决nginx谷歌浏览器不支持下载问题

    公司项目逐渐增多,对效率的要求越来越高,不同项目分部不同服务器,最初想用nginx 就是为了多个项目用一个url和服务器宕机解决方案 nginx也可作为附件服务器,毕竟nginx也对静态文件支持较好, ...