linux – 用于MongoDB分片的mongos和配置服务器的Init脚本

linux – 用于MongoDB分片的mongos和配置服务器的Init脚本,第1张

概述我在本地环境中创建了一个用于测试目的的分片. 我在一台机器上有三个配置服务器,在同一台机器上有一个查询路由器,在两台不同的机器上有两个数据节点 一切正常但我的问题是我无法保持所有进程在不同的端口上运行,因为我没有任何启动/停止脚本.我在命令行上运行进程&最后让它变得活跃,这是保持过程活跃的非常糟糕的方式,有时它会自动死亡. 请帮助或提供一种使用脚本的方法,并且脚本可以处理各种端口以激活单台机器上的 我在本地环境中创建了一个用于测试目的的分片.

我在一台机器上有三个配置服务器,在同一台机器上有一个查询路由器,在两台不同的机器上有两个数据节点

一切正常但我的问题是我无法保持所有进程在不同的端口上运行,因为我没有任何启动/停止脚本.我在命令行上运行进程&最后让它变得活跃,这是保持过程活跃的非常糟糕的方式,有时它会自动死亡.

请帮助或提供一种使用脚本的方法,并且脚本可以处理各种端口以激活单台机器上的所有进程.

解决方法 您不应该永远不想从一个init脚本驱动多个实例,因为当您执行任何一个实例的启动/关闭时,这会创建大量的额外管理工作.

您应该为每个单独的数据库流程实例设置一个init脚本,因为这是Linux最佳实践.

在大多数情况下,您应该能够使用通用的MongoDB提供的init脚本,然后为每个数据库实例创建一个重命名的副本.

然后,您应该为每个实例创建单独的配置文件,这些配置文件应该包含稍微不同的配置,并在其自己的端口上运行每个实例,拥有dbpath和自己的日志文件.

然后,您可以将每个init脚本指向配置文件中的实例,并且所有内容都应该按计划运行.

最后,在MongoDB中,您应该使用–fork选项,它提供了一种从shell实例中分离MongoDB的安全方法.如果您绝对必须继续使用shell fork(&运算符),那么您应该将MongoDB包装在“nohup”中,以避免因shell终止而关闭实例.这看起来像是这样的:
nohup< mongodb cmd和arguments> &安培;

编辑:您可以使用相同的过程来使用相同的init脚本来启动MongoS.您需要找到将mongod二进制文件设置为要执行的行的行.在所有的debian导数下,这将是DAEMON变量.将其更改为指向mongos而不是mongod,然后关闭.

总结

以上是内存溢出为你收集整理的linux – 用于MongoDB分片的mongos和配置服务器的Init脚本全部内容,希望文章能够帮你解决linux – 用于MongoDB分片的mongos和配置服务器的Init脚本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1049323.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存