zoukankan      html  css  js  c++  java
  • MongoDB安装及多实例启动

    MongoDB安装及多实例启动

    MongoDB简介

    MongoDB是一款跨平台、面向文档的数据库。可以实现高性能、高可用性,并且能够轻松扩展,是一个基于分布式文件存储的开源数据库系统,在高负载的情况下,添加更多的节点可以保证服务器的性能。

    在大数据时代中,大数据量的处理已经成了考量一个数据库最重要的原因之一。MongoDB的一个主要目标就是尽可能的让数据库保持卓越的性能,这很大程度地决定了MongoDB的设计。MongoDB选择了最大程度而利用内存资源用作缓存来换取卓越的性能,并且会自动选择速度最快的索引来进行查询。MongoDB尽可能精简数据库,将尽可能多的操作交给客户端,这种方式也是MongoDB能够保持卓越性能的原因之一。

    MongoDB是非关系性数据库(NoSQL)中功能最丰富,最像关系数据库的。不采用关系模型是为了获取更好的扩展性,MongoDB不在有“行”的概念,其运行方式主要基于两个概念:集合(collection)和文档(document)。

    MongoDB的特点

    Mongo是一个高性能,开源,无模式的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。

    1、面向集合的存储:适合存储对象及JSON形式的数据。

    2、MongoDB安装简单,提供了面向文档的存储功能,操作起来比较容易。

    3、MongoDB提供了复制,高可用性和自动分片功能。如果负载增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上,这就是所谓的分片。

    4、MongoDB支持丰富的查询表达式。

    5、高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。

    MongoDB适用领域

    1、MongoDB可以为Web应用提供可扩展的高性能数据存储解决方案。MongoDB主要适用领域有网站数据、分布式场景、数据缓存和JSON文档格式存储。适合大数据量、高并发、弱事务的互联网应用,其内置的水平扩展机制提供了从几百万到十亿级别的数据处理能力,可以很好的满足Web2.0和移动互联网应用数据存储的要求。

    MongoDB安装

    1、下载和安装MongoDB及支持软件。

    我们这里选择的是直接下载软件包,由于我使用的虚拟机是CentOS7并且是64位版本,所以我们选择对应的RedHat7版本64位。下载完后经过配置可以直接使用。由于软件包已经启用了SSL安全加密,所以需要我们安装openssl相关的依赖包。
    MongoDB安装及多实例启动
    MongoDB安装及多实例启动

    [root@promote ~]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.0.tgz  
    #可以直接下载
    [root@promote ~]# yum install openssl openssl-devel -y  
    #安装相关依赖包
    [root@promote ~]# tar xvfz mongodb-linux-x86_64-rhel70-4.0.0.tgz -C /usr/local/
    #将压缩包解压到指定的目录中
    [root@promote ~]# mv /usr/local/mongodb-linux-x86_64-rhel70-4.0.0/ /usr/local/mongodb
    #重命名软件包,方便以后使用

    2、创建数据存储目录,日志存储目录及日志文件

    由于我们下载的是已经编译好的软件包,所以我们需要自行创建数据存储目录,日志存储日志及日志文件。

    [root@promote ~]# mkdir -p /data/mongodb1
    #创建数据存储目录
    [root@promote ~]# mkdir -p /data/logs/mongodb
    #创建日志存储目录
    [root@promote ~]# touch /data/logs/mongodb/mongodb1.log
    #创建日志文件
    [root@promote ~]# chmod -R 777 /data/logs/mongodb/mongodb1.log 
    #修改日志文件权限,方便下面操作

    当MongoDB处于频繁访问的状态,如果shell启动进程所占用的资源设置过低,会产生错误到时无法连接MongoDB。

    [root@promote ~]# ulimit -n 2500    #修改shell所能启用的最大进程数
    [root@promote ~]# ulimit -u 2500    #修改shell所能打开的最大文件数

    3、创建MongoDB配置文件和配置启动参数

    下载下来的软件包没有配置文件,这里需要我们自行创建。

    [root@promote ~]# cd /usr/local/mongodb/bin/
    [root@promote bin]# vim mongodb1.conf
    port=27017                                    #默认服务器端口号
    dbpath=/data/mongodb1                         #数据存储目录,就是我们上一步创建的
    logpath=/data/logs/mongodb/mongodb1.log       #日志文件
    logappend=true                                #使用追加方式写日志
    fork=true                                     #后台运行
    maxConns=5000                                 #最大连接数

    4、启动和停止MongoDB

    安装并且配置好后就可以启动的们的MongoDB服务了
    MongoDB安装及多实例启动
    MongoDB安装及多实例启动

    [root@promote bin]# export PATH=$PATH:/usr/local/mongodb/bin/
    #可以把MongoDB的路径加入到环境变量,这样可以直接使用MongoDB的相关命令
    [root@promote bin]# mongod -f /usr/local/mongodb/bin/mongodb1.conf 
    #mongod用于启动服务进程,-f后面加上服务的配置文件路径
    [root@promote bin]# netstat -ntap | grep mongod     #可以查看MongoDB的进程启动状态
    tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      78984/mongo
    [root@promote bin]# mongo   #可以进入到数据库中
    
    [root@promote bin]# mongod -f /usr/local/mongodb/bin/mongodb1.conf --shutdown
    #--shutdown表示关闭MongoDB服务进程
    2018-07-16T21:22:05.828+0800 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
    killing process with pid: 78984
    [root@promote bin]# netstat -ntap | grep mongod  #没有MongoDB进程

    启动MongoDB多实例

    在单台服务器资源充分的情况下,可以使用多实例,以便充分使用服务器资源。步骤和上面相同,再创建一组数据存储目录、日志文件和配置文件。

    [root@promote bin]# mkdir -p /data/mongodb2
    #创建新的数据存储目录
    [root@promote bin]# touch /data/logs/mongodb/mongodb2.log 
    #创建新的日志文件
    [root@promote bin]# chmod -R 777 /data/logs/mongodb/mongodb2.log 
    #赋予日志文件对应权限
    [root@promote bin]# chmod -R 777 /data/logs/mongodb/mongodb2.log 
    [root@promote bin]# cp /usr/local/mongodb/bin/mongodb1.conf /usr/local/mongodb/bin/mongodb2.conf 
    #复制一份新的配置文件,再修改相应的参数
    port=27018                                #设置一个新的端口号
    dbpath=/data/mongodb2                     #设置新的数据存储目录    
    logpath=/data/logs/mongodb/mongodb2.log   #设置新的日志文件
    logappend=true
    fork=true
    maxConns=5000
    
    [root@promote bin]# mongod -f /usr/local/mongodb/bin/mongodb2.conf #开启新实例的进程
    [root@promote bin]# mongod -f /usr/local/mongodb/bin/mongodb1.conf 
    2018-07-16T21:31:16.103+0800 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
    about to fork child process, waiting until server is ready for connections.
    forked process: 79334
    child process started successfully, parent exiting
    [root@promote bin]# netstat -ntap | grep mongo
    tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      79334/mongod        
    tcp        0      0 127.0.0.1:27018         0.0.0.0:*               LISTEN      79304/mongod 
    #可以看到开启了两个实例
  • 相关阅读:
    CSS3 选择器——伪类选择器详细讲解
    关于endnote与word或wps关联的问题
    高通量测序中,reads、contigs、scaffold之间的联系
    转录组中 实验设计 的相关问题
    RNA-Seq分析软件HTSeq的安装
    bash下特殊字符的含义
    常见的测序名词解释
    RNA-seq数据分析注意事项
    RNASeq中常见的分析流程
    WGS/WES/RNAseq/CHIP-seq之间的差别
  • 原文地址:https://www.cnblogs.com/ExMan/p/9571785.html
Copyright © 2011-2022 走看看