IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> mongoDB分片集群部署 -> 正文阅读

[系统运维]mongoDB分片集群部署

本例只有一个mongod进程,一个mongos服务器,一个分片服务器(且为单成员副本集)

1.创建文件夹
我们需首先创建存放源数据的文件夹configsvr、存放分片数据的文件夹shardsvr、存放日志的文件夹logs

/usr/local/mongodb4.4.1/datashard$ mkdir configsvr
/usr/local/mongodb4.4.1/datashard$ mkdir logs
/usr/local/mongodb4.4.1/datashard$ mkdir shardsvr

在这里插入图片描述
将所有文件夹修改用户组

作者的用户名为tarena

命令如下:

/usr/local/mongodb4.4.1/datashard$ sudo chown -R tarena:tarena configsvr
/usr/local/mongodb4.4.1/datashard$ sudo chown -R tarena:tarena logs
/usr/local/mongodb4.4.1/datashard$ sudo chown -R tarena:tarena shardsvr

2.创建对应的配置文件

/usr/local/mongodb4.4.1/conf/svr$ vim configsvr.conf
/usr/local/mongodb4.4.1/conf/svr$ vim mongos.conf
/usr/local/mongodb4.4.1/conf/svr$ vim shardsvr.conf

在这里插入图片描述
配置文件内容如下:
configsvr.conf

storage:
  dbPath: /usr/local/mongodb4.4.1/datashard/configsvr
  journal:
    enabled: true
systemLog:
  destination: file
  path: /usr/local/mongodb4.4.1/datashard/logs/configsvr.log
  logAppend: true
net:
  bindIp: localhost
  port: 27023
processManagement:
  fork: true
sharding:
  clusterRole: configsvr
replication:
  replSetName: configsvr_rs

mongos.conf

systemLog:
  destination: file
  path: /usr/local/mongodb4.4.1/datashard/logs/mongos.log
  logAppend: true
net:
  bindIp: localhost
  port: 27024
processManagement:
  fork: true
sharding:
  configDB: configsvr_rs/localhost:27023

shardsvr.conf

storage:
  dbPath: /usr/local/mongodb4.4.1/datashard/shardsvr
  journal:
    enabled: true
systemLog:
  destination: file
  path: /usr/local/mongodb4.4.1/datashard/logs/shardsvr.log
  logAppend: true
net:
  bindIp: localhost
  port: 27025
processManagement:
  fork: true
sharding:
  clusterRole: shardsvr
replication:
  replSetName: shardsvr_rs1

3.开启服务
开启config服务器

/usr/local/mongodb4.4.1/conf/svr$ sudo mongod --config configsvr.conf
~$ mongo --host localhost --port 27023

单成员副本集初始化(配置集群)

> rs.initiate({
... _id:"configsvr_rs",
... configsvr: true,
... members:[{_id:0,host:"localhost:27023"}]
... })

开启mongos服务器

/usr/local/mongodb4.4.1/conf/svr$ sudo mongos --config mongos.conf		//显示警告配置服务器少于三个,不用担心
~$ mongo --host localhost --port 27024

开启分片服务器

/usr/local/mongodb4.4.1/conf/svr$ sudo mongod --config shardsvr.conf
~$ mongo --host localhost --port 27025

单成员副本集初始化(分片集群)

> rs.initiate({
... _id:"shardsvr_rs1",members:[{_id:0,host:"localhost:27025"}]
... })

在mongos的shell中,添加分片服务器

mongos> sh.addShard("shardsvr_rs1/localhost:27025")

4.数据库,集合启动分片
在mongos shell中创建数据库

mongos> use people;		//创建数据库
mongos> sh.enableSharding("people")		//为people数据库启用分片
mongos> db.createCollection("records")		//创建集合
mongos> db.records.insertMany([{name:"jack",age:23},{name:"lucy",age:20}])		//插入数据
mongos> db.records.createIndex({"name":1})		//创建索引
mongos> sh.shardCollection("people.records",{"name":1})		//以name为分片键,进行范围分片
mongos> db.printShardingStatus()
--- Sharding Status --- 
  sharding version: {
  	"_id" : 1,
  	"minCompatibleVersion" : 5,
  	"currentVersion" : 6,
  	"clusterId" : ObjectId("619b8388e3f4442ccd1be4f6")
  }
  shards:
        {  "_id" : "shardsvr_rs1",  "host" : "shardsvr_rs1/localhost:27025",  "state" : 1 }
  active mongoses:
        "4.4.1" : 1
  autosplit:
        Currently enabled: yes
  balancer:
        Currently enabled:  yes
        Currently running:  no
        ······

到分片服务器中查看数据

shardsvr_rs1:SECONDARY> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
people  0.000GB
shardsvr_rs1:PRIMARY> use people
switched to db people
shardsvr_rs1:PRIMARY> show tables
records
shardsvr_rs1:PRIMARY> db.records.find()
{ "_id" : ObjectId("619b8a7ddc36a9ffe38c91dc"), "name" : "jack", "age" : 23 }
{ "_id" : ObjectId("619b8a7ddc36a9ffe38c91dd"), "name" : "lucy", "age" : 20 }

5.可选:再添加分片到集群
创建文件夹

/usr/local/mongodb4.4.1/datashard$ mkdir shardsvr2
/usr/local/mongodb4.4.1/datashard$ sudo chown -R tarena:tarena shardsvr

创建配置文件

/usr/local/mongodb4.4.1/conf/svr$ vim shardsvr.conf
storage:
  dbPath: /usr/local/mongodb4.4.1/datashard/shardsvr2
  journal:
    enabled: true
systemLog:
  destination: file
  path: /usr/local/mongodb4.4.1/datashard/logs/shardsvr.log
  logAppend: true
net:
  bindIp: localhost
  port: 27026
processManagement:
  fork: true
sharding:
  clusterRole: shardsvr
replication:
  replSetName: shardsvr_rs2

启动分片服务器

/usr/local/mongodb4.4.1/conf/svr$ sudo mongod --config shardsvr2.conf
~$ mongo --host localhost --port 27026

单成员副本集初始化(分片集群)

> rs.initiate({_id:"shardsvr_rs2",members:[{_id:0,host:"localhost:27026"}]
... })

添加到集群

mongos> sh.addShard("shardsvr_rs2/localhost:27026")
mongos> db.printShardingStatus()
--- Sharding Status --- 
  sharding version: {
  	"_id" : 1,
  	"minCompatibleVersion" : 5,
  	"currentVersion" : 6,
  	"clusterId" : ObjectId("619b8388e3f4442ccd1be4f6")
  }
  shards:
        {  "_id" : "shardsvr_rs1",  "host" : "shardsvr_rs1/localhost:27025",  "state" : 1 }
        {  "_id" : "shardsvr_rs2",  "host" : "shardsvr_rs2/localhost:27026",  "state" : 1 }
		······

退出集群

shardsvr_rs1:PRIMARY> use admin
switched to db admin
shardsvr_rs1:PRIMARY> db.shutdownServer()
server should be down...
> quit()
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:46:41  更:2021-11-23 12:47:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:42:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码