一、前言
我这里使用的VM搭建的虚拟机。当前系统版本CenOs7.6。其实有了图形界面,操作会简单很多。下面演示了一下安装过程。由于本人也是刚接触Liunx不久,过程中不免有些错误,感谢指正。
二、MongoDB的安装
本篇中使用的用户是root用户,所以如果没有用户权限,记得切换用户。
1. 去官网下载MongoDB 安装包。这里使用的是4.2.2版本。下载完成后使用xFtp将文件拷贝到虚拟机中。
2. 切换到压缩包目录,解压安装包。
tar -zxvf mongodb-linux-x86_64-3.2.12.tgz
3. 移动解压后的文件夹到指定的目录。并重命名一下,方便后面操作
mv mongodb-linux-x86_64-rhel70-4.2.2 /root/software/mongodb
4. 编辑系统配置文件 /etc/profile,加入环境变量后保存后重新加载
vim /etc/profile
source /etc/profile
export MONGODB_HOME=/root/software/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
5. 创建存放日志和配置文件的目录
cd /root/software/mongodb
mkdir -p data
mkdir -p log
// 输入ll 查看文件目录
ll
6. 创建配置文件
mkdir -p conf
touch conf/mongo.conf
在mongo.conf 中插入以下配置内容
dbpath = ../data #数据文件存放目录
logpath = ../log/mongodb.log #日志文件存放目录
port = 27017 #端口
directoryperdb = true # 让每个库都有一个单独文件夹
fork = true # 以后台运行方式启动
bind_ip = 0.0.0.0 # 开放所有ip或者开放指定ip,默认127.0.0.1。不开放远程连接不上
wiredTigerCacheSizeGB = 1 # 允许占用最大内存1G
7. 切换到bin目录下启动mongodb 并连接
./mongod -f ../conf/mongo.conf # 启动mongodb 这里是指定配置文件的方式启动
./mongo # 连接mongodb
如下启动方式是通过命令直接启动(只是作为一个语法演示)
mongod --dbpath ../data/ --logpath ../log/log.log --fork --bind_ip 0.0.0.0
可以看到已经成功启动了。
8. 远程连接时,需要关闭防火墙
systemctl stop firewalld
其它关于防火墙的命令:
systemctl status firewalld查看当前防火墙状态。
systemctl stop firewalld 关闭当前防火墙。
systemctl disable firewalld开机防火墙不启动。
9. window连接成功
三、MongoDB 磁盘IO上限
应用场景: 单一MongoDB进程,磁盘IO读取速度达到上限。
计划解决方案 : 服务器挂载多个磁盘,将不同的库挂载到不同的磁盘上,缓解磁盘IO读取压力。
-
可以看到我们开启
directoryperdb = true
参数后,每一个库都会有一个单独的文件夹。我们接下来要做的就是将每个库的内容软连接到不同磁盘上。
-
由于本机上没有外挂磁盘,所以这里创建几个备份文件夹作为模拟。如下,分别对应admin、local、config库
-
比较简单的方式,就是直接将admin文件夹中的数据剪切到备份文件夹,然后建立起两个文件夹的软连接。
// 将admin目录下的文件全部移动到databack/admin 目录下
cp data/admin/* databack/admin
4. 删除原admin文件夹,建立备份文件夹的软链接
rm -rf /root/software/mongodb/data/admin
ln -s /root/software/mongodb/databack/admin /root/software/mongodb/data
5. 查看软链接。
直接使用ll命令查看软连接的文件
图形界面上也可以看到
- 同样的方式对local和config文件夹操作即可
- 也可以使用MongoDB 数据库备份的方式来实现上面的操作,这里就不做过多介绍。软链接建立完成后,我们保存在数据库中的数据就被分散到各个软链接所连接的磁盘上(这里没有多块磁盘,所以仅仅是模拟)。进行读取时也能分担单一磁盘的IO压力。
四、MongoDB 的数据备份
上面的方式使用剪切,其实也可以使用数据库备份还原的方式进行。
思路是 :
- 先将需要软链接的库进行备份。
- 删除备份的文件夹
- 创建软链接的文件夹,进行软链接
- 对库进行数据还原
这里不再对上面的思路进行操作,仅仅记录一下MongoDB的数据备份。
- . 为了验证备份,我在添加了一条数据如下
- 进行数据库备份
// 备份 admin数据库到 /root/Desktop/data/adminback/
mongodump -h 127.0.0.1 -d admin -o /root/Desktop/data/adminback/
- 备份完成后,删除文档中的张三的记录,后还原mongodb
/root/software/mongodb/bin/mongorestore -h 127.0.0.1:27017 -d admin --dir /root/Desktop/data/adminback/admin/
3. 还原后重新查询到张三的记录说明备份还原成功。
还原后可以查看到数据被还原
以上:内容部分参考网络
https://blog.csdn.net/jacson_bai/article/details/44781167
https://www.cnblogs.com/Lovebugs/p/8606000.html
如有侵扰,联系删除。 内容仅用于自我记录学习使用。如有错误,欢迎指正