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. ...
随机推荐
- 战“码”先锋直播预告丨如何成为一名优秀的OpenHamrony贡献者?
OpenAtom OpenHarmony(以下简称"OpenHarmony")工作委员会首度发起「OpenHarmony开源贡献者计划」,旨在鼓励开发者参与OpenHarmony开 ...
- IDEA Tab键设置为4个空格
在不同的编辑器里 Tab 的长度可能会不一致,这会导致有 Tab 的代码,用不同的编辑器打开时,格式可能会乱. 而且代码压缩时,空格会有更好的压缩率. 所以建议将 IDEA 的 Tab 键设置为 4 ...
- 踩坑指南:入门OpenTenBase之监控篇
本次监控将采用Prometheus.Grafana可视化工具以及postgres_exporter对OpenTenBase进行全面监控和优化. 安装监控 Docker安装 1.Docker要求 Cen ...
- 在python中通过面向对象方式,实现烤地瓜案例
例子:烤地瓜,不同时间,反馈不同状态,并给不同状态地瓜加入不同味道 烤地瓜时间 0-3分钟,生的 4-7分钟,半生不熟的 8-12分钟,熟了 12分钟以上,已烤熟,糊了 用户可以按自己的意思添加调料 ...
- 支持API 9的Sample已上新,速来拿走
原文:https://mp.weixin.qq.com/s/sPDG5sG5F_gTp0cE1VV3gQ,点击链接查看更多技术内容. 今年的华为开发者大会上我们发布了HarmonyOS 3.1 D ...
- ArkUI开发趣味体验,快来抽取限量HarmonyOS专属头像!
本次ArkUI开发趣味体验活动,将手把手教大家如何在IDE里实操一个ArkUI程序,通过补充缺失代码,成功运行程序开启抽奖功能,抽取个人专属头像,做HarmonyOS第一批数字藏品家! 同时本期提供的 ...
- nginx重新整理——————开篇[一]
前言 因为整理http协议,顺便把nginx 整理了. 正文 主要作用: 正向代理 反向代理(负载均衡.缓存等) 静态资源 nginx 的优点: 适合高并发,一个进程可以处理很多的请求. 扩展性强,有 ...
- Windows 系统上如何安装 Python 环境(详细教程)
Windows 系统上如何安装 Python 环境(详细教程) 目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的.由于2.x版官方只维护到2020年,所以以3.x版作 ...
- python性能测试,请求QPS测试
QPS = (1000ms/平均响应时间ms)*服务并行数量 #!/user/bin/env python #coding=utf-8 import requests import datetime ...
- HarmonyOS NEXT应用开发—听歌识曲水波纹特效案例
介绍 在很多应用中,会出现点击按钮出现水波纹的特效. 效果图预览 使用说明 进入页面,点击按钮,触发水波纹动画. 再次点击按钮,停止水波纹动画. 实现思路 本例涉及的关键特性和实现方案如下: 要实现存 ...