mongodb 主从配置比较简单,只需要在启动的时候添加参数(-master、-slave -source IP:PORT)。

Ubuntu 16.04 系统环境

监听端口分别为:27010、27011、27012。配置后的环境为:27010为主,27011、27012为从。

1) 创建mongodb数据存放的文件夹

   mkdir -p /mongodata/test/db27010
mkdir -p /mongodata/test/db27011
mkdir -p /mongodata/test/db27012

2)启动27010主

在启动命令中加入 master,该mongo服务即可作为主。

mongod -dbpath "/mongodata/test/db27010" -port  -master -logpath "/mongodata/test/db27010/log.txt" -fork

3)启动27011、27012从

添加参数 --slave 作为从,通过--source localhost:27010来指定主的位置。

mongod -dbpath "/mongodata/test/db27011" -port  -slave -source localhost: -logpath "/mongodata/test/db27011/log.txt" -fork

mongod -dbpath "/mongodata/test/db27012" --port 27012 -slave -source localhost:27010  -logpath "/mongodata/test/db27012/log.txt" -fork

4)测试

查看mongo服务

ps -aux|grep mongo
root@localhost:/home/lime# ps -aux | grep mongo
root 0.9 9.0 ? Sl : : mongod -dbpath /mongodata/test/db27010 -port -master -logpath /mongodata/test/db27010/log.txt -fork
root 0.9 8.6 ? Sl : : mongod -dbpath /mongodata/test/db27011 -port -slave -source localhost: -logpath /mongodata/test/db27011/log.txt -fork
root 1.1 5.0 ? Sl : : mongod -dbpath /mongodata/test/db27012 -port -slave -source localhost: -logpath /mongodata/test/db27012/log.txt -fork

添加测试数据:
我们在主27010中创建user集合,并添加100个用户,然后再从中查看。

mongo --port 27010
use user;
for(i=;i<;i++){ db.user.insert({"name":"ximu"+i}); }
> db.user.find().skip()
{ "_id" : ObjectId("59300dd3ea97563d18acf140"), "name" : "lime_90" }
{ "_id" : ObjectId("59300dd3ea97563d18acf141"), "name" : "lime_91" }
{ "_id" : ObjectId("59300dd3ea97563d18acf142"), "name" : "lime_92" }
{ "_id" : ObjectId("59300dd3ea97563d18acf143"), "name" : "lime_93" }
{ "_id" : ObjectId("59300dd3ea97563d18acf144"), "name" : "lime_94" }
{ "_id" : ObjectId("59300dd3ea97563d18acf145"), "name" : "lime_95" }
{ "_id" : ObjectId("59300dd3ea97563d18acf146"), "name" : "lime_96" }
{ "_id" : ObjectId("59300dd3ea97563d18acf147"), "name" : "lime_97" }
{ "_id" : ObjectId("59300dd3ea97563d18acf148"), "name" : "lime_98" }
{ "_id" : ObjectId("59300dd3ea97563d18acf149"), "name" : "lime_99" }

查看从的数据:

mongo --port 27011
show dbs;
use user;
db.user.find().skip().limit(); mongo --port 27012
show dbs;
use user;
db.user.find().skip().limit();

5)主从的管理  -- -- -- -- -- -- 以下测试未通过
查看当前的从服务器:

mongo --port 27010
use local;
db.slaves.find();

输出如下内容:

{ "_id" : ObjectId("4fabb177fc376c0a2552bab4"), "host" : "127.0.0.1", "ns" : "local.oplog.$main", "syncedTo" : { "t" : , "i" :  } }
{ "_id" : ObjectId("4fabb18078bc627b617794d2"), "host" : "127.0.0.1", "ns" : "local.oplog.$main", "syncedTo" : { "t" : , "i" : } }

查看从的主:

mongo --port 27011
use local;
db.sources.find();

输出如下内容:

{ "_id" : ObjectId("4fabb18078bc627b617794d1"), "host" : "localhost:27010", "source" : "main", "syncedTo" : { "t" : , "i" :  }, "localLogTs" : { "t" : , "i" :  } }

6)主从复制的选项

–slavedelay 10      #延时复制 单位为秒
–autoresync         #自动重新同步
–only               #复制指定的数据库,默认复制所有的库
–oplogSize          #主节点的oplog日志大小,单位为M

啦啦啦

最新文章

  1. 使用COALESCE时注意left join为null的情况
  2. Objective-C汇总
  3. (1)RGB-D SLAM系列- 工具篇(硬件+关键技术)
  4. struct内存对齐1:gcc与VC的差别
  5. 图论--最近公共祖先问题(LCA)模板
  6. c#反射获取常量属性名以及其值(真正可用)
  7. 解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题
  8. vs2013中国集
  9. poj 1083 Moving Tables_dp
  10. hibernate之使用Annotation注解搭建项目
  11. nodeJS中读写文件方法的区别
  12. JavaScript入门之Canvas(一): 2D Context
  13. XMind与MindManager哪个好(网易云课堂老师:Array老师讲解稿)
  14. LAMP第三部分php,mysql配置
  15. Vue 进阶之路(七)
  16. 基于.Net进行前端开发的技术栈发展路线(一)
  17. PYTHON-函数的定义与调用,返回值,和参数
  18. Boost 常用的库
  19. 如何使用SVN
  20. Python3 使用 matplotlib 画折线图

热门文章

  1. Git 克隆操作
  2. Spring Cloud Eureka 注册中心 服务消费者 服务提供者之间的关系以及高可用之间的联系
  3. Jackson 处理复杂类型(List,map)两种方法
  4. php 超时 解决办法 (Maximum execution time of 30 seconds exceeded)这个问题?
  5. IIS字体文件添加MIME映射
  6. oozie 入门
  7. SAP OBYC自动记账的实例说明 +VALUE STRING
  8. SAP ERP 与SAP CRM有什么不同?
  9. android手机如何获取手机号
  10. JSONObject相关依赖架包下载(Maven依赖下载)