【问题标题】:Mongodb replication automaticallyMongoDB自动复制
【发布时间】:2018-05-16 05:00:48
【问题描述】:

有没有办法在mongod服务启动时直接启动mongodb复制?我不想进入 shell 并开启复制? 谢谢!

【问题讨论】:

    标签: mongodb database-replication master-slave


    【解决方案1】:

    您可以创建一个在服务器启动时自动启动的 mongod 服务。 首先,您需要创建一个配置文件(mongodb.conf),其中将包括配置设置,例如副本集名称等。然后创建一个服务并使用以下命令安装它

    mongod -f c:\mongod.conf --install
    

    然后使用

    启动服务
    net start mongodb
    

    阅读配置文件here 和 如何将mongo安装为服务here

    【讨论】:

    • 不!我已经安装了 2 台服务器(主服务器和从服务器)复制。但我的问题是我总是打开 2 个 shell 并输入(mongo)进入 shell,当我在主服务器中插入数据时,我会在从服务器中输入(rs.slaveOk())进行复制!我想知道是否有任何方法或命令可以从 sudo service mongod start 运行复制?我不想从上面说的跑!谢谢
    • 如果您的配置正确,复制应该会自动开始。确保它们属于同一个副本集。如果您将数据插入主服务器,它也应该自动复制到从服务器。在辅助服务器中尝试 rs.setSlaveOk(),我不确定。
    • 是的。在主节点中插入一些数据后,我总是在辅助节点中命令 rs.setSlaveOk()!是不是出错了?
    • 是的..看起来像一个错误,因为如果一切配置正确,数据必须自动复制。
    【解决方案2】:
    • 当您在 mongodb 中创建有效的副本集时,您的数据将异步地从主成员到副本集中的辅助成员

    • 话虽如此,您无需手动进行额外的工作即可完成数据复制

    • 当您在辅助节点上执行rs.slaveOk() 时,您可以从副本集中的辅助成员中查询数据。

    • 这是一项规定。它允许您从辅助读取,前提是您可以容忍可能的最终一致数据。当您在辅助服务器上执行 rs.slaveOk() 时,不会发生复制

    【讨论】:

    • 我已经安装了 2 个服务器(主从)复制。但我的问题是我总是打开 2 个 shell 并输入(mongo)进入 shell,当我在主服务器中插入数据时,我会在从服务器中输入(rs.slaveOk())进行复制!我想知道是否有任何方法或命令可以从 sudo service mongod start 运行复制?我不想从上面说的跑!谢谢
    • rs.slaveOk() 不进行复制。复制是自动完成的。如果要检查辅助节点上的复制数据,则必须执行 rs.slaveOk()。从辅助读取数据没有其他方法
    • :D 所以我知道数据是否被复制的唯一方法是在辅助中键入 rs.slaveOk()?还有其他方法可以知道吗?先生:d 谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多