集群的配置

(本测试放于同一台机器进行配置,所以IP地址一样,如果是在不同的服务器上更换IP便可以)
 
1、目录结构
     
拷贝两份mongodb到/home/scotte.ye/mongo1和/home/scotte.ye/mongo2
 
2、开启mongodb
 
主:
#cd /home/scotte.ye/mongo1/bin
#./mongod --master -port=10111 -dbpath=/home/data/10111 -nohttpinterface &
#
这样主服务器就开启了,几个关键参数的说明(当然也可以自己查看帮助,./mongod --help):
--master:标识当前开启的mongodb是作为主服务器的
-port:当前服务器的监听服务端口。默认27017
-dbpath:批当前程序运行的日志保存路径。默认/data/db。注这个路径mongodb不人自己创建,所以一定要自己手工来创建,否则程序不能正常启动。
-nohttpinterface:不开启网页接口,也就是不能通过网页的形式查看服务器运行状态。默认是会在28017端口开启一个网页服务提供用户查看服务器状态。因为当前都在同一个机器上,所以如果开启这个两个会产生冲突,所以不能开启。
 
从:
#cd /home/scotte.ye/mongo1/bin
#./mongod --slave --source=192.168.35.106:10111 -port=10112 -dbpath=/home/data/10112 -nohttpinterface &
#
这是开启一个从服务器,多个从也是按相同的方式来开启。几个关键的参数说明:
--slave:指明当前开启的为从服务器。
--source:标明当前从服务器要连接的主服务器的端口和IP
其它参数同主,所以不再赘述。
 
集群特点
 
1、只有主服务器允许写入,其它从服务器只能读取。
2、从服务器启动的时候马上就会和主服务器进行数据同步,所以不要担心后起的从服务器不会和主服务器同步之前的数据,也不要我们自己手动操作。
 
集群的主从切换
 
1、主机宕机,slave顶替
  • 停止slave的mongod进程
  • 删除slave目录下的local.*文件
  • 以--master的模式启动B
2、切换Master/Slave(原来的master是正常运行的)
  • 用fsync命令暂停master的写操作 //确保切换的时候主从数据同步
  • 关闭slave服务
  • 清空slave目录下的local.*文件
  • 用--master重启slave为master
  • 在原来的slave也就是现在的master上面执行一次写操作,生成oplog,获取第一个同步点,因为slave与master的数据同步是通过oplog来实现的。所以这一步很重要,一定要完成。
  • 关闭现master服务,同时slave也会生成新的local.*文件
  • 关闭原master,用现master上面的local.*文件替换原master上面的local.*.因为文件比较大,所以最好是压缩拷贝
  • 再用--master选项重启新master服务
  • 再用--slave的模式重启原master服务,注意还要加一个-fastsync选项。这个和用fsync来暂停master有关
     如果原来的master不是正常的,那么这个时候可以跳过第一步,拷贝新master的文件到原master重启服务就可以了。
 
3、更新主服务器位置
 
     假设原来从主机的启动方式如下:
     $ mongod --slave --source 192.168.35.106:10111
     此时如果想更换主服务器的地址,可以通过下面的方式:
  • 重启mongod服务,不要加-slave 和 -source选项:$ mongod
  • 启动shell执行如下操作:
    • > use local
    • switched to db local
    • >db.sources.update({host:"192.168.356.106:10111"},{$set:{host:"192.168.35.106:10112"}})
  • 接着再重启服务器:
    • $ ./mongod --slave --source=192.168.35.106:10112
    • $ # or
    • $ ./mongod --slave

Mongodb集群——master/slave的更多相关文章

  1. 搭建高可用mongodb集群(一)——配置mongodb

    在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过 ...

  2. Mongodb集群【三】

    Mongodb常用三种集群 1 主从(Master/Slave) 不推荐,但是mongodb依然保留有.一主多从,不支持链式结构.简单主从,没有裁仲者不能自动恢复. 2 副本集(Relica Set) ...

  3. 高可用的MongoDB集群【转】

    刚接触MongoDB,就要用到它的集群,只能硬着头皮短时间去看文档和尝试自行搭建.迁移历史数据更是让人恼火,近100G的数据文件,导入.清理垃圾数据执行的速度蜗牛一样的慢.趁着这个时间,把这几天关于M ...

  4. 搭建高可用mongodb集群(一)——配置mongodb

    在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过 ...

  5. 转】MongoDB主从复制实验 master/slave

    原博文出自于: http://blog.fens.me/category/%E6%95%B0%E6%8D%AE%E5%BA%93/page/4/ 感谢! Posted: May 31, 2013 Ta ...

  6. mongodb基本命令,mongodb集群原理分析

    mongodb基本命令,mongodb集群原理分析 集合: 1.集合没有固定数据格式. 2. 数据: 时间类型: Date() 当前时间(js时间) new Date() 格林尼治时间(object) ...

  7. mongodb集群化

    转自:https://www.cnblogs.com/nulige/p/7613721.html 一.mongodb主从复制配置 主从复制是MongoDB最常用的复制方式,也是一个简单的数据库同步备份 ...

  8. Mongodb集群调研

    目录 一.高可用集群的解决方案 二.MongoDB的高可用集群配置 三.Mongo集群实现高可用方式详解 四.Sharding分片技术 一.高可用集群的解决方案 高可用性即HA(High Availa ...

  9. [转]搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

随机推荐

  1. 客户端禁用cookie

    如果客户端禁用cookie的话不影响session使用 的设置方法: <sessionState     cookieless="AutoDetect"

  2. SpringMVC+FreeMarker+Mybatis 整合

    这个项目自己有时写写测试代码什么的, 代码比较简单,代码已放在 github : https://github.com/zhouyongtao/homeinns-web 目录结构: 贴一下Maven的 ...

  3. salesforce 零基础学习(七十)使用jquery tree实现树形结构模式

    项目中UI需要用到树形结构显示内容,后来尽管不需要做了,不过还是自己做着玩玩,mark一下,免得以后项目中用到. 实现树形结构在此使用的是jquery的dynatree.js.关于dynatree的使 ...

  4. docker namespaces

    https://docs.docker.com/engine/security/userns-remap/#prerequisites 注:以下验证环境为centos7.5 docker 18.09. ...

  5. idea编辑器无法识别jdk

    File-->Invalidate Caches / Restart...-->Invalidate and Restart 然后就可以了

  6. Python中创建守护进程

    python 创建守护进程 python 的os.setdid()提供了类似linux c api的 setsid 也可以通过unix双fork创建守护进程. 几个相关的函数 os.umask(0) ...

  7. 136 Ugly Numbers(priority_queue+逆向求解要求数)

    题目链接: https://cn.vjudge.net/problem/UVA-136 /*问题 输出第1500个丑数,丑数的定义是不能被2,3,5以外的其他素数整除的数 解题思路 直接硬暴力先试一下 ...

  8. 异步消息队列Celery

    Celery是异步消息队列, 可以在很多场景下进行灵活的应用.消息中包含了执行任务所需的的参数,用于启动任务执行, suoy所以消息队列也可以称作 在web应用开发中, 用户触发的某些事件需要较长事件 ...

  9. ASP.NET MVC验证码演示(Ver2)

    前一版本<ASP.NET MVC验证码演示>http://www.cnblogs.com/insus/p/3622116.html,Insus.NET还是使用了Generic handle ...

  10. C# 导出Excel表格

    function exportExcel() { //查询条件 var startTime = F.ui.startTime.getText() == "" ? null : F. ...