您好,欢迎来到软文情感网。
搜索
您的当前位置:首页生产环境MongoDB分片与集群方案

生产环境MongoDB分片与集群方案

来源:软文情感网


生产环境MongoDB 分片与集群 方案 一、 mongodb分片与集群拓扑图 二、分片与集群的部署 1.Mongodb的安装 分别在以上3台服务器安

生产环境MongoDB 分片与集群 方案

一、 mongodb分片与集群拓扑图

二、分片与集群的部署

1.Mongodb的安装

分别在以上3台服务器安装好mongodb

安装方法见安装脚本。

2.Mongod 创建单个分片的副本集

10.68.4.209

①建立数据文件夹和日志文件夹

mdkir /data/{master,slave,arbiter}

mkdir /data/log/mongodb/{master,slave,arbiter} -p

②建立配置文件

#master.conf

dbpath=/data/master

logpath=/data/log/mongodb/master/mongodb.log

pidfilepath=/var/run/mongo_master.pid

#directoryperdb=true

logappend=true

replSet=policydb

port=10002

oplogSize=10000

fork=true

noprealloc=true

profile=1

slowms=200


#slave.conf

dbpath=/data/slave

logpath=/data/log/mongodb/slave/mongodb.log

pidfilepath=/var/run/mongo_slave.pid

#directoryperdb=true

logappend=true

replSet=policydb

port=10001

oplogSize=10000

fork=true

noprealloc=true

profile=1

slowms=200

#arbiter.conf

dbpath=/data/arbiter

logpath=/data/log/mongodb/arbiter/mongodb.log

pidfilepath=/var/run/mongo_arbiter.pid

#directoryperdb=true

logappend=true

replSet=policydb

port=10000

oplogSize=10000

fork=true

noprealloc=true

profile=1

slowms=200

③启动mongodb

/etc/init.d/mongodb_master start

/etc/init.d/mongodb_slave start

/etc/init.d/mongodb_arbiter start

④配置主、备、仲裁节点

主节点:

# /usr/local/mongodb/bin/mongo 10.68.4.209:10002

MongoDB shell version: 2.4.9

connecting to: 10.68.4.209:10002/test

> use admin

switched to db admin

>config={ _id:"policydb", members:[ {_id:0,host:'10.68.4.209:10002',priority:2}, {_id:1,host:'10.68.4.209:10001',priority:1},

... {_id:2,host:'10.68.4.209:10000',arbiterOnly:true}] };

{

"_id" : "policydb",

"members" : [

{

"_id" : 0,

"host" : "10.68.4.209:10002",

"priority" : 2

},

{

"_id" : 1,

"host" : "10.68.4.209:10001",

"priority" : 1

},

{

"_id" : 2,

"host" : "10.68.4.209:10000",

"arbiterOnly" : true

}

]

}

rs.initiate(config) #初始化

rs.status() #查看集群状态

10.68.4.29

①建立数据文件夹和日志文件夹

mdkir /data/{master,slave,arbiter}

mkdir /data/log/mongodb/{master,slave,arbiter} -p

②建立配置文件

#master.conf

dbpath=/data/master

logpath=/data/log/mongodb/master/mongodb.log

pidfilepath=/var/run/mongo_master.pid

#directoryperdb=true

logappend=true

replSet=policydb2

port=10002

oplogSize=10000

fork=true

noprealloc=true

profile=1

slowms=200

#slave.conf

dbpath=/data/slave

logpath=/data/log/mongodb/slave/mongodb.log

pidfilepath=/var/run/mongo_slave.pid

#directoryperdb=true

logappend=true

replSet=policydb2

port=10001

oplogSize=10000

fork=true

noprealloc=true

profile=1

slowms=200

#arbiter.conf

dbpath=/data/arbiter

logpath=/data/log/mongodb/arbiter/mongodb.log

pidfilepath=/var/run/mongo_arbiter.pid

#directoryperdb=true

logappend=true

replSet=policydb2

port=10000

oplogSize=10000

fork=true

noprealloc=true

profile=1

slowms=200

③启动mongodb

/etc/init.d/mongodb_master start

/etc/init.d/mongodb_slave start

/etc/init.d/mongodb_arbiter start

④配置主、备、仲裁节点

主节点:

# /usr/local/mongodb/bin/mongo 10.68.4.209:10002

MongoDB shell version: 2.4.9

connecting to: 10.68.4.209:10002/test

> use admin

switched to db admin

> config={ _id:"policydb2", members:[ {_id:0,host:'10.68.4.29:10002',priority:2}, {_id:1,host:'10.68.4.29:10001',priority:1},

... {_id:2,host:'10.68.4.209:10000',arbiterOnly:true}] };

{

"_id" : "policydb",

"members" : [

{

"_id" : 0,

"host" : "10.68.4.29:10002",

"priority" : 2

},

{

"_id" : 1,

"host" : "10.68.4.29:10001",

"priority" : 1

},

{

"_id" : 2,

"host" : "10.68.4.29:10000",

"arbiterOnly" : true

}

]

}

rs.initiate(config) #初始化

rs.status() #查看集群状态

10.68.4.30

①建立数据文件夹和日志文件夹

mdkir /data/{master,slave,arbiter}

mkdir /data/log/mongodb/{master,slave,arbiter} -p

②建立配置文件

#master.conf

dbpath=/data/master

logpath=/data/log/mongodb/master/mongodb.log

pidfilepath=/var/run/mongo_master.pid

#directoryperdb=true

logappend=true

replSet=policydb3

port=10002

oplogSize=10000

fork=true

noprealloc=true

profile=1

slowms=200

#slave.conf

dbpath=/data/slave

logpath=/data/log/mongodb/slave/mongodb.log

pidfilepath=/var/run/mongo_slave.pid

#directoryperdb=true

logappend=true

replSet=policydb3

port=10001

oplogSize=10000

fork=true

noprealloc=true

profile=1

slowms=200

#arbiter.conf

dbpath=/data/arbiter

logpath=/data/log/mongodb/arbiter/mongodb.log

pidfilepath=/var/run/mongo_arbiter.pid

#directoryperdb=true

logappend=true

replSet=policydb3

port=10000

oplogSize=10000

fork=true

noprealloc=true

profile=1

slowms=200

③启动mongodb

/etc/init.d/mongodb_master start

/etc/init.d/mongodb_slave start

/etc/init.d/mongodb_arbiter start

④配置主、备、仲裁节点

主节点:

# /usr/local/mongodb/bin/mongo 10.68.4.209:10002

MongoDB shell version: 2.4.9

connecting to: 10.68.4.209:10002/test

> use admin

switched to db admin

> config={ _id:"policydb3", members:[ {_id:0,host:'10.68.4.30:10002',priority:2}, {_id:1,host:'10.68.4.30:10001',priority:1},

... {_id:2,host:'10.68.4.30:10000',arbiterOnly:true}] };

{

"_id" : "policydb",

"members" : [

{

"_id" : 0,

"host" : "10.68.4.30:10002",

"priority" : 2

},

{

"_id" : 1,

"host" : "10.68.4.30:10001",

"priority" : 1

},

{

"_id" : 2,

"host" : "10.68.4.30:10000",

"arbiterOnly" : true

}

]

}

rs.initiate(config) #初始化

rs.status() #查看集群状态

2.Mongod 创建单个分片的配置服务器

① 创建配置目录

10.68.4.209 mkdir /data/config

10.68.4.29 mkdir /data/config

10.68.4.30 mkdir /data/config

②准备配置服务器的配置文件

3个服务器的配置服务器的配置文件一致

#config.conf

dbpath=/data/config

logpath=/data/log/mongodb/config/mongodb.log

pidfilepath=/var/run/mongo_config.pid

directoryperdb=true

logappend=true

port=10003

fork=true

configsvr=true

③启动配置服务器

/etc/init.d/mongodb_config start

3.Mongod 创建并配置mongos和开启分片模式

① 创建日志目录

Mkdir -p /data/log/mongodb/mongos/

② 准备mongos的配置文件

#mongos.conf

logpath=/data/log/mongodb/mongos/mongodb.log

pidfilepath=/var/run/mongo_mongos.pid

logappend=true

port=10004

fork=true

configdb=10.68.4.209:10003,10.68.4.29:10003,10.68.4.30:1000

③ 启动mongos

/etc/init.d/mongodb_mongos start

④ 配置分片

sh.addShard("policydb/10.68.4.209:10002")

sh.addShard("policydb2/10.68.4.29:10002")

sh.addShard("policydb3/10.68.4.30:10002")

sh.enableSharding("policydb")

db.runCommand({"shardcollection":"policydb.fullPolicyTextInfo_history", "key":{"key":1}})

db.printShardingStatus() #查看分片状态

sh.status({verbose:true})

sh.status()

3.快速创建副本集和配置服务脚本

上图

1.图1

2.图2 config.conf配置文件

3.图3

MongoDB 3.0 正式版发布下载

CentOS编译安装MongoDB

CentOS 编译安装 MongoDB与mongoDB的php扩展

CentOS 6 使用 yum 安装MongoDB及服务器端配置

Ubuntu 13.04下安装MongoDB2.4.3

MongoDB入门必读(概念与实战并重)

Ubunu 14.04下MongoDB的安装指南

《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]

Nagios监控MongoDB分片集群服务实战

基于CentOS 6.5操作系统搭建MongoDB服务

MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里

本文永久更新链接地址:

软文情感网还为您提供以下相关内容希望对您有帮助:

20K以上so easy的面试题-MongoDB

每个分片是一个分区数据的逻辑集合,可能由单一服务器或者集群组成。MongoDB会根据分片键将数据分布到不同的分片上,实现数据的水平扩展。8. MongoDB的分片(Shard)和复制(replication)是怎样协同工作的?MongoDB的分片和复制是协同工作的。每个分片可能是一个由多个节点组成的复制集,以确保数据

mongodb分片可以做到故障切换么

分片(shard)是集群中存储集合数据子集的一台或者多台服务器。在生产环境中一个分片通常是一个副本集(replica set)。片键(key),MongoDB以其作为依据来确定需要在不同分片服务器之间移动的数据。例如我们可以选择用户名(username)字段作为分片键,现有一用户名区间[“p”,”z”],那么wufengtinghai是属...

mongodb一般用哪个版本

兼容性:确保 MongoDB 版本与应用程序框架(如 Spring Data MongoDB、Node.js 驱动)兼容。例如,旧版框架可能不支持 5.0 的新语法。混合环境(如分片集群)需所有节点版本一致,避免升级中断服务。稳定性:生产环境:建议选择长期支持版本(LTS),如 4.4(仍受支持但无新特性)或未来发布的 5.x ...

mongodb安装遇到的“坑”

安装完成后,需要将MongoDB的bin目录(如C:Program FilesMongoDBServer3.2bin)添加到系统的环境变量中。这样可以在任何命令行窗口中直接运行MongoDB的命令,如mongod和mongo。三、创建数据目录 在安装MongoDB后,需要在C盘根目录下创建一个名为data的文件夹,并在其中创建一个名为db的子文件夹。这个db...

不同版本的mongodb的选择

一、MongoDB 版本概述 MongoDB 提供了多个版本,包括稳定版(Stable Release)、长期支持版(LTS Release)和开发版(Development Release)等。每个版本都有其特定的用途和适用场景。稳定版:经过充分测试,适用于生产环境,提供最新的功能和修复。长期支持版:为关键任务应用提供长期支持和维护,通常包含稳定...

提升MongoDB 安全性的10个方法

使用key文件建立复制服务器集群:为复制集群的MongoDB实例指定共享的key文件。所有复制集群机器上的key文件内容必须相同,通过在配置文件中增加keyfile参数来实现。禁止HTTP状态接口:MongoDB默认在端口28017上运行HTTP接口。在生产环境下,建议禁止此接口,可以通过设置nohttpinterface = true来实现。禁止REST接口...

MongoDB 是什么 ? 能干嘛?

使用这样的数据模型,使得MongoDB能在生产环境中提供高读写的能力,吞吐量较于mysql等SQL数据库大大增强。(2)易伸缩,自动故障转移。易伸缩指的是提供了分片能力,能对数据集进行分片,数据的存储压力分摊给多台服务器。自动故障转移是副本集的概念,MongoDB能检测主节点是否存活,当失活时能自动提升从...

MongoDB 是什么?看完你就知道了

MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。没错MongoDB就是数据库,是NoSQL类型的数据库。 (1)MongoDB提出的是文档、集合的概念,使用BSON(类JSON)作为其数据模型结构,其结构是面向对象的而不是二维表,存储一个用户在MongoDB中是这样子的。 使用这样的数据模型,使得MongoDB能在生产环境中提...

看着刚来的实习生太惨,所以整理了一下传统企业到互联网企业必备可收藏...

MongoDB集群:MongoDB是一个高性能的NoSQL数据库,通过集群技术可以实现数据的高可用性和分片存储。Zookeeper集群:Zookeeper是一个开源的分布式协调服务,通过集群技术可以实现分布式系统中的数据一致性、命名服务、分布式锁等功能。四、Linux系统技能 Linux系统是互联网企业中最常用的操作系统之一。掌握Linux系统...

剖析Go 框架在大型项目中的实战应用

消息队列:NATS实现异步解耦,例如用户下单后触发order.created事件,通知搜索服务更新索引、推荐系统重新计算偏好。分布式数据库:MongoDB分片集群按user_id哈希分片,配合读写分离架构,支撑每秒2万次查询。三、核心优势分析高性能 并发模型:Go的goroutine调度开销远低于线程,配合channel实现CSP并发模型,在...

Copyright © 2019- ruangwengfa.com 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务