MongoDB (简体中文)
MongoDB (from humongous) 是一个开源的,面向文档的数据库系统,由 MongoDB Inc. (formerly 10gen)开发并提供支持. 它是NoSQL家族中的一员, 替代用表储存数据的经典的关系型数据库, MongoDB的数据储存结构类似于用动态视图(dynamic schemas)储存类JSON文档(JSON-like documents) (MongoDB称这种格式为BSON, 将数据尽早尽快地整合成对应的应用类型.
安装
Start/Enable mongodb.service
.
第一次启动 mongodb 服务时,会为记录和日志文件预先分配空间,在此期间不能使用数据库 shell。
使用
启动 Mongo Shell, 在终端输入:
$ mongo
Troubleshooting
无法启动 MongoDB
检查是否存在3G以上的剩余磁盘空间用于记录文件的储存,否则,MongoDB将启动启动失败
$ df -h /var/lib/mongodb/
检查是否存在非空 mongod.lock 锁文件
# ls -lisa /var/lib/mongodb
锁文件不是空文件, 停止 mongodb.service
,运行mongo自带的数据库修复程序,指定dbpath (/var/lib/mongodb/ 是Arch Linux 的默认 dbpath):
# mongod --dbpath /var/lib/mongodb/ --repair
完成后 dbpath 中应该包含修复的文件和空 mongod.lock 文件.
在用root权限运行完修复程序之后,文件的拥有者将变为root用户,然而在Arch Linux里,mongodb可能会被不同用户运行。 需要使用chown命令将文件的拥有者改回正确的用户。点击以下的链接查看更多细节:Further reference
# chown -R mongodb: /var/{log,lib}/mongodb/
transparent_hugepage内核设置警告
在启动 MongoDB 之后,如果看到关于 transparent_hugepage 的警告,可以通过以下链接提供的方式永久禁用 transparent_hugepage内核设置 (参考 FreeDesktop tmpfiles.d 手册):
/etc/tmpfiles.d/local.conf
w /sys/kernel/mm/transparent_hugepage/enabled - - - - never w /sys/kernel/mm/transparent_hugepage/defrag - - - - never
如果希望只在本次启动时禁用,可以使用SysCtl或者下面的 echo 命令实现:
# echo never > /sys/kernel/mm/transparent_hugepage/enabled # echo never > /sys/kernel/mm/transparent_hugepage/defrag