副本集是一组,由N个mongo节点组成并协同工作的,提供自动的故障集群转移。
建立一个副本集需要步骤,1、需要启动每个节点,2、然后进行初始化设置。在这里,我们将配置一组(三个节点),这是标准设置。

一旦mongod节点启动,我们将发出一个命令,以正确地初始化设置。几秒钟后,将选举产生一个主节点,你就可以开始写和查询集。

环境描述:

a.192.168.30.112:3306   主节点

b.192.168.30.113:3306   从节点

c.192.168.30.114:3306   从节点

1,解压安装mongodb

[root@localhost ~]# tar zxvf mongodb-linux-x86_64-2.0.4.tgz

[root@localhost ~]# mv mongodb-linux-x86_64-2.0.4 /usr/local/mongodb

[root@localhost ~]# cd /usr/local/mongodb/

[root@localhost mongodb]# mkdir -p mongodb_data/mongodb_db

[root@localhost mongodb]# mkdir mongodb_data/mongodb_logs

以上3台服务器,一样的安装步骤

2.设置启动配置文件

[root@localhost mongodb]# vi /etc/mongodb.conf

fork = true

quiet = true

bind_ip = 192.168.30.112

port = 3306

dbpath = /usr/local/mongodb/mongodb_data/mongodb_db

logpath = /usr/local/mongodb/mongodb_data/mongodb_logs/server1.log

logappend = true

journal = true

rest = true

replSet = test

其余2台服务器,修改相应IP即可

3.启动mongodb

[root@localhost ~]# /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf

4.初始化节点

我们连接到其中一个节点上,并使用replSetInitiate命令进行初始化。此命令需要一个配置对象,指定设定的每个成员的名字。

>/usr/local/mongodb/bin/mongo 192.168.30.112:3306/admin

>config ={_id:"test",members:[

...{_id:0,host:'192.168.30.112:3306',priority:4},

...{_id:1,host:'192.168.30.113:3306',priority:2},

...{_id:2,host:'192.168.30.114:3306',priority:1}]

...}

>rs.initiate(config);

{

"info":"Config now saved locally.  Should come online in about a minute.",

"ok":1

}

PRIMARY> rs.status()

{

"set" : "test",

"date" : ISODate("2013-12-31T07:49:39Z"),

"myState" : 1,

"members" : [

{

"_id" : 0,

"name" : "192.168.30.112:3306",

"health" : 1,

"state" : 1,

"stateStr" : "PRIMARY",

"optime" : {

"t" : 1388474768000,

"i" : 1

},

"optimeDate" : ISODate("2013-12-31T07:26:08Z"),

"self" : true

},

{

"_id" : 1,

"name" : "192.168.30.113:3306",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 790,

"optime" : {

"t" : 1388474768000,

"i" : 1

},

"optimeDate" : ISODate("2013-12-31T07:26:08Z"),

"lastHeartbeat" : ISODate("2013-12-31T07:49:38Z"),

"pingMs" : 0

},

{

"_id" : 2,

"name" : "192.168.30.114:3306",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 786,

"optime" : {

"t" : 1388474768000,

"i" : 1

},

"optimeDate" : ISODate("2013-12-31T07:26:08Z"),

"lastHeartbeat" : ISODate("2013-12-31T07:49:38Z"),

"pingMs" : 0

}

],

"ok" : 1

}

检查节点状态。
复制

现在我们来测试一下,向主节点中写点东西。

PRIMARY> db.test.save({c:3})

PRIMARY> db.test.find()

{ "_id" : ObjectId("52c2709235dd31988bc3e7c5"), "b" : 2 }

{ "_id" : ObjectId("52c2719035dd31988bc3e7c6"), "c" : 3 }

SECONDARY> db.test.find()

error: { "$err" : "not master and slaveok=false", "code" : 13435 }

错误解决办法:

首先这是正常的,因为SECONDARY是不允许读写的, 在写多读少的应用中,使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由Secondary来分担读的压力,Primary只承担写操作。
对于replica set 中的secondary 节点默认是不可读的
SECONDARY> db.getMongo()
connection to 127.0.0.1:33333
SECONDARY> db.getMongo().setSlaveOk();
not master and slaveok=false

在主库上设置 slaveok=ok

PRIMARY> db.getMongo().setSlaveOk();

在从库进行测试
SECONDARY> db.user.find()
{ "_id" : ObjectId("4eb68b1540643e10a0000000"), "id" : 1, "name" : "zhangsan" }
{ "_id" : ObjectId("4eb68b1540643e10a0000001"), "id" : 2, "name" : ";lisi" }

这时候你去看看辅节点上的日志,你将会看到内容被复制了。

本文转自ljl_19880709 51CTO博客,原文链接:http://blog.51cto.com/luojianlong/1347169,如需转载请自行联系原作者

MongoDB安装与副本集配置相关推荐

  1. linux下mongdb绑定ip,Linux下MongoDB安装及副本集配置 | 聂扬帆博客

    最近开始接触了MongoDB的安装配置,易部署.易使用,存储数据非常方便是它的特点. 0x00  副本集原理 MongDB副本集故障转移功能得益于它的选举机制.选举机制采用了Bully算法,可以很方便 ...

  2. MongoDB 3.0副本集配置

    请先阅读我之前的文章<MongoDB 3.0的在CentOS6.5上的安装>  一.创建副本集须知: 1.存在一台有超级管理员的mongod服务器,可以有数据库,其他所有的服务器都必须是全 ...

  3. MongoDB-4.4.2单机安装以及副本集配置

    目录 1 MongoDB-4.4.2的单机安装 1.1 软件包的下载 1.2 安装MongoDB-4.4.2 1.2.1 解压 1.2.2 重命名 1.2.3 配置环境变量 1.3 启动MongoDB ...

  4. MongoDB之副本集配置

    MongoDB主从复制 主从复制是 MongoDB 最早使用的复制方式, 该复制方式易于配置,并且可以支持任意数量的从节点服务器,与使用单节点模式相比有如下优点: 在从服务器上存储数据副本,提高了数据 ...

  5. MongoDB学习2 - 账号密码登录、副本集配置

    文章目录 1. 高级 1.1 用户账号密码登陆.集群机器使用Key文件 - 安全认证 1.1.1 概述 1.1.1.1 内置角色 - 用于普通用户登录 1.1.1.2 内置语法 - 用于普通用户登录 ...

  6. MongoDB 分片(sharding)+副本集(replSet)集群搭建

    文章目录 MongoDB安装 Windows平台安装 1.下载 2.安装 3.启动MongoDB服务 4.进入MongoDB后台 Linux平台安装MongoDB 1.下载 2.安装 3.创建数据库目 ...

  7. mongodb主从复制及副本集的部署

    一.mongodb配置参数介绍: [root@host11 tmp]# cat  /etc/mongod.conf #以守护进程的方式运行 fork=true #设置db的路径 dbpath=/usr ...

  8. 2.MongoDB 4.2副本集环境基于时间点的恢复

    (一)MongoDB恢复概述 对于任何数据库,如果要将数据库恢复到过去的任意时间点,否需要有过去某个时间点的全备+全备之后的重做日志. 接下来根据瑞丽航空的情况进行概述: 全备:每天晚上都会进行备份: ...

  9. MongoDB 复制(副本集)学习

    MongoDB 复制(副本集)学习 replication set复制集, 复制集,多台服务器维护相同的数据副本,提高服务器的可用性. MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数 ...

最新文章

  1. 大牛书单 | Python方向的好书
  2. 零基础学python看什么书-零基础学python推荐几本python学习的书籍
  3. C++不能简单地将整数赋给指针
  4. why is pricing callback CRM_PRIDOC_UPDATE_EC called
  5. solr 配置中文分词器
  6. java 当天唯一ids_java-为不同的时间字符串接收相同的ZonedDat...
  7. K12计算机科学标准,计算机科学新主张(K12基础教育) 翻译.pptx
  8. 大学教授撰写诗歌引人思考:美好人生怎能终止在17岁?
  9. TypeError: CleanWebpackPlugin is not a constructor
  10. pd.stats.ols.MovingOLS以及替代
  11. tree方法php,jsTree详细使用说明
  12. 基本知识 100024
  13. 用java求素数饼放在数组中_【Java算法题】打印沙漏、素数对猜想、数组元素右移、双倍数、洗牌机...
  14. 天翼网关 ddns设置_为什么说网关在任何工业物联网解决方案中都很重要?
  15. linux下phylip软件构建NJ树,SNP数据构建系统进化树
  16. 中国***传说:游走在黑暗中的精灵
  17. 对于女生来说,软件测试和前端,学哪一个更好啊
  18. 1字符集 iso latin_附件一、ISO Latin-1字符集
  19. hub75点屏(32扫)
  20. 厉害了!支付宝逆天升级,可一键撤回被骗转账 网友:干得好!

热门文章

  1. 云起作者认证大神_最喜欢的言情小说大神,有你喜欢的吗
  2. html游戏闪,HTML最简单的文字闪烁代码
  3. 安可与普通测评的区别_PRINCE王子TeXtreme Tour 100系列网球拍测评(文末有福利)
  4. php挖洞提权,挖洞经验 | 看我如何发现GitHub提权漏洞获得$10000赏金
  5. 学习MSCKF笔记——真实状态、标称状态、误差状态
  6. 【NLP】如何系统性的学习NLP,有三AI-NLP知识星球等你来
  7. 全球及中国第三方供应链管理行业发展状况与规模前景分析报告2022-2027年
  8. 中国传感器行业应用规模与投资价值分析报告2022版
  9. svn添加钩子hook
  10. 乡村振兴种业使命-丰收节交易会·张桃林:种业谋定格局