方法如下:继续输入错误密码,直到机器被锁定(一般3-6次输入错误后就会被锁定),然后关机,断电至少30分钟,再重启机器,自动恢复原厂密码。
mongodb使用数据文件预分配模式来生成数据文件。数据文件的大小从64m开始,每增加一个文件,大小翻倍,直到2g。之后每次添加数据都会产生2g左右的数据文件。结合mongodb的mmap内存模型,将随机写入转化为顺序写入,一定程度上缓解了磁盘的io压力。
但在实际操作中,预分配2g数据文件时,如果磁盘io慢,mongodb基本被锁定,无法响应请求。持续时间由磁盘io的性能决定。这个问题在2.0版本之后可能会有所改善,但在磁盘性能较低的服务器上仍然存在。
这个问题目前没有很好的解决办法,只能建议使用读写性能好的服务器来运行mongodb。
当数据存量大于内存大小时,mongodb遇到冷数据,查询速度变慢。
mongodb使用mmap的内存管理模式。如果查询了所有的热数据,就直接在内存中查询。如果遇到冷数据,需要从磁盘中读取,部分热数据会从内存中卸载。
曾经有人说过,mongodb内存管理是将固定大小的文件块加载到内存中,即如果冷数据在磁盘上,它会根据请求的数据将一定大小的数据块加载到内存中,卸载同样的热数据,会带来一定的io。
因为mongodb使用的是全局锁,所以当一个操作变慢的时候,整个操作队列都会变慢。这个问题导致mongodb偶尔阻塞,整个库的性能下降。
在应用中需要尽可能避免这个问题。要规划好mongodb的数据大小,尽量不要让数据量超过内存大小。如果超过了内存大小,尽量不要请求冷数据。
mongodb全局锁机制。
mongodb最大的问题是它的锁定机制。在2.2版之前,一个实例只有一个读写锁。无论有多少数据库和数据集,当一个操作正在进行时,其他操作只能等待。2.2版之后,mongodb锁的粒度降低,改为库锁。
mongodb使用a"读者-作家"锁,可以支持并发,但是有很大的局限性。当读锁存在时,许多读操作都可以使用它。但是,当存在写锁时,单个写操作将独占该锁,而其他读和写操作不能使用共享锁。例如,假设一组中有10个。文档,即使更新了不同的文档,也不能在此集合上并发执行多个更新操作。
删除数据集后不会自动释放空间。
mongodb删除集合后,不会释放磁盘空间,只有用()修复才能释放。
修复可能需要很长时间。使用()修复时,必须停止读写,mongodb必须有备用机。否则,唐不要随便用()修复数据库。记住。
但在修复过程中,如果mongodb异常挂起,重启时无法启动,则需要先修复。你可以用。/mongo-repair-dbpath/data/mongo/如果你把数据库放在一个单独的文件夹里并指定dbpath,指向要修复的数据库就可以了。
7.副本集隐藏了一些问题
a)副本集模式最多支持12台服务器,而投票服务器仅支持7台服务器。如果有7台以上的服务器,需要将一些服务器设置为非投票服务器。
b)在副本集模式下,如果集服务器少于两台服务器,自动故障恢复将不起作用,如果四台服务器中的三分之二可以互相测试,自动故障恢复也不起作用。一般来说,一个集合中有尽可能多的单个服务器。
c)。副本集,由于mongodb是按时间运行的,如果集合中的某个服务器提前或滞后,很容易出现从服务器不断尝试更新oplog或同步延迟的问题。甚至会导致一些操作失败,比如drop操作。
8.碎片化模式的一些隐藏问题
1.根据官方要求,尽可能有三个配置服务器。如果只有两台配置服务器,shard的自动负载均衡和自动切片功能不可用。
中api的最近模式,判断的是set到mongos的距离,而不是set到client的距离。在切片模式下,尽量不要使用最近模式,这可能会导致一些请求延迟增加的问题。
优势
l文档结构的存储可以更方便的获取数据。
l内置gridfs,支持大容量存储。
l内置分片,简单分段
l海量数据下的卓越性能。
l支持自动故障恢复(复制集)
mongodb是介于nosql数据库和mysql数据库之间的数据存储系统。它没有严格的数据格式,但同时支持复杂的查询。它还带有分片模式和副本集模式,并支持碎片模式、复制模式和自查询。动态故障处理、自动故障切换、自动扩展、全文索引、动态查询等功能。扩展性和功能都比较强大。
在数据查询方面,mongodb支持类sql查询,可以一键多值内容查询,支持索引,支持连接索引,支持复杂查询,支持排序。基本上mongodb支持mysql支持的所有查询,甚至有客户端api支持直接用sql语句查询mongodb。
目前mongodb的分片功能日趋完善,支持用户自定义范围分片、hash自动分片、自动分片扩展、分片间自动负载均衡等功能。实际使用能还不错。