MongoDB Replication副本集方法
MongoDB Replication 方法用于将成员复制到副本集。
一、rs.add(host, arbiterOnly)
add 方法将成员添加到指定的副本集。我们需要将副本集的主集连接到此方法。如果该方法将触发对主要的选举,则与 shell 的连接将被终止。例如 - 如果我们尝试添加一个优先级高于主要成员的新成员。即使操作成功,mongo shell 也会反映错误。
例子:
在以下示例中,我们将添加一个具有默认投票的新辅助成员。
rs.add( { host: "mongodbd4.example.net:27017" } )
hostname:
rs.add( "mongodbd4.example.net:27017" )
二、rs.addArb(host)
我们可以向指定主机上的现有副本集添加一个新的仲裁器。
例子:
将仲裁器添加到 Associated-Hostname
mongod --bind_ip localhost,My-Example-<Associated-Hostname>
如果要连接到此实例,远程客户端必须指定主机名或其关联的 IP 地址 198.52.100.2:
mongo --host My-Example-<Associated-Hostname>
mongo --host 198.52.100.2
三、rs.conf()
conf 方法用于获取包含当前副本集配置的文档。
rs.conf() 包装了 replSetGetConfig 命令配置。
例子:
以下脚本显示了包含这些设置子集的副本集的配置文档:
{
_id: <string>,
version: <int>,
protocolVersion: <number>,
writeConcernMajorityJournalDefault: <boolean>,
configsvr: <boolean>,
members: [
{
_id: <int>,
host: <string>,
arbiterOnly: <boolean>,
buildIndexes: <boolean>,
hidden: <boolean>,
priority: <number>,
tags: <document>,
slaveDelay: <int>,
votes: <number>
}, ], settings: {
chainingAllowed : <boolean>,
heartbeatIntervalMillis : <int>,
heartbeatTimeoutSecs: <int>,
electionTimeoutMillis : <int>,
catchUpTimeoutMillis : <int>,
getLastErrorModes : <document>,
getLastErrorDefaults : <document>,
replicaSetId: <ObjectId>
}
}
四、rs.initiate(configuration)
该方法启动一个副本集。此方法可以考虑保存副本集的 rs.initiate() 配置的文档,但这是可选的。
例子
以下示例启动一个具有三个不同成员的新副本集。
{
_id: "JTPReplSet",
version: 1,
members: [
{ _id: 0, host : "mongodb0.example.net:27017" },
{ _id: 1, host : "mongodb1.example.net:27017" },
{ _id: 2, host : "mongodb2.example.net:27017" }
]
}
五、rs.reconfig(configuration, force)
顾名思义,该方法用于重新配置现有的副本集。它将覆盖所有现有的副本集配置。我们必须连接到主副本集才能运行此方法。
例子:
名为 rs0 的副本集具有以下配置:
{
"_id" : "rs0",
"version" : 1,
"protocolVersion" : NumberLong(1),
"members" : [
{
"_id" : 0,
"host" : "mongodb0.example.net:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 1,
"host" : "mongodb1.example.net:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 2,
"host" : "mongodb2.example.net:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"catchUpTimeoutMillis" : 2000,
"getLastErrorModes" : {
},
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("58858acc1f5609ed986b641b")
}
}
热门文章
优秀文章