准备三台服务器,部署方案如下:

1、安装mongodb,详细不用说;

2、创建实例分别创建目录config、configServer、shard1、shard2、shard3、logs,分别存放实例配置文件

3、配置服务器实例configServer.conf:

systemLog:
destination: file
logAppend: true
path: /usr/local/server/mongodb/logs/configServer.log
storage:
dbPath: /usr/local/server/mongodb/configServer/data
journal:
enabled: true
directoryPerDB: true #是否一个库一个文件夹
engine: wiredTiger #数据引擎
wiredTiger: #WT引擎配置
engineConfig:
cacheSizeGB: 2 #设置为4G,默认为物理内存的一半
directoryForIndexes: true #是否将索引也按数据库名单独存储
journalCompressor: zlib
collectionConfig: #表压缩配置
blockCompressor: zlib
indexConfig: #索引配置
prefixCompression: true
processManagement: #进程管理
fork: true
pidFilePath: /usr/local/server/mongodb/configServer/mongod.pid
net:
port: 29004
bindIp: 0.0.0.0
sharding:
clusterRole: configsvr
replication:
replSetName: configReplSet
4、配置路由服务器 mongos.conf
systemLog:
destination: file
logAppend: true
path: /usr/local/server/mongodb/logs/mongos.log
processManagement:
fork: true
pidFilePath: /usr/local/server/mongodb/mongos/mongod.pid
net:
port: 29005
bindIp: 0.0.0.0
sharding:
configdb: configReplSet/192.168.131.8:29004,192.168.131.9:29004,192.168.131.10:29004
5、配置分片服务器shard1、shard2、shard3
配置文件 shard1.conf:
systemLog:
destination: file
logAppend: true
path: /usr/local/server/mongodb/logs/shard1.log
storage:
dbPath: /usr/local/server/mongodb/shard1/data
journal:
enabled: true
directoryPerDB: true
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 2
directoryForIndexes: true
journalCompressor: zlib
collectionConfig:
blockCompressor: zlib
indexConfig:
prefixCompression: true
processManagement:
fork: true
pidFilePath: /usr/local/server/mongodb/shard1/mongod.pid
net:
port: 29001
bindIp: 0.0.0.0
replication:
replSetName: shard1
sharding:
clusterRole: shardsvr
archiveMovedChunks: true 配置shard2.conf:
systemLog:
destination: file
logAppend: true
path: /usr/local/server/mongodb/logs/shard2.log
storage:
dbPath: /usr/local/server/mongodb/shard2/data
journal:
enabled: true
directoryPerDB: true #是否一个库一个文件夹
engine: wiredTiger #数据引擎
wiredTiger:
engineConfig:
cacheSizeGB: 2
directoryForIndexes: true
journalCompressor: zlib
collectionConfig:
blockCompressor: zlib
indexConfig:
prefixCompression: true
processManagement: #进程管理
fork: true
pidFilePath: /usr/local/server/mongodb/shard2/mongod.pid
net:
port: 29002
bindIp: 0.0.0.0
replication:
replSetName: shard2
sharding:
clusterRole: shardsvr
archiveMovedChunks: true
配置shard3.conf:
systemLog:
destination: file
logAppend: true
path: /usr/local/server/mongodb/logs/shard3.log
storage:
dbPath: /usr/local/server/mongodb/shard3/data
journal:
enabled: true
directoryPerDB: true #是否一个库一个文件夹
engine: wiredTiger #数据引擎
wiredTiger:
engineConfig:
cacheSizeGB: 2
directoryForIndexes: true
journalCompressor: zlib
collectionConfig:
blockCompressor: zlib
indexConfig:
prefixCompression: true
processManagement: #进程管理
fork: true
pidFilePath: /usr/local/server/mongodb/shard3/mongod.pid
net:
port: 29003
bindIp: 0.0.0.0
replication:
replSetName: shard3
sharding:
clusterRole: shardsvr
archiveMovedChunks: true 6、分别启动mongodb启动实例

/usr/local/server/mongodb/bin/mongos --config /usr/local/server/mongodb/config/mongos.conf
/usr/local/server/mongodb/bin/mongod --config /usr/local/server/mongodb/config/configServer.conf
/usr/local/server/mongodb/bin/mongod --config /usr/local/server/mongodb/config/shard1.conf
/usr/local/server/mongodb/bin/mongod --config /usr/local/server/mongodb/config/shard2.conf
/usr/local/server/mongodb/bin/mongod --config /usr/local/server/mongodb/config/shard3.conf

7、配置服务器/usr/local/server/mongodb/bin/mongo --port 29004

use admin

添加成员:

rs.initiate(
{
_id: "configReplSet",
configsvr: true,
members: [
{ _id : 1, host : "192.168.131.8:29004", priority: 30 },
{ _id : 2, host : "192.168.131.10:29004", priority: 20 },
{ _id : 3, host : "192.168.131.9:29004", priority: 10 }
]
}
);

8、分别配置分片服务器

/usr/local/server/mongodb/bin/mongo --port 29001 连接shard1

use admin;

rs.initiate({_id:'shard1',members:[
{_id:1,host:'192.168.131.8:29001', priority: 30},
{_id:2,host:'192.168.131.10:29001', priority: 20},
{_id:3,host:'192.168.131.9:29001', priority: 0,arbiterOnly: true}
]});
其他分片服务器一样配置,略。。。
9、配置路由服务器

/usr/local/server/mongodb/bin/mongo --port 29005;

use admin;

路由服务器注册分片:
db.runCommand({addshard: "shard1/192.168.131.8:29001,192.168.131.9:29001,192.168.131.10:29001"});
db.runCommand({addshard: "shard2/192.168.131.8:29002,192.168.131.9:29002,192.168.131.10:29002"});
db.runCommand({addshard: "shard3/192.168.131.8:29003,192.168.131.9:29003,192.168.131.10:29003"});
# 查看
db.printShardingStatus()
启动分片数据库test:
db.runCommand({enablesharding: "test"});

设置分片键:

sh.shardCollection("test.use",{"usename":1});

到此配置完成。

mongodb高可用部署linux的更多相关文章

  1. NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署

    NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...

  2. MongoDB 高可用集群副本集+分片搭建

    MongoDB 高可用集群搭建 一.架构概况 192.168.150.129192.168.150.130192.168.150.131 参考文档:https://www.cnblogs.com/va ...

  3. MooseFS及其高可用部署

    MooseFS的工作原理分析 MooseFS(下面统一称为MFS)由波兰公司Gemius SA于2008年5月30日正式推出的一款Linux下的开源存储系统,是OpenStack开源云计算项目的子项目 ...

  4. kubernetes 1.15.1 高可用部署 -- 从零开始

    这是一本书!!! 一本写我在容器生态圈的所学!!! 重点先知: 1. centos 7.6安装优化 2. k8s 1.15.1 高可用部署 3. 网络插件calico 4. dashboard 插件 ...

  5. Centos7.2 下DNS+NamedManager高可用部署方案完整记录

    Centos7.2 下DNS+NamedManager高可用部署方案完整记录 之前说到了NamedManager单机版的配置,下面说下DNS+NamedManager双机高可用的配置方案: 1)机器环 ...

  6. CDH构建大数据平台-Kerberos高可用部署【完结篇】

    CDH构建大数据平台-Kerberos高可用部署[完结篇] 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.安装Kerberos相关的软件包并同步配置文件 1>.实验环境 ...

  7. Cinder 架构分析、高可用部署与核心功能解析

    目录 文章目录 目录 Cinder Cinder 的软件架构 cinder-api cinder-scheduler cinder-volume Driver 框架 Plugin 框架 cinder- ...

  8. MogoDB(6)--mongoDB高可用和4.0特性

    5.1.MongoDB 用户管理 1.用户管理1.1.添加用户为 testdb 添加 tom 用户 use testdb db.createUser({user:"tom",pwd ...

  9. kubernetes1.7.6 ha高可用部署

    写在前面:  1. 该文章部署方式为二进制部署. 2. 版本信息 k8s 1.7.6,etcd 3.2.9 3. 高可用部分 etcd做高可用集群.kube-apiserver 为无状态服务使用hap ...

随机推荐

  1. Python Selenium、PIL、pytesser 识别验证码

    思路: 使用Selenium库把带有验证码的页面截取下来 利用验证码的xpath截取该页面的验证码 对验证码图片进行降噪.二值化.灰度化处理后再使用pytesser识别 使用固定的账户密码对比验证码正 ...

  2. StringBuilder 去除最后一个多余的字符的方法

    public class StringBuilterTest { public static void main(String[] args) { //新增一个map Map<String, S ...

  3. 简单注册表单--HTML练手项目3【Table】

    [本文为原创,转载请注明出处] 技术[HTML]   布局[Table] 步骤1  划分table布局 步骤2 填充内容 文本框+密码框+单选框+复选框+多行文本域+按钮 <input> ...

  4. vue中用解构赋值的方法引入组件

    在一个组件中引入很多其他组件的时候会显得代码很臃肿,这个时候可以用es6的解构赋值的方法 在components中写入一个index.js文件 在该js文件中导出你想要引入的组件 再接着就可以在该组件 ...

  5. CVE-2018-2879 - anniversary

    For the anniversary of the discovery of CVE-2018-2879 by Sec Consult (https://sec-consult.com/en/blo ...

  6. TCP三次握手过程中涉及的队列知识的学习

    先上一张图 (图片来源:http://www.cnxct.com/something-about-phpfpm-s-backlog/) 如上图所示,这里有两个队列:syns queue(半连接队列): ...

  7. linux /etc/shadow文件详解

    struct spwd { char *sp_namp; /* user login name */ char *sp_pwdp; /* encrypted password */ long int ...

  8. 特殊权限 - SUID GUID STICKYBIT

    ◆ SUID ( Set User ID ) Linux里,用户的ID被称作UID.在实际生产中,可能需要临时借用别的用户执行程序,因此需要能够临时变更自己UID的机能叫做SUID.借助SUID权限, ...

  9. visual studio code(vscode) 配置在terminal进行运行代码并且支持c++11特性

    1.点击设置 点击CodeRunner的小齿轮,点击configure extension settings 2.点击映射 点击executor map中的Edit in settings.json ...

  10. PAT Baisc 1079 延迟的回文数 (20 分)

    给定一个 k+1 位的正整数 N,写成 a​k​​⋯a​1​​a​0​​ 的形式,其中对所有 i 有 0 且 a​k​​>0.N 被称为一个回文数,当且仅当对所有 i 有 a​i​​=a​k−i ...