mongodb主从模式部署

mongodb部署采用主从模式,主节点为:peiwo-turn4,从节点为peiwo-proxy

1、创建部署用户与部署路径、日志、数据存放路径

在peiwo-proxy主机上执行以下操作

groupadd mongodb

useradd -g mongodb -d /usr/local/mongodb mongodb

mkdir -p /data0/mongodb/logs  #日志文件存放路径

mkdir -p /data0/mongodb/data/master #数据文件存放路径

mkdir -p /data0/mongodb/pid #pid文件存放路径

mkdir -p /usr/local/mongodb/etc #配置文件存放路径

日志、数据存放路径授权:chown -R mongodb.mongodb /data0/mongodb

在peiwo-turn4主机上执行以下操作

groupadd mongodb

useradd -g mongodb -d /usr/local/mongodb mongodb

mkdir -p /data1/mongodb/logs  #日志文件存放路径

mkdir -p /data1/mongodb/data/master #数据文件存放路径

mkdir -p /data1/mongodb/pid #pid文件存放路径

mkdir -p /usr/local/mongodb/etc #配置文件存放路径

日志、数据存放路径授权:chown -R mongodb.mongodb /data1/mongodb

2、下载软件并解压

curl -O http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.3.tgz && tar -zxvf mongodb-linux-x86_64-1.6.3.tgz -C /usr/local/mongodb

3、在/usr/local/mongodb/etc下新增配置文件

peiwo-turn4主机配置文件如下:master.conf

dbpath=/data1/mongodb/data/master

logpath=/data1/mongodb/logs/master.log

pidfilepath=/data1/mongodb/pid/master.pid

directoryperdb=true

logappend=true

port=21000

master = true

source=10.144.160.124:21000

oplogSize=100

fork=true

noprealloc=true

peiwo-proxy主机配置文件如下:slave.conf

dbpath=/data0/mongodb/data/slave

logpath=/data0/mongodb/logs/slave.log

pidfilepath=/data0/mongodb/pid/slave`.pid

directoryperdb=true

logappend=true

port=21000

slave = true

source=10.144.145.235:21000

oplogSize=100

fork=true

noprealloc=true

autoresync=true

4、启动/停止/进程查看

登陆mongodb服务器,切换到mongodb用户:su - mongodb

启动进程:./start.sh

停止进程:想结束mongodb,可以killall mongod,或者./mongo在控制台中,use admin  ,然后db.shutdownServer()来结束mongodb服务器。直接kill -9会使mongo非正常退出,可能会造成数据损坏问题。

查看进程运行状态:./ps.sh

查看日志:./taillog.sh

登陆mongodb客户端:./connect.sh

主从日常运维命令:

1、如果发现主从不同步,从上手动同步

db.runCommand({"resync":1})

2、状态查询

db.runCommand({"isMaster":1})

3、在丛库上查询主库地址

> use local;

switched to db local

> db.sources.find();

{ "_id" : ObjectId("5551769ddf22026a698a271d"), "host" : "10.144.145.235:21000", "source" : "main", "syncedTo" : Timestamp(1431510735, 1) }

4、查看各Collection状态

db.printCollectionStats();

5、查看主从复制状态

db.printReplicationInfo();

6、测试主从

在主服务器新建数据库

mongo --port 21000

>show dbs

>use elaindb

>db.blog.save({title:"new article"})

在从服务器上查看同步数据

mongo --port 21000

在从库插入数据的操作 会提示 not master

> use elaindb;

switched to db elaindb

> db.blog.find();

{ "_id" : ObjectId("4e9174b48443c8ef12b30c56"), "title" : "new article" }

查看主从同步信息:

> db.printReplicationInfo();

this is a slave, printing slave replication info.

source:   10.0.0.11:27001

syncedTo: Sun Oct 09 2011 18:37:12 GMT+0800 (CST)

= 19 secs ago (0.01hrs)

>db.printSlaveReplicationInfo();

此为同步过来的数据,测试成功

7、Slave 顶替 Master

如果主服务器 10.144.145.235宕机了,

此时需要用 10.144.160.124机器来顶替 master 服务,

步骤如下:

停止 10.144.160.124 进程(mongod)

kill -2 `ps -ef|grep mongod|grep -v grep|awk ‘{print $2}‘`

#删除 10.144.160.124 数据目录中的 local.*

rm -rf /data1/mongodb/data/master//local.*

#以--master 模式启动 10.144.160.124

附录二、切换Master/Slave 角色

切换主库10.144.145.235和从库10.144.160.124 的角色

步骤如下:(命令略)

用fsync 命令暂停 主库 上的写操作,

关闭 从库 上的服务

清空 从库 上的local.*文件

用-master 选项重启 从库 服务

在 从库 上执行一次写操作,初始化oplog,获得一个同步起始点

关闭 从库 服务,此时 从库 已经有了新的local.*文件

关闭 主库 服务,并且用 从库 上新的local.*文件来代替 主库 上的local.*文件(建议先压缩再COPY)

用-master 选项重启 从库 服务

在启动slave的选项上加一个-fastsync 选项来重启 主库 服务

时间: 2024-12-28 17:51:16

mongodb主从模式部署的相关文章

Mongodb主从模式篇

主从模式架构图: 主从配置安装: 10.10.20.160(master)-->10.10.20.161(slave) Master: tar zxvf mongodb-linux-x86_64-2.2.2.tgz ln -s mongodb-linux-x86_64-2.2.2 mongodb mkdir -p /u01/mongodata/db/geomaster/ mkdir -p /u01/mongodata/log/ /usr/local/mongodb/bin/mongod --fo

Linux系统mongodb主从模式配置

一.环境 操作系统: # uname -r 2.6.32-358.el6.x86_64 # cat /etc/issue CentOS release 6.4 (Final) Kernel \r on an \m 主:192.168.137.148 从:192.168.137.154 二.主从同步系统时间 #ntpdate ntp.api.bz && hwclock -w --systohc 三.安装 #wget  #tar xf mongodb-linux-x86_64-enterpri

Mongodb的主从模式搭建实例

对数据库来说,为了保证数据的安全性和高可用性,往往会采用主从架构模式,对于Mongodb也是如此,这篇文章将讲述一下如何搭建一个简单的Mongodb主从架构模型. 在下面的实例中,因为没有多个服务器的原因,在一台服务器上进行了实验,采用不同的端口号进行区分主从. 首先我们需要的是下载Mongodb的官方版本,这里我下载的是2.4.1的Linux版本,并在Linux下进行解压,然后创建两个文件夹master和slave,分别存放主Mongodb实例和从mongodb实例. 然后我们首先启动mast

mongodb高可用集群01---单实例、主从模式、一主多从模式

本人根据此文章进行学习:http://blog.jobbole.com/72610/ 会不断更新内容主要分为四大模块: mongodb各种方式的部署 常用使用[工作不用就没必要学了,精力有限] 性能优化 故障排除 很多会和网上资料一样,主要是自己学习不断梳理资料,追求:提及精华 单实例: 1)建立mongodb测试文件 #存放整个mongodb文件 mkdri-p /data/mongodbtest/single #mongodb数据文件 mkdir /data/mongodbtest/data

MongoDB集群部署(副本集模式)

一.需求背景1.现状描述(1).针对近期出现的mongodb未授权的安全问题,导致mongodb数据会被非法访问.应安全平台部的要求,需要对所有mongodb进行鉴权设置,目前活动侧总共有4台,用于某XX产品: (2).某XX产品用到4台mongodb,属于2015年机房裁撤的范围: (3).早期的4台mongodb采用是的M1机型,同时在架构上采取了路由分片的模式.从目前来看,无论是数据量上,还是访问量上,都比较小,在资源上有点浪费,在架构上属于过早设计. 而本次新建的mongodb集群,采用

Haproxy+Keepalived高可用环境部署梳理(主主和主从模式)

Nginx.LVS.HAProxy 是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,通常会结合Keepalive做健康检查,实现故障转移的高可用功能. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59

LVS+Keepalived 高可用环境部署记录(主主和主从模式)

一.LVS+Keepalived主从热备的高可用环境部署 1)环境准备 1 2 3 4 5 6 7 8 9 10 11 12 LVS_Keepalived_Master      182.148.15.237 LVS_Keepalived_Backup      182.148.15.236 Real_Server1               182.148.15.233 Real_Server2               182.148.15.238 VIP                

MySQL 主从同步(1) - 概念和原理介绍 以及 主从/主主模式 部署记录

Mysql复制概念Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收从那时起

MongoDB 进阶模式设计

转载: http://www.mongoing.com/mongodb-advanced-pattern-design 12月12日上午,TJ在开源中国的年终盛典会上分享了文档模型设计的进阶技巧,就让我们来回顾一下吧: —————————————————————————————————————————————————————————- 从很久以前,我就开始接触开源产品:从最开始的使用.受益者到后来的贡献者,到现在的热情推广者.现在,我是MongoDB的技术顾问.我的职责是为MongoDB的客户和