当前位置: 首页 > news >正文

MongoDB主从

   数据存储是整个系统中非常重要的一部分,在MySQL、Redis中都有主从架构,能够在一定程度上保证数据的安全性和高可用性,而MongoDB中也是有这种实现方式。主从配置非常简单,但是随着技术的发展已经很少采用主从架构,而更多的是采用副本集或者集群的模式去实现高可用。

简单的介绍一下MongoDB主从实现的方式和

环境:

操作系统:CentOS 6.7

MongoDB:  3.4.5

主数据目录:/data/mongomaster 

从数据目录: /data/mongoslave

MongoDB 管理命令环境变量:

1
export  PATH= "$PATH:/home/mongodb/mongodb/mongodb-3.4.5/bin"

启动主

1
2
3
4
5
6
mongod   --dbpath= /data/mongomaster/   --port 10000  --master  --logpath= /data/mongomaster/masterlog    --logappend     --fork
 
bout to fork child process, waiting  until  server is ready  for  connections.
forked process: 3114
child process started successfully, parent exiting
[root@bogon data] #

启动从

1
2
3
4
mongod   --dbpath= /data/mongoslave/    --logpath= /data/mongoslave/slave .log  --logappend    --port  10002 --slave -- source  192.168.1.130:10000   --fork
about to fork child process, waiting  until  server is ready  for  connections.
forked process: 3144
child process started successfully, parent exiting

测试 在主库上面创建mongo库 winne集合插入文档数据

1
2
3
4
5
6
7
8
9
10
11
> use  mongo
switched to db mongo
> show  dbs
admin   0.000GB
local    0.003GB
master  0.002GB
> db
mongo
for (i=0;i<10000;i++)db.mongo.insert({ "name"  "linux"  }, { "object"  "docker" }, { "age"  :i})
WriteResult({  "nInserted"  : 1 })
>

从库测试

1
2
3
4
5
6
7
8
9
10
11
12
> show  dbs
2017-05-20T14:14:42.526+0800 E QUERY    [thread1] Error: listDatabases failed:{
     "ok"  : 0,
     "errmsg"  "not master and slaveOk=false" ,
     "code"  : 13435,
     "codeName"  "NotMasterNoSlaveOk"
} :
_getErrorWithCode@src /mongo/shell/utils .js:25:13
Mongo.prototype.getDBs@src /mongo/shell/mongo .js:62:1
shellHelper.show@src /mongo/shell/utils .js:769:19
shellHelper@src /mongo/shell/utils .js:659:15
@(shellhelp2):1:1,

报错了什么情况呢?找找资料什么的,关键信息not master and slaveOk=false 和NotMasterNoSlaveOk 随便一搜,结果好多这个报错呢,都是说主从这种架构默认从库不支持读写,像Redis等是不支持写,MongoDB是更神奇,直接不能读,从从库上简单的配置一下,再看看。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2017-05-20T14:17:40.067+0800 E QUERY    [thread1] SyntaxError: illegal character @(shell):1:1
> rs.slaveOk()
> show  dbs
admin   0.000GB
local    0.000GB
master  0.002GB
mongo   0.000GB
 
2017-05-20T14:17:40.067+0800 E QUERY    [thread1] SyntaxError: illegal character @(shell):1:1
> rs.slaveOk()
> show  dbs
admin   0.000GB
local    0.000GB
master  0.002GB
mongo   0.000GB

经过验证数据同步



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

相关文章:

  • Linux系统使用lvm扩展根分区
  • 【人工智能】 火爆的机器学习和人工智能,为何在金融业四处碰壁?
  • 定制你的敏捷方法:以结果为导向
  • Java并发编程(六)发布与逸出
  • linux 查看网卡流量的方法
  • 自己制作 XP With SP3 系统光盘 包括驱动SATA集成AHCI驱动
  • 使用Maven运行单元测试
  • 创建服务
  • python01 用户交互程序
  • Mongodb 3.2 Manual阅读笔记:CH9 存储
  • 第101天:CSS3中transform-style和perspective
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • RxJS: 简单入门
  • 使用秘钥登录服务器
  • JavaScript学习(1)之JavaScript基础
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • exports和module.exports
  • gitlab-ci配置详解(一)
  • JS学习笔记——闭包
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 树莓派 - 使用须知
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 字符串匹配基础上
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • # Java NIO(一)FileChannel
  • $.each()与$(selector).each()
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (LeetCode 49)Anagrams
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (转)Android学习笔记 --- android任务栈和启动模式
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET Framework 服务实现监控可观测性最佳实践
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET值类型变量“活”在哪?
  • @FeignClient注解,fallback和fallbackFactory
  • @RestControllerAdvice异常统一处理类失效原因
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • []常用AT命令解释()
  • [ActionScript][AS3]小小笔记
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [C]整形提升(转载)
  • [echarts] y轴不显示0
  • [Foreman]解决Unable to find internal system admin account
  • [FUNC]判断窗口在哪一个屏幕上
  • [G-CS-MR.PS02] 機巧之形2: Ruler Circle
  • [Linux]进程间通信(system V共享内存 | system V信号量)