MongoDB

来源:互联网 发布:如何看待微商 知乎 编辑:程序博客网 时间:2024/05/19 17:51

背景

开始时只有很少的数据,一台服务器就可以了。然后就得建立备份,以便应对大量的读取和不时的宕机。用不了多长时间,就得加一个缓存层,调整所有的查询,投入更多的硬件。
最后,你会发现自己需要将数据切分到多个集群中,并重新构建大量的应用逻辑以适应这种切分。之后不久,你又会发现被自己数月前设计的数据库结构限制住了。
这是应为集群中大量的数据需要更改模式,会花费很长时间,也需要DBA投入相当多的宝贵时间。在代码中处理要简单一些,但也需要小型开发团队数月的努力。
为了应对现在Web应用的数据膨胀,开源社区像以往一样提供了太多的“好方法”。从内存中的键值型存储到可以使用SQL的MySQL/InnoDB变种等复杂方法。
MongoDB在功能和复杂性之间取得了很好的平衡,并且将原先十分复杂的任务大大简化。也就是说,它具备支撑今天主流Web应用的关键功能:索引、复制、分片、丰富的查询语法,特别灵活的数据模型。与此同时还不牺牲速度。

下载

mongodb:https://www.mongodb.org/

配置&启动

systemLog:   destination: file   path: "D:/MongoDB/log/mongodb.log"   logAppend: truenet:   bindIp: 127.0.0.1   port: 27017storage:   dbPath: "D:/MongoDB/data"
/bin/mongod.exe --config mongodb.conf

停止

最基本的方法就是向MongoDB服务器发送一个SIGINT或者SIGTERM信号。如果服务器是作为前台进程运行在终端的,就直接按Ctrl-C。否则,就用kill这种命令发出型号。如果mongod的PID是10014,就可以kill -2 10014 (SIGINT)或者kill 10014 (SIGTERM)。

千万不要向运行中的MongoDB发送SIGKIILL(kill -9)。这样会导致数据库直接关闭,上面讲到的步骤都将被忽略,这会使数据文件损毁。要是真的发生了不幸,一定要在启动备份之前修复数据库。
当mongod收到时,会稳妥退出。也就是说会等到当前运行的操作或者文件预分配完成,关闭所有打开的连接,将缓存的数据刷新的磁盘,最后停止。

另一种稳妥的方式就是使用shutdown命令,{“shutdown”:1}。这是管理命令,要在admin数据库下使用。

GridFS

GridFS是一种在MongoDB中存储大二进制文件的机制。使用GridFS存文件有如下几个原因。
- 利用GridFS可以简化需求。要是已经用了MongoDB, GridFS就可以不需要使用独立文件存储架构。
- GridFS会直接利用已建立的复制或分片机制,所以对于文件存储来说故障恢复和扩展很容易。
- GridFS可以避免用于存储用户上传内容的文件系统出现的某些问题。例如,GridFS在同一目录下放置大量的文件是没有任何问题的。
- GridFS不产生磁盘碎片,因为MongoDB分配数据文件空间时以2GB为一块。

0 0
原创粉丝点击