专栏首页运维笔记生产mongodb 分片与集群 方案

生产mongodb 分片与集群 方案

生产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一键安装脚本:

http://pan.baidu.com/s/1c0zvP7M

附mongodb副本集和配置服务器一键配置脚本:

http://pan.baidu.com/s/1GuQ0A

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • mongodb.conf配置文件详解

    启动MongoDB有2种方式,一是直接指定配置参数,二是指定配置文件。这里先介绍配置文件,启动方式如下:

    明哥的运维笔记
  • 批量生成secureCrt终端连接

    明哥的运维笔记
  • 关于服务启动按钮页面的优化

    由于妹子ui的模态框在数据传输存在bug,详情撮: https://amazeui.org/javascript/modal 所以在多个异步并发执行的时候出现...

    明哥的运维笔记
  • js程序设计01——基本概念

    本文为js高级程序设计学习笔记,笔记中不乏本人学习js的一些心得demo,喜欢的朋友可以直接参考原书“javascript高级程序设计”,写本笔记的目的是对js...

    用户1141560
  • vscode-setting.json配置

    xing.org1^
  • 算法导论第十一章 散列表

    一、散列表的概念 本章介绍了散列表(or hash table)的概念、散列函数的设计及哈希冲突的处理。散列表(为了形象描述,我们通常叫槽)从表意上看是一种数...

    CloudDeveloper
  • js创建对象

    用户7657330
  • Oracle 19.3 案例参考:通过 10053 跟踪获取的 SQL 执行计划诊断信息

    墨天轮原文链接:https://www.modb.pro/db/22835?ywm

    数据和云01
  • 标签制作软件中如何导出标签模板为PDF文件?

    最近小编遇到有些客户问在标签制作软件中设计好的标签模板,能不能导出PDF文件保存,小编的回答是当然可以,而且操作也是非常简单的,接下来小编给大家演示下是如何操作...

    中琅软件
  • Swift多线程之Operation:按优先级加载图片1. 进程和线程2. Operation3. Basic Demo4. 案例实现

    stanbai

扫码关注云+社区

领取腾讯云代金券