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单个服务部署的更多相关文章

  1. Docker & k8s 系列三:在k8s中部署单个服务实例

    本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...

  2. nginx服务部署 说明

    第1章 常用的软件 1.1 常用来提供静态服务的软件   Apache :这是中小型Web服务的主流,Web服务器中的老大哥,   Nginx :大型网站Web服务的主流,曾经Web服务器中的初生牛犊 ...

  3. docker swarm overlay stack 服务部署记录

    项目xxx(后端),xxx-ui前端(前后端分离的项目) 依赖mysql,elasticsearch.分别制作了四个镜像来做这件事.希望可以制作跨主机的部署,使用了swarm,以下是学习记录. 参考 ...

  4. Redis主从服务部署

    Redis__WindowsServer主从服务部署及调用实例       一.先谈谈单个Redis服务的安装         使用的redis是2.8.17版本,从官网下载解压缩后文件内容为:   ...

  5. 孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务

    孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第五天.今天的感觉是,mongoDB数 ...

  6. Linux服务部署Yapi项目(安装Node Mongdb Git Nginx等)

    Linux服务部署Yapi 一,介绍与需求 1,我的安装环境:CentOS7+Node10.13.0+MongoDB4.0.10. 2,首先安装wget,用于下载node等其他工具 yum insta ...

  7. DHCP服务部署

    目录 DHCP服务部署 一. 简介 二. 用途及功能 三. 原理+示意图 四. 实战搭建 相关文件 配置基础DHCP服务器 配置DHCP保留地址 配置DHCP超级作用域 配置DHCP中继 五. 小结 ...

  8. zabbix监控服务部署

    目录 zabbix监控服务部署 1. zabbix介绍 1.1 zabbix的组件 1.2 zabbix的进程 1.3 zabbix常用术语 2. zabbix工作原理 3. zabbix监控架构 4 ...

  9. 将微服务部署到 Azure Kubernetes 服务 (AKS) 实践

    本文是对 <.NET Tutorial - Deploy a microservice to Azure> 的翻译和实践.入门级踩坑实践,k8s 大佬请回避,以免耽误您宝贵的时间. 介绍 ...

  10. 高并发Flask服务部署

    高并发Flask服务部署 AI模型持久化 OOP: 利用面向对象思想,实现算法在内存上的实例化及持久化.即一次模型加载,多次请求调用. class ocr_infer_class(threading. ...

随机推荐

  1. 【开源三方库】crypto-js加密算法库的使用方法

     OpenAtom OpenHarmony(简称"OpenHarmony")三方库,是经过验证可在OpenHarmony系统上可重复使用的软件组件,可帮助开发者快速开发OpenHa ...

  2. C 语言用户输入详解:scanf、fgets、内存地址解析及实用指南

    C 语言中的用户输入 您已经学习了 printf() 函数用于在 C 语言中输出值. 要获取用户输入,可以使用 scanf() 函数: // 声明一个整数变量,用于存储我们从用户那里获得的数字 int ...

  3. 【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(2)

    1.问题描述: 开发服务端推送,客户端能收到离线推送,但是推送收到的通知只能从手机顶部下拉看到,无法收到一个顶部的弹框.请问是什么原因? 解决方案: 可能原因一: 消息提醒的方式与消息类别有关,比如: ...

  4. 从零开始写 Docker(十)---实现 mydocker logs 查看容器日志

    本文为从零开始写 Docker 系列第十篇,实现类似 docker logs 的功能,使得我们能够查查看容器日志. 完整代码见:https://github.com/lixd/mydocker 欢迎 ...

  5. R语言学习3:数据框处理(1)

    本系列是一个新的系列,在此系列中,我将和大家共同学习R语言.由于我对R语言的了解也甚少,所以本系列更多以一个学习者的视角来完成. 参考教材:<R语言实战>第二版(Robert I.Kaba ...

  6. Qt + mupdf 显示PDF,支持翻页

    使用Qt + mupdf 实现PDF阅读器,支持翻页(上一页.下一页) 思路: PDF阅读器:使用mupdf,将PDF文件拆分成单个page页,将page页转为QImage图像,使用QListWidg ...

  7. 最新CAMX-python融合技术应用与大气污染来源解析方法

    大气污染问题既是局部.当地的,也是区域的,甚至是全球的.本地的污染物排放除了对当地造成严重影响外,同时还会在动力输送作用下,极大地影响下风向地区的大气环境状况.数值模式模拟是分析大气污染物时空分布和成 ...

  8. MogDB/openGauss 3.0 扩容及缩容

    MogDB/openGauss 3.0 扩容及缩容 本文出处:https://www.modb.pro/db/452139 一.概述 背景信息 gs_expansion 工具对数据库的备机进行扩容,支 ...

  9. DevEco Hvigor高效编译,构建过程新秘籍

      作者:Lewei,华为终端BG编译构建技术专家 DevEco Hvigor是使用TypeScript语言开发的全新轻量化的任务调度工具,针对HarmonyOS应用提供了一系列编译构建任务,支持将H ...

  10. 如何将传统 Web 框架迁移部署到 Serverless 架构?

    简介: 与其说 Serverless 架构是一个新的概念,不如说它是一种全新的思路,一种新的编程范式. 与其说 Serverless 架构是一个新的概念,不如说它是一种全新的思路,一种新的编程范式. ...