MongoDB系列(详细笔记)——启动和停止
文章目录
1.1 命令行方式启动和参数
windows系统命令行启动
第一步:
新建一个目录用来存放MongoDB的数据库文件,目录可以自己选择,这里我已经新建目录 E:\data\db
第二步:
打开cmd窗口,键入 mongod --dbpath E:\data\db
这里 --dbpath的参数值,就是我们第一步新建的文件夹。这个文件夹一定要在开启服务命令之前事先建立好,否则会报错,MongoDB不会自己创建。
连接成功的话,就会出现这个:
(linux 系统中的启动,我先留在这里,之后来补)
1.2启动参数(可以不用看,一般用到的很少)
(注:这里应该都是两个小杠 ,不知道为什么显示出来就变成一条了)
-
基本配置
–dbpath参数:指定数据库文件保存路径,默认为/data/db。
–port参数:指定服务端口号,默认端口27017。
–bindip参数:限制监1,基本配置
–dbpath参数:指定数据库文件保存路径,默认为/data/db。
–port参数:指定服务端口号,默认端口27017。
–bindip参数:限制监听ip,指定多个ip时用逗号隔开。
–logpath参数:指定MongoDB日志文件,注意是指定文件不是目录。
–logappend:使用追加的方式写日志
–fork:以守护进程的方式运行MongoDB,创建服务器进程。
–auth:启用验证。
–journal:启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里。
–joumalOptions参数:启用日志诊断选项。
–repair:修复所有数据库。
–repairpath参数:修复数据库时使用的处理目录,默认是在dbpath路径下的tmp
目录。
–quiet:屏蔽部分MongoDB服务信息输出,只打印重要信息
–pidfilepath参数:PIDFile的完整路径,如果没有设置,则没有PID文件。
–keyFile参数:集群的私钥的完整路径,只在副本集架构中生效。
–unixsocketprefix采数:UNIX域套接字替代目录,(默认为在mp)。
–CPU:定期显示CPU的CPU利用率和iowait。听ip,指定多个ip时用逗号隔开。
–logpath参数:指定MongoDB日志文件,注意是指定文件不是目录。
–logappend:使用追加的方式写日志
–fork:以守护进程的方式运行MongoDB,创建服务器进程。
–auth:启用验证。
–journal:启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里。
–joumalOptions参数:启用日志诊断选项。
–repair:修复所有数据库。
–repairpath参数:修复数据库时使用的处理目录,默认是在dbpath路径下的tmp
目录。
–quiet:屏蔽部分MongoDB服务信息输出,只打印重要信息
–pidfilepath参数:PIDFile的完整路径,如果没有设置,则没有PID文件。
–keyFile参数:集群的私钥的完整路径,只在副本集架构中生效。
–unixsocketprefix采数:UNIX域套接字替代目录,(默认为在mp)。
–CPU:定期显示CPU的CPU利用率和iowait。
–diaglog参数:创建一个非常详细的故障排除和各种错误的诊断日志记录。参数默
认为0表示关闭;1表示记录写操作;2表示记录读操作;3表示记录读写操作;7
表示记录写和一些读操作。
–directoryperdb:设置每个数据库将被保存在一个单独的目录。
–ipv6:启用IPv6选项。
–jsonp:允许JSONP形式通过访问(有安全影响)。
–maxConns参数:最大同时连接数,默认2000。
–noauth:不启用验证,默认不启用。
–nohttpinterface:关闭http接口,默认关闭27018端口访问。
–noprealloc:禁用数据文件预分配(往往影响性能)。
–noscripting:禁用脚本引擎。
–notablescan:不允许表扫描
–nounixsocket:禁用UNIX套接字监听。
–nssize参数(=16):设置数据库,ns文件大小(MB)。
–obJcheck:在收到客户数据时,检查的有效性。
–profile参数:数据库分析等级设置。记录一些操作性能到标准输出或者指定的
logpath的日志文件中,默认0表示关闭;1表示开,仅包括慢操作;2表示开,包
括所有操作。
–quota:限制每个数据库的文件数。
–quotaFiles参数:限制每个数据库的文件数设置,默认为8,需要–quota配合使
用。
–rest:开启简单的restAPI,默认关闭。
–slowms参数(=100):valueofslowforprofileandconsolelogo
–smallfiles:使用较小的默认文件。
–syncdelay参数(=60):数据写入磁盘的时间秒数(0=never,不推荐)。
–sysinfo:打印一些诊断系统信息。
–upgrade:如果需要,自动升级数据库。 -
复制参数
–fastsync:从一个dbpath里启用从库复制服务,该dbpath的数据库是主库的快昭
可用于快速启用同步。
–autoresync:如果从库与主库同步数据差得多,自动重新同步。
–oplogSize参数:设置oplog的大小(MB)。 -
主从参数
–master:主库模式。
–slave:从库模式。
–source,参数:从,库端口号。
–only参数:指定单一的数据库复制。 -
副本集参数
–slavedelay参数:设置从库同步主库的延迟时间。
副本集参数
–replSet参数:设置副本集名称。
分片参数。
–configsvr:声明这是一个集群的config服务,默认端口27019,
/datæ/configdb。
–shardsvr:声明这是一个集群的分片,默认端口27018。
–noMoveParanoia:关闭paranoid模式
上述参数都可以写入mongod.conf配置文档里,基本配置中的前几项比较常用,其他的
参数就要用得少一些。在后面副本集和分片章节中我们会用到复制相关的参数。
1.3 配置文件方式启动
我们已经学习了如何用命令行启动MongoDB服务,在这个过程中需要配置我们的参
数,例如数据库文件存放路径,以及日志log文件存放路径等。但是如果是几个同事共同管
理MongoDB,当有参数变化时,需要随时相互交流沟通,并更新启动MongoDB的命令行,
而且命令行容易输入错误,给MongoDB的管理和维护造成了不便。针对这种情况,
提供了读取启动配置文件的方式来启动数据库。在生产环境中我们也建议使用这种
方式来管过启动MongoDB。
(这一块先留着,我有时间再来补充,嘻嘻嘻~)
1.4 启动MongoDB客户端
只要找到mongo的可执行文件运行,就可以进入MongoDB客户端。一般来说,它与mongod服务段启动可执行文件在同一个目录下。我们以windows为例,新建一个cmd窗口,进入安装目录的bin下,执行mongo命令既可。
(注意,需要保持服务端开启的状态下!)
linux 以及其他系统也类似,找到mongo 客户端可执行文件所在目录,使用命令mongo就可以启动了。
1.5 关闭MongoDB
windows 系统下有三种关闭方式。
方式一:关闭当前服务端窗口(不推荐)
windows版本的MongoDB不支持使用 --fork 参数后台运行,所以当前服务端cmd窗口关闭,mongo也会关闭,但这种方式容易导致未正常关闭的MongoDB下次启动不起来,或者是无法连接。修复方式后面有哦。
方式二:在当前服务端窗口使用 ctrl + c (推荐)
MongoDB会自己做清理退出,把没有写好的数据写好,并关闭服务。
方式三:进入mongo客户端运行命令停止 (推荐)
重新打开一个cmd窗口,进入bin 目录,运行客户端。然后使用admin用户,使用命令shurdownServer 关闭。
1.6 设置MongoDB开机启动
这里可以参考菜鸟教程
1.7 修复未正常关闭的MongoDB
MongoDB如果未正常关闭,会导致无法启动的现象
1.MongoDB服务无法启动,弹出框报错:Windows无法启动MongoDB服务错误1067:
进程意外终止。在事件查看器中可以看到该错误:MongoDB服务因无法创建另一个系统信
号灯,服务特定错误而停止。
2.解决方法
进入MongoDB安装目录/data/,将此文件夹下的mongod.lock删除,使用该方法
MongoDB服务可以启动起来。Linux系统可以使用find/-name’mongod.lock’查找路径,数
据方面不会受到影响。mongod.lock文件是MongoDB服务端启动后在硬盘中创建的一个锁文件,果你正常退出MongoDB服务,该文件即使还存在,也不会影响下一次启动MongoDB服务。
这个文件还会记录MongoDB在运行过程中的一些状态,以便在正常重新启动务时能
够获以异常信息提示。
删除lock文件之后,如果有损坏文档,需要使用mongod–repair命令修一次,再正常
启动,修复数据库的实际过程很简单:将所有的文档导出后马上导入,忽略无效的文档,完成以后会重建索引。因为所有数据都要验证,所有索引都要重建,数据量大的活,会花较多时间。数据量大的情况下,临时修复目录所在磁盘空间一定要人,否则会出现磁盘容量不够的提示,无法修复。