加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MongoDB是什么,怎么用?看完你就知道了

发布时间:2019-06-05 21:11:39 所属栏目:编程 来源:Java识堂
导读:一、概述 1.MongoDB是什么?用一句话总结 MongoDB是一款为web应用措施和互联网基本办法计划的数据库打点体系。没错MongoDB就是数据库,是NoSQL范例的数据库。 2.为什么要行使MongoDB? (1)MongoDB提出的是文档、荟萃的观念,行使BSON(类JSON)作为其数

mongodb 只有当索引和事变集都可放入内存时,才会碰着CPU瓶颈,CPU在mongodb行使中的浸染是用来检索数据,假如看到CPU行使饱和的环境,可以通过查询慢查询日记,排查是不是查询的题目导致的,假如是可以通过添加索引来办理题目

mongodb写入数据时会行使到CPU,可是mongodb写入时刻一次只用到一个核,假若有频仍的写入举动,可以通过度片来办理这个题目

(3)内存

大内存是mongodb的保障,假如事变集巨细高出内存,将会导致机能降落,由于这将会增进数据加载入内存的举措

(4)硬盘

mongodb默认每60s会与磁盘逼迫同步一次,称为靠山革新,会发生I/O操纵。在重启时mongodb会将磁盘内里的数据加载至内存,高速磁盘将会镌汰同步的时刻

(5)文件体系

行使ext4 和 xfs 文件体系

禁用最后会见时刻

  1. vim /etc/fstab 

(6)文件描写符

linux 默认文件描写符是1024,必要大额度的晋升这个额度

(7)时钟

mongodb各个节点处事器之间行使ntp处事器

2.安详

(1)绑定IP

启动时行使 - -bind_ip 呼吁

(2)身份验证

启动时行使 - -auth 呼吁

  1. db.addUser("","",true) 
  2. //建设用户,最后一个参数指定是否只读 

(3)副本集身份认证

行使keyFile,留意keyFile文件的权限必需是600,否则会启动不起来

3.数据的导入与导出

  1. mongoimport 
  2. mongoexport 

4.处事器设置

(1)拓扑布局

搭建副本集至少必要两个节点,个中仲裁结点不必要有本身的处事器

(2)Journaling日记

写数据时会先写入日记,而此时的数据也不是直接写入硬盘,而是写入内存

可是Journaling日记会耗损内存,以是可以在主库上面封锁,在从库上面启动

可以单独为Journaling日记行使一块固态硬盘

在插入时,可以通过驱动确保Journaling插入后再反馈,可是会很是影响机能。

5.日记

logpath 选项指定日记存储地点

-vvvvv 选项(v越多,输出越具体)

db.runCommand({logrotare:1}) 开启转动日记

6.数据库监控呼吁

(1)serverStatus

MongoDB是什么,怎么用?看完你就知道了

这里写图片描写

  • globalLock 暗示处事器花在写锁上面的总时刻
  • mem表现了怎样行使内存
  • bits 表白这台呆板的位长
  • resident 暗示占用物理内存数目
  • virtual 暗示行使的假造内存

(2)top

MongoDB是什么,怎么用?看完你就知道了

(3)db.currentOp()

MongoDB是什么,怎么用?看完你就知道了

7.mongostat

动态展示mongodb勾当数据

8.web节制台

占用当前mongodb监听端口往上1000号的端口

9.备份与规复

(1)mongodump

把数据库内容导出成BSON文件,而mongorestore能读取并还原这些文件

(2)mongorestore

把导出的BSON文件还原到数据库

(3)备份原始数据文件

可以这么做,可是,操纵之前必要举办锁库处理赏罚 db.runCommand({fsync:1,lock:true})

db.$cmd.sys.unlock.findOne() 哀求解锁操纵,可是数据库不会立即解锁,必要行使db.currentOp()验证。

10.压紧与修复

(1)修复

mongd --repair 修复全部数据库

db.runCommand({repairDatabase:1}) 修复单个数据库

修复就是按照Jourling文件读取和重写全部数据文件并重建各个索引

(2)压紧

  1. db.spreadsheets.reIndex() //重建索引 
  2. db.runCommand({compact:"spreadsheets"})  

压紧,会重写数据文件,并重建荟萃的所有索引,必要停机可能在从库上面运行,假如必要在主库上面运行,必要添加force参数 担保加写锁。

11.机能调优

(1)监控磁盘状态

  1. iostat 

(2)为晋升机能搜查索引和查询

总的来说,扫描尽也许少的文档。

担保没有冗余的索引,冗余的索引会占用磁盘空间、耗损更多的内存,在每次写入时还需做更多事变

(3)添加内存

  1. db.stats() //查察数据库数据占用巨细状态 

dataSize 数据巨细 和 indexSize 索引巨细,假如两者的和大于内存,那么将会影响机能。

storageSize高出dataSize 数据巨细 两倍以上,就会因磁盘碎片而影响机能,必要压缩。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读