MongoDB Command Line Database Tools
摘要
-
本文介绍Linux下MongoDB Command Line Database Tools的安装与使用
-
MongoDB Command Line Database Tools官方文档
-
本文基于
CentOS8(x86_64)
MongoDB Database Tools
-
MongoDB Database Tools是MongoDB官方提供的数据库管理工具,可以用于管理MongoDB数据库,包括MongoDB的备份、恢复、监控等功能。
1 | # 下载安装包 |
-
MongoDB Database Tools常用命令,详细的使用方法请查看官方文档
文件名称 | 作用 |
---|---|
mongostat | 数据库性能监控工具 |
mongotop | 热点表监控工具 |
mongodump | 数据库逻辑备份工具 |
mongorestore | 数据库逻辑恢复工具 |
mongoexport | 数据导出工具 |
mongoimport | 数据导入工具 |
bsondump | BSON格式转换工具 |
mongofiles | GridFS文件工具 |
mongoexport: 导出数据
1 | # 导出csv格式的数据 |
mongoimport: 导入数据
1 | # 导入csv格式的数据 |
mode说明
-
insert: 默认值,如果数据不存在,则插入,如果存在,则报错
-
upsert: 如果数据不存在,则插入,如果存在,则更新
-
merge: 如果数据不存在,则插入,如果存在,则合并后更新
-
delete: 如果数据不存在,也不执行插入,如果存在,则删除
mongostat: 数据库性能监控
-
mongostat命令用于实时监控MongoDB数据库的性能,包括连接数、文档数、索引数、内存使用情况等。
1 | # 监控20次,间隔1秒 |
指标说明
指标名 | 说明 |
---|---|
inserts |
每秒插入数 |
query |
每秒查询数 |
update |
每秒更新数 |
delete |
每秒删除数 |
getmore |
每秒getmore数 |
command |
每秒命令数,涵盖了内部的一些操作 |
%dirty |
WiredTiger缓存中脏数据百分比 |
%used |
WiredTiger 正在使用的缓存百分比 |
flushes |
WiredTiger执行CheckPoint的次数 |
vsize |
虚拟内存使用量 |
res |
物理内存使用量 |
qrw |
客户端读写等待队列数量,高并发时,一般队列值会升高 |
arw |
客户端读写活跃个数 |
netIn |
网络接收数据量 |
netOut |
网络发送数据量 |
conn |
当前连接数 |
set |
所属复制集名称 |
repl |
复制节点状态,如PRI(主节点,我这里主节点显示为SLV),SEC(从节点),ARB(仲裁节点),REC(节点正在恢复),UNK(未知状态),RTR(mongos) |
time |
时间戳 |
需要重点关注的指标
1.插入、删除、修改、查询的速率是否产生较大波动,是否超出预期。
2.qrw、arw:队列是否较高,若长时间大于0则说明此时读写速度较慢。
3.conn:连接数是否太多。
4.dirty:百分比是否较高,若持续高于10%则说明磁盘I/O存在瓶颈。
5.netIn、netOut:是否超过网络带宽阈值。
6.repl:状态是否异常,如PRI、SEC、RTR为正常,若出现REC等异常值则需要修复。
1 | # 指定监控指标 -o |
mongotop: 查看数据库性能
-
mongotop命令可用于查看数据库的热点表,通过观察mongotop的输出,可以判定是哪些集合占用了大部分读写时间。
1 | # 监控20次,间隔1秒 |
mongodump: 备份数据库
-
mongodump命令用于备份数据库
1 | # 备份所有库,默认输出到dump文件夹下 |
mongorestore: 恢复数据库
-
mongorestore命令用于恢复数据库
1 | # 恢复到相同数据库的相同集合,此时会将dump目录下的所有数据库进行恢复 |
bsondump: 查看BSON文件内容
-
bsondump命令用于查看BSON文件内容,可以将bson格式的数据转换为json格式,方便查看。
-
我们使用mongodump导出的数据格式为bson格式,可以使用bsondump命令将其转换为json格式。
1 | # 如果导出的是压缩格式需要先解压缩 |
mongofiles: 文件存储
-
mongofiles命令用于文件存储,可以将文件存储到MongoDB中,然后通过mongofiles命令进行查看和删除。
-
不过现在文件存储基本都会使用S3,很少使用mongodb了。
1 | # 上传 |