Mongodb7.0 安装


1. 安装前说明

        1. 本安装以ubuntu22.04 为准
        2. 7.0版本最高支持系统:ubuntu22.04 详细移步:https://www.mongodb.com/try/download/community-edition/releases/archive

2. apt-get 安装流程

2.1 官方安装命令
1.安装工具
sudo apt-get install gnupg curl

2.获取密钥
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
   --dearmor

3.获取文件列表
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

4.更新
sudo apt-get update
2.2 代理源安装命令
1. 获取密钥
sudo wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | apt-key add -

2. 获取文件列表
sudo echo "deb [ arch=amd64,arm64 ] https://mirrors.tuna.tsinghua.edu.cn/mongodb/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

3.更新
sudo apt-get update
2.3 开始安装


sudo apt-get install -y mongodb-org

3. deb包安装流程

下载移步:https://www.mongodb.com/try/download/community-edition/releases/archive
工具(mongos)下载移步:https://www.mongodb.com/try/download/shell

使用apt-get install 会提示-apt用户没有权限,使用 dpkg -i 命令安装

#安装 server
sudo dpkg -i ./mongodb-org-server_7.0.16_amd64.deb 

#安装mongos
sudo dpkg -i ./mongodb-org-mongos_7.0.16_amd64.deb

4.  启动

#简单配置mongo

sudo vim /etc/mongod.conf

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

保存并退出

#启动 
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod

同环境启动多个mongo 服务

例子1:启动mongod节点服务后,再启动一个mongos 服务

=>创建文件
sudo touch /var/log/mongodb/mongosd.log
sudo chown mongodb:mongodb /var/log/mongodb/mongosd.log

=>复制一份配置
sudo cp /etc/mongod.conf /etc/mongod-mongos.conf 

=> 修改配置为

#storage:
#  dbPath: /var/lib/mongodb
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongosd.log
net:
  port: 27017
  bindIp: mongos.com

sharding:
  configDB: configReplSet/mongoconfig.com:27030


=>启动mongos
sudo -u mongodb mongos --config /etc/mongod-mongos.conf &

例子2:启动mongod节点服务后,再启动一个mongo config 服务

----------配置 config svr----------------
# Where and how to store data.
storage:
  dbPath: /var/lib/mongodbConfig
# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongodbConfig.log
sharding:
  clusterRole: configsvr
replication:
  replSetName: configReplSet
net:
  bindIp: mongoconfig.com
  port: 27030

-----------同一台机器配置3台 config svr------------------

sudo mkdir -p /var/lib/mongodbConfig
sudo chown -R mongodb:mongodb /var/lib/mongodbConfig
sudo touch /var/log/mongodb/mongodbConfig.log
sudo chown mongodb:mongodb /var/log/mongodb/mongodbConfig.log


sudo cp /etc/mongod.conf /etc/mongod-mongodbConfig.conf

===>启动
sudo -u mongodb mongod --config /etc/mongodbConfig.conf &

===>停止
sudo -u mongodb mongod --config /etc/mongodbConfig.conf --shutdown

5. mongo推荐系统设置

ps:写这条的原因是大多新装系统的相关参数都小于64000,使用:ulimit -a
    real-time non-blocking time  (microseconds, -R) unlimited
    core file size              (blocks, -c) 0
    data seg size               (kbytes, -d) unlimited
    scheduling priority                 (-e) 0
    file size                   (blocks, -f) unlimited
    pending signals                     (-i) 7253
    max locked memory           (kbytes, -l) 246744
    max memory size             (kbytes, -m) unlimited
    open files                          (-n) 1024
    pipe size                (512 bytes, -p) 8
    POSIX message queues         (bytes, -q) 819200
    real-time priority                  (-r) 0
    stack size                  (kbytes, -s) 8192
    cpu time                   (seconds, -t) unlimited
    max user processes                  (-u) 7253
    virtual memory              (kbytes, -v) unlimited
    file locks                          (-x) unlimited

详细移步:https://www.mongodb.com/zh-cn/docs/v7.0/reference/ulimit/


5.1 修改ulimit参数

    sudo vim /etc/security/limits.conf

    添加以下内容:

* soft nproc 64000     # 用户进程数(软限制)
* hard nproc 524288     # 用户进程数(硬限制)
* soft nofile 64000    # 文件描述符数(软限制)
* hard nofile 524288    # 文件描述符数(硬限制)

    保存并退出
    ps: * 表示所有用户,可替换为具体用户名(如 ubuntu)以限制特定用户

5.2 确保 PAM 模块加载限制配置(来源于AI)

    某些系统可能未默认加载 limits.conf,需检查 PAM 配置:

    1.编辑pam会话文件

    sudo vim /etc/pam.d/common-session

    添加以下内容
    session required pam_limits.so

    保存并退出

5.3 修改 Systemd 全局配置

Ubuntu 22.04 使用 Systemd 管理服务,部分进程可能绕过 limits.conf,需单独配置:

  5.3.1 编辑systemd配置文件:


      sudo vim /etc/systemd/system.conf

  5.3.2 编辑以下参数:


   DefaultTasksMax=524288              # 用户进程数(等效于 nproc)
   DefaultLimitNOFILE=64000:524288     # 文件描述符数(软:硬限制)

  保存并退出

  5.3.3 重新加载并重启

  sudo systemctl daemon-reload
  sudo reboot

  5.3.4 验证是否配置成功

  1.找到mongodb的pid
   pidof mongod

  5.3.5 pid查询进程参数

  比如pid=799

  sudo cat /proc/799/limits |grep "open files"

  打印-> Max open files            64000                64000                files 

  sudo cat /proc/799/limits |grep "processes"

  打印-> Max processes             64000                64000                processes 

  打印以上参数就对了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值