【问题标题】:Mongodb replication (secondary server)Mongodb复制(从服务器)
【发布时间】:2018-05-15 11:09:48
【问题描述】:

我使用 2 台服务器设置了 MongoDB 的主从复制。问题是我在主服务器中插入数据后,总是要在从服务器中分配 rs.slaveOk()。 我想自动同步(不需要 rs.slaveOk() ) 在中学!我需要更改哪些配置?谢谢 !

这是我的 rs.conf() 用于主从复制!

> rs2:PRIMARY> rs.conf() {  "_id" : "rs2",  "version" : 3,
>   "protocolVersion" : NumberLong(1),  "members" : [       {           "_id" : 0,
>           "host" : "192.168.56.104:27017",            "arbiterOnly" : false,
>           "buildIndexes" : true,          "hidden" : false,           "priority" : 1,
>           "tags" : {
>                           },          "slaveDelay" : NumberLong(0),           "votes" : 1         },      {           "_id" : 1,          "host" : "192.168.56.106:27017",            "arbiterOnly" :
> false,            "buildIndexes" : true,          "hidden" : false,           "priority" :
> 0,            "tags" : {
>                           },          "slaveDelay" : NumberLong(0),           "votes" : 1         }   ],  "settings" : {      "chainingAllowed" : true,
>       "heartbeatIntervalMillis" : 2000,       "heartbeatTimeoutSecs" : 10,
>       "electionTimeoutMillis" : 10000,        "getLastErrorModes" : {
>                   },      "getLastErrorDefaults" : {          "w" : 1,            "wtimeout" : 0      },      "replicaSetId" : ObjectId("5a1e37704f3b7025eccaa874")   } }

【问题讨论】:

    标签: database mongodb database-replication


    【解决方案1】:

    您可以创建一个文件/etc/mongorc.js 并在其中添加rs.slaveOk()。每次 shell 启动时都会评估该文件。

    您可以查看here 以获得更多说明。

    或者,另一种方法是使用以下命令启动 mongo:

    >mongo --port 27012 --eval "rs.slaveOk()" --shell
    

    slaveOk() 仅对执行它的控制台会话有效,因此您需要传入脚本或使用 --shell 参数保持与控制台的连接。

    【讨论】:

    • 我应该在哪个服务器上创建该文件 mongorc.js? (仅在辅助服务器 mongodb shell 中需要)?先生
    • 在辅助服务器上创建文件。
    猜你喜欢
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2021-04-21
    • 2013-08-23
    相关资源
    最近更新 更多