📅  最后修改于: 2020-11-23 01:28:40             🧑  作者: Mango
MongoDB复制方法用于将成员复制到副本集。
add方法将成员添加到指定的副本集。我们需要将此方法连接到副本集的主集。如果该方法将触发主要对象的选举,则将终止与Shell的连接。例如-如果我们尝试添加一个优先级高于主要成员的新成员。即使操作成功,mongo shell也会反映出错误。
例:
在以下示例中,我们将添加具有默认投票的新辅助成员。
rs.add( { host: "mongodbd4.example.net:27017" } )
主机名
rs.add( "mongodbd4.example.net:27017" )
我们可以将新的仲裁器添加到指定主机上的现有副本集。
例
将仲裁器添加到关联主机名
mongod --bind_ip localhost,My-Example-
如果要连接到此实例,则远程客户端必须指定主机名或其关联的IP地址198.52.100.2:
mongo --host My-Example-
mongo --host 198.52.100.2
conf方法用于获取包含当前副本集配置的文档。
rs.conf()包装replSetGetConfig命令配置。
例
以下脚本显示了副本集的配置文档,其中包括这些设置的子集:
{
_id: ,
version: ,
protocolVersion: ,
writeConcernMajorityJournalDefault: ,
configsvr: ,
members: [
{
_id: ,
host: ,
arbiterOnly: ,
buildIndexes: ,
hidden: ,
priority: ,
tags: ,
slaveDelay: ,
votes:
}, ], settings: {
chainingAllowed : ,
heartbeatIntervalMillis : ,
heartbeatTimeoutSecs: ,
electionTimeoutMillis : ,
catchUpTimeoutMillis : ,
getLastErrorModes : ,
getLastErrorDefaults : ,
replicaSetId:
}
}
输出:
该方法启动副本集。此方法可以考虑保存副本集的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" }
]
}
)
输出:
顾名思义,该方法用于重新配置现有副本集。它将覆盖所有现有的副本集配置。我们必须连接到主副本集才能运行此方法。
例子
名为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")
}
}