手机版
你好,游客 登录 注册
背景:
阅读新闻

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

[日期:2015-05-07] 来源:oschina.net  作者:pwd [字体: ]

生产环境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 正式版发布下载  http://www.linuxidc.com/Linux/2015-03/114414.htm

CentOS编译安装MongoDB http://www.linuxidc.com/Linux/2012-02/53834.htm

CentOS 编译安装 MongoDB与mongoDB的php扩展 http://www.linuxidc.com/Linux/2012-02/53833.htm

CentOS 6 使用 yum 安装MongoDB及服务器端配置 http://www.linuxidc.com/Linux/2012-08/68196.htm

Ubuntu 13.04下安装MongoDB2.4.3 http://www.linuxidc.com/Linux/2013-05/84227.htm

MongoDB入门必读(概念与实战并重) http://www.linuxidc.com/Linux/2013-07/87105.htm

Ubunu 14.04下MongoDB的安装指南 http://www.linuxidc.com/Linux/2014-08/105364.htm

《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] http://www.linuxidc.com/Linux/2012-07/66735.htm

Nagios监控MongoDB分片集群服务实战 http://www.linuxidc.com/Linux/2014-10/107826.htm

基于CentOS 6.5操作系统搭建MongoDB服务 http://www.linuxidc.com/Linux/2014-11/108900.htm

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

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-05/117130.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款