Mongodb 复制(辅助服务器)

Mongodb replication (secondary server)

我使用 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")   } }

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

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

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

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

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