MongoDB离线部署流程
第一部分 ftp配置
1.开启防火墙
iptables -I INPUT 5 -p tcp --dport 21 -j ACCEPT
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
2.设置SELinux
getsebool -a | grep ftp
setsebool -P ftpd_full_access on
3.关闭匿名登陆
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO # 不允许匿名访问,禁用匿名登录
4.重启服务
systemctl restart vsftpd.service
systemctl enable vsftpd.service
5.新建一个ftp用于上传的文件夹
mkdir -p /home/[用户名]/upload
chmod -R 777 /home/[用户名]/upload/
第二部分 Mongodb离线安装
这里省略了解压安装包的流程,新手推荐使用RPM包或者deb包方式安装,就可以不用自己手写服务文件,对linux有些了解的老手,可以使用二进制包的方式安装,解压到文件夹运行即可。
1、创建mongod服务(仅限于二进制安装或者编译安装)
cd /lib/systemd/system
vi mongodb.service
输入:
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
TimeoutSec=300
ExecStart=/data/mongodb/bin/mongod --config /data/mongodb/mongod.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/data/mongodb/bin/mongod --shutdown --config /data/mongodb/mongod.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
由于数据库后期会过大,在开启启动时候,linux系统默认服务启动时间为90s,如果超过90s则会被系统强制关闭,所以服务配置文件内,新增TimeoutSec参数,延长服务启动的等待时间
启动服务:systemctl start mongodb.service
停止服务:systemctl stop mongodb.service
开机启动 :systemctl enable mongodb.service
2、开启防火墙
firewall-cmd --permanent --zone=public --add-port=27017/tcp
firewall-cmd --reload
3、创建用户
./mongo
use admin
db.createUser(
{
user: "mongoAdmin",
pwd: "@#¥wdPOW",
roles: [ { role: "root", db: "admin" } ]
}
)
4、建立副本集
4.1、主机建立副本集**(单节点只需执行这步)**
rs.initiate()
4.2、在配置中启用认证
authorization: enabled
4.3、生成keyFile
openssl rand -base64 756 > rs0.key
chown -R mongod:mongod rs0.key
chmod 400 rs0.key
4.4、在配置设置keyFile路径
keyFile: /data/mongo/rs0.key
4.5、在从机中安装mongo,依照3、4步骤 重新给rs0.key进行权限赋值
4.6、在主机执行:
rs.add( { host: "mongo-2:27017", priority: 0, votes: 0 } )
5、系统调优
5.1、限制内存
默认的Mongod服务会设置最大内存占用量为系统物理内存的60%,通过修改配置文件可以手工设置占用量。
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
wiredTiger:
engineConfig:
cacheSizeGB: 2
例如以上配置,将内存占用量限制到了2GB,请根据实际情况调整。