mongodb单个服务部署
mongodb3.2.8安装步骤:
1、系统准备 (1)redhat或cnetos6.2以上系统
(2)系统开发包完整
(3)ip地址和hosts文件解析正常
(4)iptables防火墙&SElinux关闭
(5)关闭大页内存机制
########################################################################
root用户下
在vi /etc/rc.local最后添加如下代码
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi 其他系统关闭参照官方文档:
https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/ 参考地址:“官方下载地址:https://www.mongodb.com/try/download 在这里根据自己的需要,选择下载对应系统的MongoDB数据库版本(注:在MongoDB版本中,是偶数:如3.2.x、3.4.x、3.6.x表示正式版【可用于生产环境】,是奇数:3.1.x、3.3.x、3.5.x表示开发版,而OS系统版本:自动给你推荐你当前适合的MongoDB数据库版本)。 然后点击Download按扭后,进入下载页面: 注:进入上面这个下载页面后,...
---------------
为什么要关闭?
Transparent Huge Pages (THP) is a Linux memory management system
that reduces the overhead of Translation Lookaside Buffer (TLB)
lookups on machines with large amounts of memory by using larger memory pages.
However, database workloads often perform poorly with THP,
because they tend to have sparse rather than contiguous memory access patterns.
You should disable THP on Linux machines to ensure best performance with MongoDB. 透明巨型页面(THP)是一个Linux内存管理系统 这减少了转换查找缓冲区(TLB)的开销 通过使用更大的内存页查找具有大量内存的机器。 然而,使用THP时,数据库工作负载通常表现不佳, 因为它们往往具有稀疏而非连续的内存访问模式。 您应该在Linux机器上禁用THP,以确保MongoDB的最佳性能。
--------------
############################################################################ 2、mongodb安装
(1)创建所需用户和组
groupadd -g 800 mongod
useradd -u 801 -g mongod mongod
passwd mongod (2)创建mongodb所需目录结构
mkdir -p /mongodb/bin
mkdir -p /mongodb/conf
mkdir -p /mongodb/log
mkdir -p /mongodb/data (3)上传并解压软件到指定位置
mongodb-linux-x86_64-3.2.8.tgz
cd mongodb-linux-x86_64-3.2.8/bin/
cp * /mongodb/bin
(4)设置目录结构权限
chown -R mongod:mongod /mongodb
(5)设置用户环境变量
su - mongod
vi .bash_profile
export PATH=/mongodb/bin:$PATH
source .bash_profile
(6)启动mongodb
mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log --port=27017 --logappend --fork (7)登录mongodb
[mongod@server2 ~]$ mongo
MongoDB shell version: 3.2.8
connecting to: test (8)使用配置文件
启动命令:
mongod -f /mongodb/conf/mongodb.conf
mongod -f /mongodb/conf/mongodb.conf --shutdown
------------
vi /mongodb/conf/mongodb.conf
logpath=
dbpath=
port=
logappend=
fork=
auth=
+++++++++++++++++++
(YAML模式:)
--
NOTE:
YAML does not support tab characters for indentation: use spaces instead.
--
systemLog:
destination: file
path: "/mongodb/log/mongod.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: "<PATH>" processManagement:
fork: true
pidFilePath: <string>
net:
bindIp: <ip>
port: <port>
setParameter:
enableLocalhostAuthBypass: false
security:
authorization: enabled replication:
oplogSizeMB: <NUM>
replSetName: "<REPSETNAME>"
secondaryIndexPrefetch: "all"
sharding:
clusterRole: <string>
archiveMovedChunks: <boolean>
---for mongos only
replication:
localPingThresholdMs: <int> sharding:
configDB: <string>
---
.........
++++++++++++++++++++++ (9)mongodb的关闭方式
---kill进程形式
$ kill -2 PID
原理:-2表示向mongod进程发送SIGINT信号。
或
$ kill -4 PID
原理:-4表示向mognod进程发送SIGTERM信号。 ---自带模式 admin> db.shutdownServer()
或
admin> db.adminCommand({shutdown:1})
或
$ mongod -f mongodb.conf --shutdown
killing process with pid: 1621 注:mongod进程收到SIGINT信号或者SIGTERM信号,会做一些处理
> 关闭所有打开的连接
> 将内存数据强制刷新到磁盘
> 当前的操作执行完毕
> ...
> 安全停止 !!!切记kill -9
> 数据库直接关闭
> 数据丢失
> 数据文件损失
> 修复数据库(成本高,有风险)
安装执行过程:
创建所需用户和组
[root@mcw01 ~]$ groupadd -g 800 mongod
[root@mcw01 ~]$ useradd -u 801 -g mongod mongod
[root@mcw01 ~]$ passwd mongod
Changing password for user mongod.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully. 创建mongodb所需目录结构
[root@mcw01 ~]$ mkdir -p /mongodb/bin
[root@mcw01 ~]$ mkdir -p /mongodb/conf
[root@mcw01 ~]$ mkdir -p /mongodb/log
[root@mcw01 ~]$ mkdir -p /mongodb/data
[root@mcw01 ~]$ rz 上传并解压软件到指定位置
[root@mcw01 ~]$ ls
anaconda-ks.cfg mongodb-linux-x86_64-3.2.8.tgz
[root@mcw01 ~]$ tar xf mongodb-linux-x86_64-3.2.8.tgz
[root@mcw01 ~]$ ls
anaconda-ks.cfg mongodb-linux-x86_64-3.2.8 mongodb-linux-x86_64-3.2.8.tgz
[root@mcw01 ~]$ mkdir /application
[root@mcw01 ~]$ mv mongodb-linux-x86_64-3.2.8 /application/
[root@mcw01 ~]$ cd /application/mongodb-linux-x86_64-3.2.8/
[root@mcw01 /application/mongodb-linux-x86_64-3.2.8]$ ls
bin GNU-AGPL-3.0 MPL-2 README THIRD-PARTY-NOTICES
[root@mcw01 /application/mongodb-linux-x86_64-3.2.8]$ cd bin/
[root@mcw01 /application/mongodb-linux-x86_64-3.2.8/bin]$ ls #查看解压的mongodb包
bsondump mongo mongod mongodump mongoexport mongofiles mongoimport mongooplog mongoperf mongorestore mongos mongostat mongotop
[root@mcw01 /application/mongodb-linux-x86_64-3.2.8/bin]$ cp * /mongodb/bin/
[root@mcw01 /application/mongodb-linux-x86_64-3.2.8/bin]$ cd
[root@mcw01 ~]$ chown -R mongod:mongod /mongodb #设置目录结构权限
[root@mcw01 ~]$ su - mongod #设置用户环境变量
[mongod@mcw01 ~]$ vi .bash_profile
[mongod@mcw01 ~]$ source .bashprofile
-bash: .bashprofile: No such file or directory
[mongod@mcw01 ~]$ source .bash_profile 命令行启动mongodb
[mongod@mcw01 ~]$ mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log --port=27017 --logappend --fork #命令行启动mongodb
about to fork child process, waiting until server is ready for connections.
forked process: 15507
child process started successfully, parent exiting 登录mongodb
[mongod@mcw01 ~]$ mongo
MongoDB shell version: 3.2.8
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
2022-03-03T10:46:14.929+0800 I CONTROL [initandlisten]
2022-03-03T10:46:14.929+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2022-03-03T10:46:14.929+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2022-03-03T10:46:14.930+0800 I CONTROL [initandlisten]
2022-03-03T10:46:14.930+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2022-03-03T10:46:14.930+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2022-03-03T10:46:14.930+0800 I CONTROL [initandlisten]
2022-03-03T10:46:14.930+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 65535 files. Number of processes should be at least 32767.5 : 0.5 times number of files.
2022-03-03T10:46:14.930+0800 I CONTROL [initandlisten]
> db
test
> db.version()
3.2.8
>
bye
[mongod@mcw01 ~]$ ps -ef|grep mongo
root 15479 15361 0 10:44 pts/0 00:00:00 su - mongod
mongod 15480 15479 0 10:44 pts/0 00:00:00 -bash
mongod 15507 1 1 10:46 ? 00:00:02 mongod --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log --port=27017 --logappend --fork
mongod 15529 15480 0 10:50 pts/0 00:00:00 ps -ef
mongod 15530 15480 0 10:50 pts/0 00:00:00 grep --color=auto mongo
[mongod@mcw01 ~]$ kill -2 15507 #杀进程方式停止服务
[mongod@mcw01 ~]$ ps -ef|grep -v grep|grep mongo
root 15479 15361 0 10:44 pts/0 00:00:00 su - mongod
mongod 15480 15479 0 10:44 pts/0 00:00:00 -bash
mongod 15533 15480 0 10:51 pts/0 00:00:00 ps -ef
[mongod@mcw01 ~]$ tree /mongodb/ #查看mongodb的目录结构
/mongodb/
├── bin
│ ├── bsondump
│ ├── mongo
│ ├── mongod
│ ├── mongodump
│ ├── mongoexport
│ ├── mongofiles
│ ├── mongoimport
│ ├── mongooplog
│ ├── mongoperf
│ ├── mongorestore
│ ├── mongos
│ ├── mongostat
│ └── mongotop
├── conf
├── data
│ ├── collection-0--6278657654986478919.wt
│ ├── diagnostic.data
│ │ └── metrics.2022-03-03T02-46-14Z-00000
│ ├── index-1--6278657654986478919.wt
│ ├── journal
│ │ ├── WiredTigerLog.0000000001
│ │ ├── WiredTigerPreplog.0000000001
│ │ └── WiredTigerPreplog.0000000002
│ ├── _mdb_catalog.wt
│ ├── mongod.lock
│ ├── sizeStorer.wt
│ ├── storage.bson
│ ├── WiredTiger
│ ├── WiredTigerLAS.wt
│ ├── WiredTiger.lock
│ ├── WiredTiger.turtle
│ └── WiredTiger.wt
└── log
└── mongodb.log 6 directories, 29 files 使用配置文件启动mongodb
[mongod@mcw01 ~]$ vi /mongodb/config/mongodb.conf
[mongod@mcw01 ~]$ vi /mongodb/
bin/ conf/ data/ log/
[mongod@mcw01 ~]$ vi /mongodb/conf/mongodb.conf
[mongod@mcw01 ~]$ cat /mongodb/conf/mongodb.conf
logpath=
dbpath=
port=
logappend=
fork=
auth=
[mongod@mcw01 ~]$ mongod -f /mongodb/config/mongodb.conf
Error reading config file: No such file or directory
try 'mongod --help' for more information
[mongod@mcw01 ~]$ mongod -f /mongodb/conf/mongodb.conf
Error parsing option "port" as int: No digits
try 'mongod --help' for more information
[mongod@mcw01 ~]$ vim /mongodb/conf/mongodb.conf
[mongod@mcw01 ~]$ cat /mongodb/conf/mongodb.conf #以配置文件启动方式,最少需要设置的配置文件,命令行启动也可以不需要配置文件
logpath=/mongodb/log/mongodb.log
dbpath=/mongodb/data
port=27017
logappend=
fork=
auth=
[mongod@mcw01 ~]$ mongod -f /mongodb/conf/mongodb.conf #指定配置文件的启动
about to fork child process, waiting until server is ready for connections.
forked process: 15645
child process started successfully, parent exiting
[mongod@mcw01 ~]$ ps -ef|grep mongod
root 15479 15361 0 10:44 pts/0 00:00:00 su - mongod
mongod 15480 15479 0 10:44 pts/0 00:00:00 -bash
mongod 15645 1 15 10:59 ? 00:00:02 mongod -f /mongodb/conf/mongodb.conf
mongod 15662 15480 0 10:59 pts/0 00:00:00 ps -ef
mongod 15663 15480 0 10:59 pts/0 00:00:00 grep --color=auto mongod
[mongod@mcw01 ~]$ mongod -f /mongodb/conf/mongodb.conf --shutdown #指定配置文件的启动关闭
killing process with pid: 15645
[mongod@mcw01 ~]$ ps -ef|grep mongod
root 15479 15361 0 10:44 pts/0 00:00:00 su - mongod
mongod 15480 15479 0 10:44 pts/0 00:00:00 -bash
mongod 15666 15480 0 11:00 pts/0 00:00:00 ps -ef
mongod 15667 15480 0 11:00 pts/0 00:00:00 grep --color=auto mongod
[mongod@mcw01 ~]$
[mongod@mcw01 ~]$
[mongod@mcw01 ~]$ mongod -f /mongodb/conf/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 15683
child process started successfully, parent exiting
[mongod@mcw01 ~]$ mongo
MongoDB shell version: 3.2.8
connecting to: test
> db.shutdownServer() #mongo命令行停止失败
shutdown command only works with the admin database; try 'use admin'
> use admin
switched to db admin
> db.shutdownServer()
2022-03-03T11:02:22.619+0800 E QUERY [thread1] Error: shutdownServer failed: {
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { shutdown: 1.0 }",
"code" : 13
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.shutdownServer@src/mongo/shell/db.js:302:1
@(shell):1:1 > db.adminCommand({shutdown:1})
{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { shutdown: 1.0 }",
"code" : 13
}
> \q
2022-03-03T11:03:24.315+0800 E QUERY [thread1] SyntaxError: illegal character @(shell):1:0 > exit
bye
[mongod@mcw01 ~]$
mongodb单个服务部署的更多相关文章
- Docker & k8s 系列三:在k8s中部署单个服务实例
本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...
- nginx服务部署 说明
第1章 常用的软件 1.1 常用来提供静态服务的软件 Apache :这是中小型Web服务的主流,Web服务器中的老大哥, Nginx :大型网站Web服务的主流,曾经Web服务器中的初生牛犊 ...
- docker swarm overlay stack 服务部署记录
项目xxx(后端),xxx-ui前端(前后端分离的项目) 依赖mysql,elasticsearch.分别制作了四个镜像来做这件事.希望可以制作跨主机的部署,使用了swarm,以下是学习记录. 参考 ...
- Redis主从服务部署
Redis__WindowsServer主从服务部署及调用实例 一.先谈谈单个Redis服务的安装 使用的redis是2.8.17版本,从官网下载解压缩后文件内容为: ...
- 孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务
孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第五天.今天的感觉是,mongoDB数 ...
- Linux服务部署Yapi项目(安装Node Mongdb Git Nginx等)
Linux服务部署Yapi 一,介绍与需求 1,我的安装环境:CentOS7+Node10.13.0+MongoDB4.0.10. 2,首先安装wget,用于下载node等其他工具 yum insta ...
- DHCP服务部署
目录 DHCP服务部署 一. 简介 二. 用途及功能 三. 原理+示意图 四. 实战搭建 相关文件 配置基础DHCP服务器 配置DHCP保留地址 配置DHCP超级作用域 配置DHCP中继 五. 小结 ...
- zabbix监控服务部署
目录 zabbix监控服务部署 1. zabbix介绍 1.1 zabbix的组件 1.2 zabbix的进程 1.3 zabbix常用术语 2. zabbix工作原理 3. zabbix监控架构 4 ...
- 将微服务部署到 Azure Kubernetes 服务 (AKS) 实践
本文是对 <.NET Tutorial - Deploy a microservice to Azure> 的翻译和实践.入门级踩坑实践,k8s 大佬请回避,以免耽误您宝贵的时间. 介绍 ...
- 高并发Flask服务部署
高并发Flask服务部署 AI模型持久化 OOP: 利用面向对象思想,实现算法在内存上的实例化及持久化.即一次模型加载,多次请求调用. class ocr_infer_class(threading. ...
随机推荐
- 带你玩转OpenHarmony AI:基于Seetaface2的人脸识别
简介 随着时代的进步,全民刷脸已经成为一种新型的生活方式,这也是全球科技进步的又一阶梯,人脸识别技术已经成为一种大趋势,无论在智慧出行.智能家居.智慧办公等场景均有较广泛的应用场景,本文介绍了基于Se ...
- OpenHarmony社区运营报告(2022年9月)
篇首语 在开放原子开源基金会.OpenAtom OpenHarmony(简称"OpenHarmony")工作委员会.会员及共建单位和开发者的共同努力下,OpenHarmony在技术 ...
- 成长计划校园极客秀|基于OpenHarmony的智能阳台
前言 本文由OpenAtom OpenHarmony(以下简称"OpenHarmony")开源开发者成长计划活动的参与者李建涛提供,详细阐述了由搭载OpenHarmony系统的拓维 ...
- 鸿蒙HarmonyOS实战-ArkUI组件(Video)
一.Video 视频组件是用于应用程序中嵌入视频的一种方法.它可以让用户在网站上观看视频并与其进行交互.通常,视频组件将一个视频文件嵌入应用程序中,并提供一组控件,这些控件允许用户播放.暂停.跳过.音 ...
- Maven 必备技能:MAC 系统下 JDK和Maven 安装及环境变量配置详细讲解
开发中难免因系统问题或者版本变更反复折腾JDK和Maven环境变量,干脆写个笔记备忘个,也方便小伙伴们节省时间. =================JDK安装与环境变量配置====== 1.官网下载j ...
- 报表 BI 选型的那些事
前言 报表工具是一个接近 20 年的产物了 但是,直到现在,在各种数据信息化的系统中,报表工具的作用,不仅没有褪色,反而是因为信息化需求的增大.数据的增多,以及报表工具本身迭代后越来越方便好用,使得它 ...
- sql 语句系列(用魔法打败魔法)[八百章之第十章]
前言 下面是一些常规的运维手段. 查询每个表的行数 SELECT a.name, a.object_id, b.rows, b.index_id FROM sys.tables AS a INNER ...
- docker 应用篇————容器卷[十一]
前言 简单介绍一下容器卷. 正文 我们发现一个文件,就是什么呢? 就是说因为我们的容器一但删除那么什么都没有了. 那么如何能够不删除呢?那么可以使用容器卷. 比如说系统我们容器内的/usr 使用我们的 ...
- Scratch3之AI集成 - flappy bird AI版本
AI神秘且有趣,我们一个经典的游戏flappy bird集成AI,实现自训练成长的聪明的笨鸟.先上效果: 初始化的笨鸟拥有分身,每个分身都有自我学习功能,根据自己的移动轨迹和得分情况进行汇总,进行新一 ...
- 论文研究区域图的制作方法:ArcGIS
本文介绍基于ArcMap软件,绘制论文中研究区域示意图.概况图等的方法. 最近需要绘制与地学有关论文.文献中的研究区域概况图.对于这一类图片,我个人比较喜欢基于ArcMap与PPT结合的方式来 ...