本博客只是为了方便看MongoDB的管理,每次登录官网太慢了!
- 开始mongod过程
- 停止mongod流程
- 故障排除mongod过程
- 停止副本集
MongoDB作为标准程序运行。您可以通过发出mongod命令并指定选项从命令行启动MongoDB 。有关选项的列表,请参见mongod 参考。MongoDB也可以作为Windows服务运行。有关详细信息,请参阅将 MongoDB社区版作为Windows服务启动。要安装MongoDB,请参阅 安装MongoDB。
以下示例假定包含mongod进程的目录 在您的系统路径中。该 mongod进程是在单个服务器上运行的主要数据库进程。从客户端的角度来看,mongos提供了一个等效于MongoDB的一致的MongoDB接口mongod。该mongo二进制提供行政外壳。
本文档讨论了该mongod过程。但是,本文档的某些部分可能适用于mongos 实例。
启动mongod流程
默认情况下,MongoDB在port上侦听来自客户端的连接 27017,并将数据存储在/data/db目录中。
在Windows上,此路径位于启动MongoDB的驱动器上。例如,如果您未指定a --dbpath,则在C:\驱动器上启动MongoDB服务器会将所有数据文件存储在中C:\data\db。
要使用所有默认值启动MongoDB,请在系统外壳上发出以下命令:
mongod
指定数据目录
如果要将mongod数据文件存储在其他 路径之外/data/db,则可以指定一个dbPath。在 dbPath你开始之前必须存在mongod。如果不存在,请创建目录和权限,以便 mongod可以在此路径中读取和写入数据。有关权限的更多信息,请参阅安全性操作文档。
要指定dbPath用于mongod为数据目录使用,使用的–dbpath选项。以下调用将启动mongod实例并将数据存储在/srv/mongodb路径中
mongod --dbpath / srv / mongodb /
指定一个TCP端口
一次只有一个进程可以侦听网络接口上的连接。如果您mongod在一台计算机上运行多个进程,或者有其他进程必须使用此端口,则必须为每个进程分配一个不同的端口以侦听客户端连接。
要指定的端口mongod,请–port在命令行上使用该选项。以下命令开始mongod在port上侦听12345:
mongod --port 12345
尽可能使用默认端口号,以避免混淆。
mongod作为守护进程启动
要将mongod进程作为守护程序运行(即fork), 并将其输出写入日志文件,请使用–fork和–logpath 选项。您必须创建日志目录;但是,mongod 如果日志文件不存在,将创建该日志文件。
以下命令mongod作为守护程序启动,并将日志输出记录到/var/log/mongodb/mongod.log。
mongod --fork --logpath /var/log/mongodb/mongod.log
其他配置选项
有关常见用例的常见配置和部署的概述,请参阅 “运行时数据库配置”。
停止mongod进程
在干净关机中,a mongod完成所有未决操作,将所有数据刷新到数据文件,然后关闭所有数据文件。其他关机是不干净的,可能会损害数据文件的有效性。
为确保干净关闭,请始终mongod 使用以下方法之一关闭实例:
使用shutdownServer()
使用以下方法mongod从mongo外壳关闭db.shutdownServer():
使用 admin
db 。shutdownServer ()
从初始化脚本中调用相同的方法可获得相同的结果。
对于authorization启用了db.shutdownServer()身份验证的系统,只有在对admin 数据库进行身份验证或通过未启用身份验证的系统上的localhost接口进行身份验证时,用户才可以发布 。
使用–shutdown
在Linux命令行中,关闭以下命令中的mongodusing --shutdown选项:
mongod-关闭
使用CTRL-C
当mongod以交互模式运行实例(即不使用–fork)时,发出Control-C 执行干净关机的提示。
使用kill
在Linux命令行中,mongod使用以下命令之一关闭特定实例:
杀死<mongod进程ID>
kill -2 <mongod进程ID>
SIGTERM和副本集
从MongoDB 4.0.8(和3.6.15)开始,如果副本集主数据库收到 SIGTERM,则主数据库将尝试在关闭之前先退出。
如果降级成功,则实例不会在随后的新主数据库的选举中投票,并继续其关闭。
如果降级失败,则实例将继续关闭。
SIGKILL
警告
切勿使用(即)终止mongod实例。kill -9SIGKILL
处理mongod过程疑难解答
生成回溯
开始在MongoDB中4.4,mongod并mongos 在Linux上运行的进程,现在会在收到的日志他们的每一个运行的线程的回溯SIGUSR2信号。可以分析此回溯以获取诊断信息,或者根据需要将其提供给MongoDB支持。该功能当前仅在x86_64 体系结构上可用。
要向SIGUSR2正在运行的mongod 进程发出信号,请使用以下命令:
kill -SIGUSR2 <mongod进程ID>
生成的回溯数据将mongod 按照的配置写入日志文件–logpath。
停止副本集
程序
如果mongod是主在副本集,对于该关机过程mongod实例具有以下步骤:
检查辅助数据库是最新的。
如果在主服务器的10秒钟之内没有辅助服务器, mongod则将返回一条消息,表明它将不会关闭。您可以向shutdown命令传递一个timeoutSecs 参数,以等待辅助节点赶上来。
如果在主节点的10秒钟内有辅助节点,则主节点将退出并等待辅助节点赶上。
60秒后或辅助节点赶上后,主要节点将关闭。
强制副本集关闭
如果没有最新的辅助服务器,并且您希望关闭主服务器,则shutdown使用以下force 参数在命令中发出参数,如以下mongoshell操作所示:
db .adminCommand ({ shutdown : 1 , force : true })
为了保证检查的指定秒数的次级如果没有立即跟上时代的,问题shutdown与 timeoutSecs争论。如果没有立即更新,MongoDB将继续检查辅助数据库是否达到指定的秒数。如果任何第二服务器在指定时间内赶上,则第一服务器将关闭。如果没有次要追赶者,它将不会关闭。
下面的命令问题shutdown与timeoutSecs 设置为5:
db .adminCommand ({ shutdown : 1 , timeoutSecs : 5 })
或者,您可以将timeoutSecs参数与 db.shutdownServer()方法一起使用:
db .shutdownServer ({ timeoutSecs : 5 })