Mongodb集群——master/slave

集群的配置

(本测试放于同一台机器进行配置,所以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

时间: 2024-10-13 00:53:37

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

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

搭建高可用mongodb集群(一)--配置mongodb 在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过廉价服务器存储大量的数据,轻松摆脱传统mysql单表存储量级限制. 高扩展性,Nosql去掉了关系数据库的关系型特性,很容易横向扩展,摆脱了以往老是纵向扩展的诟病. 高性能,Nosql通过简单的key-value方式获取数据,非常快速.还有N

mongodb集群搭建

mongodb集群有三种方式 1,主从模式,类似mysql master slave方式. 2,副本集模式,其实是一主多从,如果主节点挂掉,会重新在从节点选取一台为主节点. 3,分片模式,针对大数据量,高负载情况. 从图中可以看到有四个组件:mongos.config server.shard.replica set. mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自己就是一个请求分发中心,它负责把对应的数据请求请求转发

搭建高可用mongodb集群

搭建高可用mongodb集群(一)——配置mongodb Posted on 17 十一月, 2013 by lanceyan | 9条评论 在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. NOSQL有这些优势: 大数据量,可以通过廉价服务器存储大量的数据,轻松摆脱传统mysql单表存储量级限制. 高扩展性,Nosql去掉了关系数据库的关系型特性,很容易横向扩展,摆脱了以往老是纵向扩展的

mongodb集群安装及延迟节点配置

mongodb集群安装及延迟节点配置 本文主要介绍mongodb安装.副本集模式的配置.mongodb数据库的简单使用及延迟节点搭建和利用延迟节点恢复误删除的数据. 一.系统环境 平台:Centos6.6_x86_64 实验环境:四台主机部署副本集模式集群 主机:192.168.115.21.192.168.115.22.192.168.115.23.192.168.115.24 规划:21为master节点,22为副本节点,23为副本节点,24为延迟节点 目的:完成副本集模式集群的部署 测试延

mongodb集群化

转自:https://www.cnblogs.com/nulige/p/7613721.html 一.mongodb主从复制配置 主从复制是MongoDB最常用的复制方式,也是一个简单的数据库同步备份的集群技术,这种方式很灵活.可用于备份,故障恢复,读扩展等. 最基本的设置方式就是建立一个主节点和一个或多个从节点,每个从节点要知道主节点的地址.采用双机备份后主节点挂掉了后从节点可以接替主机继续服务.所以这种模式比单节点的高可用性要好很多. 配置主从复制的注意点 1 2 3 1)在数据库集群中要明

搭建高可用mongodb集群(二)—— 副本集

http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html 在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 这篇文章看完这些问题就可以搞定了.NoSQL的产生就是为了解决大数据量.高扩展性.高

搭建高可用mongodb集群—— 分片

从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不行!“分片”就用这个来解决这个问题. 传统数据库怎么做海量数据读写?其实一句话概括:分而治之.上图看看就清楚了,如下 taobao岳旭强在infoq中提到的 架构图: 上图中有个TDDL,是taobao的一

利用Docker部署mongodb集群--分片与副本集

环境 Docker version 1.6.2  mongodb 3.0.4 第一步  编写Dockerfile并生成镜像 主意包含两个Dockerfile镜像,一个mongod的,一个mongos(在集群中负责路由) 编写Mongod的Dockerfile: FROM ubuntu:14.04 RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 ENV MONGO_MAJOR 3.0 RUN ech

【转】搭建高可用mongodb集群(二)—— 副本集

在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 这篇文章看完这些问题就可以搞定了.NoSQL的产生就是为了解决大数据量.高扩展性.高性能.灵活数据模型.高可用性.但是光通过主从模式的架构远远达不到上面几点,由此MongoDB设计了副本集和分片的功能