mongodb 最新版本高可用解决方案-replica sets副本集部署详细过程

本文详细介绍了MongoDB的副本集(Replica Sets)部署过程,包括设置yum源安装、源码安装、启动3个mongodb服务、配置副本集、初始化副本集、查看状态、验证数据一致性和主次切换等步骤,旨在实现MongoDB的高可用性解决方案。
摘要由CSDN通过智能技术生成
               

 

 

Mongodb副本集:

NoSQL的产生就是为了解决大数据量、高扩展性、高性能、灵活数据模型、高可用性。但是光通过主从模式的架构远远达不到上面几点,由此MongoDB设计了副本集和分片的功能,先来用用副本集。

 

Mongodb副本集的同步机制:

数据复制的目的是使数据得到最大的可用性,避免单点故障引起的整站不能访问的情况的发生,Mongodb的副本集在同一时刻只有一台服务器是可以写的,副本集的主从复制也是一个异步同步的过程,是slave端从primary端获取日志,然后在自己身上完全顺序的执行日志所记录的各种操作(该日志是不记录查询操作的),这个日志就是local数据库中的oplog.rs表,默认在64位机器上这个表是比较大的,占磁盘大小的5%,oplog.rs的大小可以在启动参数中设定:--oplogSize 1000,单位是M。

1,设置yum源安装

创建/etc/yum.repos.d/mongodb-enterprise.repo文件,这样就可以使用yum来安装mongodb了。

 

[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.0.asc

 

每一个release版本的.repo文件可以在repository找到,记住奇数镜像版本(比如e.g.2.5)是开发版本,放在生成环境是不太合适的。

 

 

2,源码安装

2.1 下载安装包

在官方网站可以下载到比较新的版本,下载地址:

https://www.mongodb.org/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.3.tgz/download

 

我这里下载的是稳定版本:mongodb-linux-x86_64-3.0.3.tgz,安装也是用的3.0.3; 3.0.3的下载地址为:http://download.csdn.net/detail/mchdba/9546256

 

 

2.2 解压安装

tar -xvf mongodb-linux-x86_64-3.0.3.tgz  -C /usr/local/             

 

 

3 启动3个mongodb服务

安装mongodbreplica sets,至少需要3台linux服务器,而初始化副本集合,本来应该是3台服务器,但是这里只是测试环境,启用了3个mongodb端口进程来来模拟3个mongodb的服务器达到一样的效果,在实际中,可以部署在多台mongodb服务器上,如下表所示:

               

Mongodb 主机                                         

服务器端口地址                                                  

默认角色                                      

mongodb主机 1

localhost:27017

primary

mongodb主机 2

localhost:27018

secondary

mongodb主机 3

localhost:27019

secondary

 

 

开始启动3个mongodb服务:

 

 

# 启动第一个mongodb 27017,默认为primary服务器

 

mkdir -p /data/mongodb/log27017

 

mkdir -p /data/mongodb/data27017

 

/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod  --replSet repset --port 27017 --dbpath /data/mongodb/data27017 --oplogSize  2048 --logpath /data/mongodb/log27017/mongod.log &

 

 

 

# 启动第二个mongodb 27018

 

mkdir -p /data/mongodb/log27018

 

mkdir -p /data/mongodb/data27018

 

/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod  --replSet repset --port 27018 --dbpath /data/mongodb/data27018 --oplogSize  2048 --logpath /data/mongodb/log27018/mongod.log &

 

 

 

# 启动第三个 mongodb 27019

 

mkdir -p /data/mongodb/log27019

 

mkdir -p /data/mongodb/data27019

 

/usr/local/mongodb-linux-x86_64-3.0.3/bin/mongod  --replSet repset --port 27019 --dbpath /data/mongodb/data27019 --oplogSize  2048 --logpath /data/mongodb/log27019/mongod.log &

 

 

4 添加replica sets配置

在任何一台mongodb实例上登录,进入admin库,执行config命令:

> use admin

 

switched to db admin

 

>

 

config = { _id:"repset",  members:[

 

... {_id:0,host:"mongodb_server:27017"},

 

...  {_id:1,host:"mongodb_server:27018"},

 

...  {_id:2,host:"mongodb_server:27019"}]

 

... };

 

 

 

> config = { _id:"repset",  members:[

 

... ...  {_id:0,host:"mongodb_server:27017"},

 

... ...  {_id:1,host:"mongodb_server:27018"},

 

... ...  {_id:2,host:"mongodb_server:27019"}]

 

... ... };

 

{

 

         "_id"  : "repset",

 

         "members"  : [

 

                   {

 

                            "_id"  : 0,

 

                            "host"  : "mongodb_server:27017"                  

 

                   },

 

                   {

 

                            "_id"  : 1,

 

                            "host"  : "mongodb_server:27018"

 

                   },

 

                   {

 

                            "_id"  : 2,

 

                            "host"  : "mongodb_server:27019"

 

                   }

 

         ]

 

}

 

 

 

5 初始化副本集

# 初始化副本集配置,使用rs.initiate(config);命令

rs.initiate(config);

> rs.initiate(config);

{ "ok" : 1 }

repset:SECONDARY>

 

 

6 查看replica sets状态

看到config配置里面的第一个默认为primary,后面的都为secondary,然后查看"optime": Timestamp(1465641737, 1),如果集合中的mongodb的optime一致,表是集群中各个mongodb数据是保持一致性的:

# 随意登录一个mongodb服务

 

[root@oracle_master ~]#  /usr/local/mongodb-linux-x86_64-3.0.3/bin/mongo localhost:27017

 

MongoDB shell version: 3.0.3

 

connecting to: localhost:27017/test

 

Server has startup warnings:

 

2016-06-10T07:56:33.333-0700 I  CONTROL  [initandlisten] ** WARNING:  You are running this process a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值