管理mongod流程

本博客只是为了方便看MongoDB的管理,每次登录官网太慢了!

  1. 开始mongod过程
  2. 停止mongod流程
  3. 故障排除mongod过程
  4. 停止副本集

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 ({ shutdown1forcetrue })

为了保证检查的指定秒数的次级如果没有立即跟上时代的,问题shutdown与 timeoutSecs争论。如果没有立即更新,MongoDB将继续检查辅助数据库是否达到指定的秒数。如果任何第二服务器在指定时间内赶上,则第一服务器将关闭。如果没有次要追赶者,它将不会关闭。

下面的命令问题shutdown与timeoutSecs 设置为5:

db .adminCommand ({ shutdown1 , timeoutSecs  : 5 })

或者,您可以将timeoutSecs参数与 db.shutdownServer()方法一起使用:

db .shutdownServer ({ timeoutSecs  : 5 })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值