数据备份
有以下两组方式实现数据的备份。
mongoexport / mongoimport
待更新
mongodump / mongorestore
性能监控
及时获得应用的运行状态信息,在问题出现时及时发现。
监控什么?
CPU、内存、磁盘I/O、应用程序(MongoDB)、进程监控(ps -aux)、错误日志监控
在你已经安装部署并允许MongoDB服务后,你必须要了解MongoDB的运行情况,并查看MongoDB的性能。这样在大流量得情况下可以很好的应对并保证MongoDB正常运作。
MongoDB中提供了mongostat 和 mongotop 两个命令来监控MongoDB的运行情况
mongostat是mongodb自带的命令行状态检测工具,它周期性地获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,考虑采用mongostat来查看mongo的状态。
实时数据库状态,读写、加锁、索引命中、缺页中断、读写等待队列等情况。
每秒刷新一次状态值,并能提供良好的可读性,通过这些参数可以观察到MongoDB系统整体性能情况。
[mongod@MongoDB oplog]$ mongostat -h 10.0.0.152 --port 28017
insert query update delete getmore command flushes mapped vsize res faults qr|qw ar|aw netIn netOut conn set repl time
*0 *0 *0 *0
db.currentOp() 数据库当前的操作
db.killOp(opid) 停掉该操作
查询慢操作
https://blog.csdn.net/qq_39741836/article/details/111984247
db.setProfilingLevel( )
mongodb的profiler设置,默认该设置是关闭的,profiler可用于采集与分析慢操作的数据库请求。
db.setProfilingLevel(, );
db.getProfilingLevel()
db.getProfilngStatus()
0 profiler已关闭,并且不收集任何数据。
1 profiler收集花费的时间超过slowms值的数据。
2 profiler收集所有操作的数据。
db.setProfilingLevel(1, { slowms: 20, sampleRate: 0.42 })
shard_rs:PRIMARY> db.setProfilingLevel(1,{slowms:90})
//slowms 操作阈值毫秒数,操作的耗费时间大于此则被认为是慢操作,会被记//录到慢操作日志中,所在位置为test数据库下的一个固定集合system.profile