千家信息网

MongoDB中怎么部署单实例

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章将为大家详细讲解有关MongoDB中怎么部署单实例,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 安装所需依赖yum install li
千家信息网最后更新 2024年11月28日MongoDB中怎么部署单实例

这篇文章将为大家详细讲解有关MongoDB中怎么部署单实例,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1. 安装所需依赖

yum install libcurl openssl

2. 下载tar包

下载地址: https://www.mongodb.com/download-center?jmp=nav#community

3.解压tar包

将下载的tar包上传至服务器/apps路径下,如果不存在,请自行创建(注:目前以root登录)

root#cd /appsroot#tar -zxvf mongodb-linux-x86_64-rhel70-4.0.2.tgzroot# ls -ldrwxrwxr-x. 3 mongo mongo       86 Dec  8 18:34 mongodb-linux-x86_64-rhel70-4.0.2-rw-rw-r--. 1 mongo mongo 82140922 Oct 24 22:03 mongodb-linux-x86_64-rhel70-4.0.2.tgzroot# mv mongodb-linux-x86_64-rhel70-3.2.10   mongodb        ---为了方便后续使用,我们重命名文档

4.关闭防火墙

root#sudo systemctl  stop firewalldroot#sudo systemctl  status  firewalld

5.关闭大内存页面

5.1先查看参数值:
root#sudo cat /sys/kernel/mm/transparent_hugepage/enabled[always] madvise  neverroot#sudo cat /sys/kernel/mm/transparent_hugepage/defrag[always] madvise  never
5.2 配置transparent_hugepage服务
root#sudo vim /etc/init.d/disable-transparent-hugepages

填写如下内容

#!/bin/bash### BEGIN INIT INFO# Provides:          disable-transparent-hugepages# Required-Start:    $local_fs# Required-Stop:# X-Start-Before:    mongod mongodb-mms-automation-agent# Default-Start:     2 3 4 5# Default-Stop:      0 1 6# Short-Description: Disable Linux transparent huge pages# Description:       Disable Linux transparent huge pages, to improve#                    database performance.### END INIT INFOcase $1 in  start)    if [ -d /sys/kernel/mm/transparent_hugepage ]; then      thp_path=/sys/kernel/mm/transparent_hugepage    elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then      thp_path=/sys/kernel/mm/redhat_transparent_hugepage    else      return 0    fi    echo 'never' > ${thp_path}/enabled    echo 'never' > ${thp_path}/defrag    re='^[0-1]+$'    if [[ $(cat ${thp_path}/khugepaged/defrag) =~ $re ]]    then      # RHEL 7      echo 0  > ${thp_path}/khugepaged/defrag    else      # RHEL 6      echo 'no' > ${thp_path}/khugepaged/defrag    fi    unset re    unset thp_path    ;;esac
5.3 对该服务授权,并设置开机启动
root#sudo chmod 755 /etc/init.d/disable-transparent-hugepagesroot#sudo chkconfig --add disable-transparent-hugepages
5.4 重启服务器后检查该参数是否已经生效:
root#sudo cat /sys/kernel/mm/transparent_hugepage/enabledalways madvise [never]root#sudo cat /sys/kernel/mm/transparent_hugepage/defragalways madvise [never]

注:transparent_hugepage参数必须设置为never,否则,在登录mongo shell的时候会有如下告警:

官方的配置链接:Disable Transparent Huge Pages (THP)【https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/】

6.修改open files

有时候Linux系统默认的open files(文件句柄)是1024, 但是mongod官网建议是64000,并且确实需要修改要不然会被坑(很不幸,我遇到了)

6.1 查看到Linux系统的一些设置:
[mongo@mongodb01 ~]$ ulimit -acore file size          (blocks, -c) 0data seg size           (kbytes, -d) unlimitedscheduling priority             (-e) 0file size               (blocks, -f) unlimitedpending signals                 (-i) 31206max locked memory       (kbytes, -l) 64max memory size         (kbytes, -m) unlimitedopen files                      (-n) 1024pipe size            (512 bytes, -p) 8POSIX message queues     (bytes, -q) 819200real-time priority              (-r) 0stack size              (kbytes, -s) 8192cpu time               (seconds, -t) unlimitedmax user processes              (-u) 1024virtual memory          (kbytes, -v) unlimitedfile locks                      (-x) unlimited
6.2 修改

可使用命令临时修改

ulimit -n 64000

上述方法服务器重启后将失效,永久办法,修改/etc/security/limits.conf,添加mongo相关4条配置信息

root#vim /etc/security/limits.conf#@student        -       maxlogins       4mongo soft nproc 64000mongo hard nproc 64000mongo soft nofile 64000mongo hard nofile 64000# End of file

注:修改成功后重启mongod生效

7.创建用户mongo

root#groupadd mongogrproot#useradd -g mongogrp  mongo

8.创建所需目录

root#mkdir /dataroot#chown  -R  mongo:mongogrp   /dataroot#su mongo$mkdir -p /data/dbdata/r1      ---数据文件存放$mkdir  -p /data/logs/r1_logs          ---创建日志文件路径$mkdir -p /data/pid            ---mongodb进程id存放

9.配置环境变量

$cd /home/mongo$vim .bash_profile

修改PATH变量

PATH=$PATH:$HOME/.local/bin:$HOME/bin:/apps/mongodb/bin       ---添加上mongo程序路径export PATH
$source  .bash_profile         ---使环境变量生效

10.创建启动配置文件

虽然里面有很多复杂的参数,不要着急,咱先启动了再说,后续我会详细讲解各个常用参数的意义,因为我喜欢把配置文件mongodb.cnf(名字当然可以虽然叫)放在/etc目录下,你也可以放到其他地方,随意。

$sudo vim /etc/mongodb.cnf

填入如下内容

storage:   dbPath: /data/dbdata/r1    #数据文件存放路径   journal:      enabled: true      commitIntervalMs: 100   directoryPerDB: true   engine: wiredTiger   wiredTiger:      engineConfig:         directoryForIndexes: truesystemLog:   quiet: false   path: /data/logs/r1_logs/r1.log    #log日志路径   destination: file   logAppend: trueprocessManagement:   fork: true   pidFilePath: /data/pid/r1.pid    #进程ID存放net:   port: 27018   maxIncomingConnections: 3000   wireObjectCheck: true#security:#    keyFile: /data/key/r1#    authorization: enabled#replication:#   oplogSizeMB: 10240#   replSetName: rs1    #operationProfiling:#   slowOpThresholdMs: 100#   mode: slowOp

编辑完后保存即可

赋予权限

$sudo chown -R mongo:mongo /etc/mongodb.cnf

11.启动数据库实例

$/apps/mongodb/bin/mongod -f /etc/mongodb.cnf

12.连接数据库

mongo 192.168.1.100:27018

我们可以通过检查是否可以连接到mongo shell以验证启动成功,当然也可以直接看进程

$ps -ef | grep mongod

关于MongoDB中怎么部署单实例就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0