当前位置: 首页 > news >正文

如何利用个人nas做网站一帘幽梦紫菱做的网站

如何利用个人nas做网站,一帘幽梦紫菱做的网站,网站建设的七大主要目的,上传WordPress后就403了mongodb介绍: 是最常用的nosql数据库,在数据库排名中已经上升到了前六。这篇文章介绍如何搭建高可用的mongodb(分片副本)集群。 环境准备 系统系统 BC 21.10 三台服务器:192.168.123.247/248/249 安装包&#xff1a…

mongodb介绍:

是最常用的nosql数据库,在数据库排名中已经上升到了前六。这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群。

环境准备

系统系统 BC 21.10
三台服务器:192.168.123.247/248/249
安装包:
mongodb-linux-x86_64-rhel8-7.0.14.tgz (截止2024年10月11日星期五次新版)
mongosh-2.3.1-linux-x64.tgz

服务器规划

服务器247服务器248服务器249
mongosmongosmongos
config serverconfig serverconfig server
shard1主节点 shard1 副节点shard1 仲裁
shard2仲裁 shard2 主节点shard2 副节点
shard3副节点 shard3 仲裁shard3 主节点

端口规划

主机名IP组件mongos组件config server分片shard
server1192.168.123.247端口:27000端口:27017shard1:27001
server2192.168.123.248端口:27000端口:27017shard2:27002
server3192.168.123.249端口:27000端口:27017shard3:27003

时间同步

防火墙

集群部署

解压mongodb

官网下载,根据操作系统选择下载相应的版本。

Mongodb-download

在三台机器上执行解压

tar zxvf mongodb-linux-x86_64-rhel8-7.0.14.tgz  -C  /usr/local/mongodb

新建目录

三台机器建立config、mongos、shard1、shard2、shard3目录,包括子目录

mkdir -p /usr/local/mongodb/config/{conf,data,log,run}
mkdir -p /usr/local/mongodb/mongos/{conf,data,log,run}
mkdir -p /usr/local/mongodb/shard{1,2,3}/{conf,data,log}

目录结构概述

/usr/local/mongodb/config:

用途:存放配置服务器的相关文件。
子目录:

conf:存放配置服务器的配置文件(如 mongod.conf)。
data:存放配置服务器的数据文件。
log:存放配置服务器的日志文件。
run: 存储进程PID文件
/usr/local/mongodb/mongos:

用途:存放路由进程(Mongos)的相关文件。
子目录:

conf:存放路由进程的配置文件。
data:因为 Mongos 不持久化数据。(也可以不创建)
log:存放路由进程的日志文件。
run: 存储进程PID文件
/usr/local/mongodb/shard{1,2,3}

用途:存放分片服务器的相关文件。
子目录:

conf:存放分片服务器的配置文件。
data:存放分片服务器的数据文件。
log:存放分片服务器的日志文件。

配置环境变量

vim /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$MONGODB_HOME/bin:$PATH

使立即生效

source /etc/profile

安装依赖包,缺少就安装

yum install libcurl openssl xz-libs

创建用户,指定组标识符

groupadd mongo -g 777
useradd mongo -g 777 -M -s /sbin/nologin
id mongo

开机启动

cat  >  /etc/systemd/system/mongodb.service  << EOF
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target[Service]
Type=simple
ExecStart=/usr/local/mongodb/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf --shutdown
PrivateTmp=true[Install]
WantedBy=multi-user.target
EOF

三台config server配置:

cat > /usr/local/mongodb/config/conf/mongod.conf  <<  EOF
# 日志设置
systemLog:destination: file                # 日志写入文件path: /usr/local/mongodb/config/log/mongod.log # 日志文件路径logAppend: true                  # 追加日志logRotate: rename                # 日志轮转方式,支持 rename 或 reopen# 网络设置
net:port: 27017                     # MongoDB 默认端口bindIp: 0.0.0.0                 # 允许从所有 IP 访问,生产环境建议限制# 数据目录
storage:dbPath: /usr/local/mongodb/config/data  # 数据文件存放路径wiredTiger:engineConfig:cacheSizeGB: 1               # 根据情况配置内存# 进程设置
processManagement:fork: true                       # 以后台进程方式运行pidFilePath: /usr/local/mongodb/config/run/mongod.pid # PID 文件路径#复制集名称
replication:replSetName: "myconfigset"#作为配置服务
sharding:clusterRole: configsvrEOF

三台mongos配置

cat > /usr/local/mongodb/config/conf/mongod.conf  <<  EOF# 日志设置
systemLog:destination: file                # 日志写入文件path: /usr/local/mongodb/mongos/log/mongos.log # 日志文件路径logAppend: true                  # 追加日志logRotate: rename                # 日志轮转方式,支持 rename 或 reopen# 网络设置
net:port: 27000                    # MongoDB 默认端口bindIp: 0.0.0.0                 # 允许从所有 IP 访问,生产环境建议限制# 进程设置
processManagement:fork: true                       # 以后台进程方式运行pidFilePath: /usr/local/mongodb/mongos/run/mongos.pid # PID 文件路径#网络延迟阈值
replication:localPingThresholdMs: 15#关联配置服务
sharding:configDB: myconfigset/server1:27017,server2:27017,server3:27017EOF

启动三台config server (3台)

mongod --config /usr/local/mongodb/config/conf/mongod.conf

安装mongosh

安装好mongosh工具,方便初始化副本集使用,

# mongosh mongodb://server1:27017。成功登录如下图:默认的提示符是’test>’

在这里插入图片描述

大内存页 关闭 hugepage

echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag

初始化配置副本集(3台机器执行相同操作)

启动config server后,开始初始化副本集,登录任意一台开始初始化配置副本集

#7.0.14版本登录时在test>数据库下,切换到admin数据库
test> use admin
switched to db admin
admin>#执行以下config变量,注意myconfigset,要和mongod.conf里配置一致。
config={_id:"myconfigset",members:[ 
{_id:0,host:"server1:27017"}, 
{_id:1,host:"server2:27017"}, 
{_id:2,host:"server3:27017",}, 
]}

执行结果如下:
在这里插入图片描述

#再执行初始化
rs.initiate(config)

在这里插入图片描述

rs.status()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.9 配置分片副本集
每台shard1,shard2,shard3配置
Shard1

cat > /usr/local/mongodb/shard1/conf/shard1.conf  << EOF
# 日志设置
systemLog:destination: file                # 日志写入文件path: /usr/local/mongodb/shard1/log/shard1.log # 日志文件路径logAppend: true                  # 追加日志logRotate: rename                # 日志轮转方式,支持 rename 或 reopen# 网络设置
net:port: 27001                     # MongoDB shard1端口bindIp: 0.0.0.0                 # 允许从所有 IP 访问,生产环境建议限制# 数据目录
storage:dbPath: /usr/local/mongodb/shard1/data          # 数据文件存放路径wiredTiger:engineConfig:cacheSizeGB: 1                              # 根据情况配置内存# 进程设置
processManagement:fork: true                       # 以后台进程方式运行pidFilePath: /usr/local/mongodb/shard1/data/shard1.pid # PID 文件路径#复制集名称
replication:replSetName: "shard1"#慢查询
operationProfiling:slowOpThresholdMs : 100mode: "slowOp"#作为分片服务
sharding:clusterRole: shardsvrEOF

Shard2

cat > /usr/local/mongodb/shard2/conf/shard2.conf  << EOF# 日志设置
systemLog:destination: file                # 日志写入文件path: /usr/local/mongodb/shard2/log/shard2.log # 日志文件路径logAppend: true                  # 追加日志logRotate: rename                # 日志轮转方式,支持 rename 或 reopen# 网络设置
net:port: 27002                     # shard2端口bindIp: 0.0.0.0                 # 允许从所有 IP 访问,生产环境建议限制# 数据目录
storage:dbPath: /usr/local/mongodb/shard2/data          # 数据文件存放路径wiredTiger:engineConfig:cacheSizeGB: 1                              # 根据情况配置内存# 进程设置
processManagement:fork: true                       # 以后台进程方式运行pidFilePath: /usr/local/mongodb/shard2/data/shard2.pid # PID 文件路径#复制集名称
replication:replSetName: "shard2"#慢查询
operationProfiling:slowOpThresholdMs : 100mode: "slowOp"#作为分片服务
sharding:clusterRole: shardsvrEOF

Shard3

cat > /usr/local/mongodb/shard3/conf/shard3.conf  << EOF# 日志设置
systemLog:destination: file                # 日志写入文件path: /usr/local/mongodb/shard3/log/shard3.log # 日志文件路径logAppend: true                  # 追加日志logRotate: rename                # 日志轮转方式,支持 rename 或 reopen# 网络设置
net:port: 27003                     # MongoDB shard3 默认端口bindIp: 0.0.0.0                 # 允许从所有 IP 访问,生产环境建议限制# 数据目录
storage:dbPath: /usr/local/mongodb/shard3/data          # 数据文件存放路径wiredTiger:engineConfig:cacheSizeGB: 1                              # 根据情况配置内存# 进程设置
processManagement:fork: true                       # 以后台进程方式运行pidFilePath: /usr/local/mongodb/shard3/data/shard3.pid # PID 文件路径#复制集名称
replication:replSetName: "shard3"#慢查询
operationProfiling:slowOpThresholdMs : 100mode: "slowOp"#作为分片服务
sharding:clusterRole: shardsvrEOF

启动三台247,248,249服务器的shard1 server

 mongod --config  /usr/local/mongodb/shard1/conf/shard1.conf

在这里插入图片描述

初始化shard1分片副本集

登录任意一台,注意端口号

mongosh mongodb://server1:27001

初始化三台的shard1

#7.0.14版本登录时在test>数据库下,切换到admin数据库
test> use admin
switched to db admin
admin>

config={_id:“shard1”,members:[
{_id:0,host:“server1:27001”},
{_id:1,host:“server2:27001”},
{_id:2,host:“server3:27001”,arbiterOnly: true},
]}
在这里插入图片描述

#再执行初始化
rs.initiate(config)
在这里插入图片描述
rs.status()
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启动三台247,248,249服务器的shard2 server

mongod --config  /usr/local/mongodb/shard2/conf/shard2.conf

登录任意一个节点,注意端口号,注意安装了mongosh

mongosh mongodb://server2:27002

初始化三台的shard2

#7.0.14版本登录时在test>数据库下,切换到admin数据库
test> use admin
switched to db admin
admin>config={_id:"shard2",members:[ 
{_id:0,host:"server1:27002",arbiterOnly: true}, 
{_id:1,host:"server2:27002"}, 
{_id:2,host:"server3:27002"}, 
]}#再执行初始化
rs.initiate(config)
rs.status()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.12.1 初始化三台的shard3

#7.0.14版本登录时在test>数据库下,切换到admin数据库
test> use admin;
switched to db admin
admin>config={_id:"shard3",members:[ 
{_id:0,host:"server1:27003"}, 
{_id:1,host:"server2:27003",arbiterOnly: true}, 
{_id:2,host:"server3:27003"}, 
]}#再执行初始化
rs.initiate(config)
rs.status()

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启动mongos路由并分片

启动三台247,248,249服务器的mongos

mongos --config  /usr/local/mongodb/mongos/conf/mongos.conf

在这里插入图片描述
登录任意路由节点,注意端口号,注意安装了mongosh

mongosh mongodb://server1:27000

添加分片

#7.0.14版本登录时在test>数据库下,切换到admin数据库
test> use admin
switched to db admin
admin>db.adminCommand({  "setDefaultRWConcern" : 1,  "defaultWriteConcern" : {    "w" : 1  }}) 
admin>##添加分片
sh.addShard("shard1/server1:27001,server2:27001,server3:27001")
sh.addShard("shard2/server1:27002,server2:27002,server3:27002")
sh.addShard("shard3/server1:27003,server2:27003,server3:27003")
#
Admin> sh.status();

在这里插入图片描述

验证分片机制

指定分片生效:

db.runCommand({enablesharding:"testdb"})

哈希分片

db.runCommand({shardcollection:"testdb.table1",key:{id:"hashed"}})

插入1万个数据,测试

for (var i = 1; i <= 10000; i++){
db.table1.insertOne({id:i,"test1":"testval1"});

在这里插入图片描述
Shard1
在这里插入图片描述
Shard2
在这里插入图片描述
Shard3
在这里插入图片描述
汇总内容
在这里插入图片描述
验证已完成,可以看到数据分到3个分片,各自分片数量为:
shard1 “count” : 3366,
shard2 “count” : 3284,
shard3 “count” : 3350。
已经成功!

http://www.yayakq.cn/news/283992/

相关文章:

  • 网站结构分析具体分析内容十大接单推广平台
  • 代做论文网站一个虚拟主机可以做两个网站吧
  • 网站域名续费沈阳搜索排名公司
  • 天津个人做网站中山网站建设文化信息
  • 网络营销推广主要做什么?有哪些方法和技巧?怎么把做的网站优化到百度
  • 自己做的网站怎么上传文章平面设计到底要学什么
  • 网站建设介绍文字网站制作建设模板
  • 网站建设交流网站建设错误代码50019
  • 台州千寻网站建设公司漳州市网站建设价格
  • 大圣网站建设下载免费ppt模板
  • 深圳龙华的学校网站建设怎样开发一个微信公众号
  • 能通过淘宝网站做淘宝客吗手机端网页设计软件
  • 机关单位网站建设申请企业营销型网站的内容
  • 云南网站建设ynsudong开发小程序需要多少钱费用
  • 网站推广是怎么做的商品网页设计图片
  • 盈世企业邮箱优化网站聊城
  • 主流网站开发技术河北邢台手机网站建设
  • 全国做网站排行商业性质网站设计
  • 江苏省建设厅网站查询施工员证珠海市城市建设档案馆网站
  • idc新人如何做自己的网站用vue做多页面网站
  • 做单位网站的公司吗工商局网站年检怎么做
  • 如何自建设网站沈阳家用电梯公司网站制作
  • 珠海网站建设方案报价什么网站可以做电影投资
  • 站群软件建站公司获客成本
  • 免费个人网站建设大全wordpress导入json
  • 网站建设的ppt模板网站的优化方法有哪些内容
  • 做网站需要学啥seo免费工具
  • 宣威网站建设公司wordpress前台很慢
  • 网站建设公司清明雨上数字营销的概念
  • 怎样建立自己的网站平台微型营销网站制作