官网地址:https://www.mongodb.com/,官方参考文档。
我们选择企业版 tgz 压缩包安装。
1 安装依赖
yum -y install cyrus-sasl cyrus-sasl-plain cyrus-sasl-gssapi krb5-libs \
lm_sensors-libs net-snmp-agent-libs net-snmp openssl rpm-libs \
tcp_wrappers-libs
2 下载&解压 tgz 包
tar -xvf mongodb-linux-x86_64-enterprise-rhel70-3.2.22.tgz
3 创建 mongod 用户和组
groupadd -g 27017 mongod
useradd -u 27017 -g 27017 -s /sbin/nologin mongod
4 定义 mongodb 程序路径
mv mongodb-linux-x86_64-enterprise-rhel70-3.2.22 /usr/local/mongodb
cd /usr/local/mongodb/
mkdir ./{etc,temp,log}
5 配置 mongodb 数据路径
tmpfs
tmpfs 临时文件系统,是一种基于内存的文件系统。tmpfs 可以使用 RAM,也可以使用 swap 来存储,是最好的基于 RAM 的文件系统。
使用 tmpfs 的优势
- 速度快:tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。
- 动态收缩:tmpfs 一开始使用很小的空间,但随着文件的复制和创建,tmpfs 会分配更多的内心来动态地增加文件系统的空间;当
tmpfs 中的文件被删除时,tmpfs 文件系统会动态地减小文件并释放内存资源
使用 tmpfs 的劣势:
- 由于 tmpfs 是构建在内存中的,因此断电或者卸载之后,数据就会立即丢失。
为 mongodb 数据文件配置 tmpfs 路径
mkdir /mongodb_data
mount -t tmpfs -o size=4096M tmpfs /mongodb_data
写入 fstab
vim /etc/fstab
#添加
tmpfs /mongodb_data tmpfs size=4096M,defaults 0 0
6 配置 mongodb
想要了解配置文件中这些选项含义的,可以参考之前的文档:“https://blog.csdn.net/qq_43584691/article/details/116051760”
vim /usr/local/mongodb/etc/mongod.conf
systemLog:
#verbosity: 0
quiet: false
destination: file
logAppend: true
path: /usr/local/mongodb/log/mongod.log
#timeStampFormat: iso8601-local
processManagement:
fork: true
pidFilePath: /usr/local/mongodb/temp/mongod.pid
net:
port: 27017
bindIp: 192.168.10.140,127.0.0.1
maxIncomingConnections: 65536
wireObjectCheck: true
ipv6: false
storage:
dbPath: /mongodb_data
indexBuildRetry: true
journal:
enabled: true
commitIntervalMs: 100
directoryPerDB: false
engine: wiredTiger
syncPeriodSecs: 60
wiredTiger:
engineConfig:
cacheSizeGB: 8
journalCompressor: snappy
directoryForIndexes: false
collectionConfig:
blockCompressor: snappy
indexConfig:
prefixCompression: true
operationProfiling:
slowOpThresholdMs: 100
mode: off
7 配置 mongod 启动文件
vim /usr/lib/systemd/system/mongod.service
[Unit]
Description=High-performance, schema-free document-oriented database
After=syslog.target network.target
[Service]
Type=forking
User=mongod
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongod.conf
PrivateTmp=true
LimitNOFILE=64000
TimeoutStartSec=180
[Install]
WantedBy=multi-user.target
8 启动&自启 mongod
chown -R mongod:mongod /usr/local/mongodb/
chown -R mongod:mongod /mongodb_data
systemctl daemon-reload
systemctl start mongod && systemctl enable mongod
9 声明环境变量
cat << EOF > /etc/profile.d/mongodb.sh
export PATH=/usr/local/mongodb/bin:$PATH
EOF
source /etc/profile