在具有2个节点和1个任意节点的数据库身份验证的mongodb 3.2中复制数据库的步骤

时间:2018-08-23 10:45:21

标签: mongodb replicate

复制包含用于主节点和辅助节点的2个节点,以及用于任意节点的第三个节点。 如果一个节点出现故障,则任意节点可以帮助检查并使其其中一个节点成为主节点。

步骤: 在具有相同凭据的3台计算机上安装mongodb。 保持enableLocalhostAuthBypass:false,在所有3个系统中使用相同的密码创建用户。

在所有3个系统中复制“ mongodb-key-file”(示例位置“ D:/ mongodb / conf /”)。 要么 生成“ mongodb-key-file”,如下所示     openssl rand -base64 756> d:/ mongodb-key-file     在所有3个系统中复制“ mongodb-key-file”(示例位置“ D:/ mongodb / conf /”)。

在所有3个系统中使用以下配置重新启动服务器

主要

systemLog: destination: file path: "d:/mongodb/log/mongod.log" storage: dbPath: d:/mongodb/data/ journal: enabled: true net: bindIp: [localhost,<Secondary IP Address>,<Arbitrary IP Address>] port: 26017 setParameter: enableLocalhostAuthBypass: true security: keyFile: <key file location>/mongodb-key-file replication: replSetName: rs0

中学

systemLog: destination: file path: "d:/mongodb/log/mongod.log" storage: dbPath: d:/mongodb/data/ journal: enabled: true net: bindIp: [<Secondary IP Address>,localhost,<Arbitrary IP Address>] port: 27017 setParameter: enableLocalhostAuthBypass: true security: keyFile: <key file location>/mongodb-key-file replication: replSetName: rs0

任意

systemLog: destination: file path: "d:/mongodb/log/mongod.log" storage: dbPath: d:/mongodb/data/ journal: enabled: false net: bindIp: [localhost, <Primary IP Address>, <Secondary IP Address>] port: 28017 setParameter: enableLocalhostAuthBypass: true security: keyFile: <key file location>/mongodb-key-file replication: replSetName: rs0
以上条目的格式应与mongo.conf文件中的任何选项卡相同。 从控制台通过以下方式连接到mongo:在所有计算机上都必须执行此步骤 主数据库:mongo --port 26017 -u root -p --authentication数据库管理员
次要:mongo --port 27017 -u root -p --authentication数据库管理员
任意:mongo --port 27017 -u root -p --authentication数据库管理员

开发中

在主系统中: 1. rs.initiate()

if(arbitrary is not chosen)
    {
        2. rs.add({host:"<Secondoary IP Addresss>:27017", priority:0,votes:0}) (
    }
else{
        2. rs.add("<Secondoary IP Addresss>:27017")
        3. rs.addArb("<Arbitrary IP Address>:28017")
    }
4. rs.status() should show the status.

生产:

1. rs.initiate(
    {
        _id: "rs0",
      version: 1,
      members: [
         { _id: 0, host : "primary host:26017" },
         { _id: 1, host : "secondary host:27017" }
         { _id: 2, host : "arbitrary:28017" }
      ]
    }
    )

if(arbitrary is not choosen)
{
    2. rs.add({host:"<Secondoary IP Addresss>:27017", priority:0,votes:0}) (
}
else{
    2. rs.add("<Secondoary IP Addresss>:27017")
    3. rs.addArb("<Arbitrary IP Address>:28017")
}
4. rs.status()

注意:如果未添加任意选项,则故障转移将不起作用。即。如果主服务器已关闭,则不会将辅助服务器设置为主服务器。 注意:如果在主数据库中使用rs.initiate(),则会采用主系统的名称而不是实际的“主机名”,并将其传递给辅助系统。但是系统名称将不会被解释为主计算机的实际IP地址。因此,在辅助计算机中,应将主系统名称添加到映射到实际IP地址的“等->主机”文件中。

添加辅助数据库时出现以下错误,描述了上述情况     “在新配置中没有描述主机”

0 个答案:

没有答案