小羊苏西 發表於 2019-6-11 16:07:00

MongoDB的集群模式--Replica Set

<p><span style="color: rgba(255, 0, 0, 1)"><strong><span style="font-size: 16px">一、Replica Set 集群分为两种架构:</span></strong></span></p>
<ul>
<li><strong><strong><span style="font-size: 16px">奇数个节点构成Replica Set,所有节点拥有数据集。<span style="color: rgba(51, 102, 255, 1)">最小架构: 1个Primary节点,2个Secondary节点</span></span></strong></strong></li>
</ul>
<p><strong><strong><span style="font-size: 16px"><span style="color: rgba(51, 102, 255, 1)"><img src="https://img2018.cnblogs.com/blog/1711519/201906/1711519-20190611153202753-118061431.png"></span></span></strong></strong></p>
<ul>
<li><strong><span style="font-size: 16px">偶数个节点 + 一个仲裁节点 构成的Replica Set,节点拥有数据集,仲裁节点仅参与仲裁选举出Primary节点。 <span style="color: rgba(51, 102, 255, 1)">最小架构:1个Primary节点,1个Secondary节点,1个Arbiter节点</span></span></strong></li>
<li><strong><strong><span style="font-size: 16px"><span style="color: rgba(51, 102, 255, 1)">&nbsp;<img src="https://img2018.cnblogs.com/blog/1711519/201906/1711519-20190611153339586-693131493.png"></span></span></strong></strong></li>
</ul>
<p>接下来就以3台服务器为例,部署具有仲裁的框架。</p>
<table style="height: 187px; width: 1307px" border="0">
<tbody>
<tr>
<td>IP地址</td>
<td>操作系统版本</td>
<td>MongoDB版本</td>
<td>端口</td>
<td>功能</td>
</tr>
<tr>
<td>10.10.18.10</td>
<td>Centos7.5</td>
<td>&nbsp;4.0</td>
<td>&nbsp;27017</td>
<td>&nbsp;Primary </td>
</tr>
<tr>
<td>10.10.18.11</td>
<td>Centos7.5</td>
<td>&nbsp;4.0</td>
<td>&nbsp;27017</td>
<td>&nbsp;Secondary</td>
</tr>
<tr>
<td>10.10.18.12</td>
<td>Centos7.5</td>
<td>&nbsp;4.0</td>
<td>&nbsp;27017</td>
<td>&nbsp;Arbiter</td>
</tr>
</tbody>
</table>
<p><span style="color: rgba(255, 0, 0, 1); font-size: 16px"><strong>二、安装部署(请访问 "<span style="color: rgba(255, 0, 0, 1)">MongoDB安装</span>")</strong></span></p>
<p><strong>Primary的配置文件:</strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">systemLog:
   destination: </span><span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
   path: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/log/mongod.log</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
   logAppend: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
storage:
   dbPath: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/data</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
   journal:
      enabled: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
   wiredTiger:
      engineConfig:
      cacheSizeGB: </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
processManagement:
   fork: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
   pidFilePath: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/pid/m.pid</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
net:
   bindIp: </span><span style="color: rgba(128, 0, 128, 1)">10.10</span>.<span style="color: rgba(128, 0, 128, 1)">18.10</span><span style="color: rgba(0, 0, 0, 1)">
   port: </span><span style="color: rgba(128, 0, 128, 1)">27017</span></pre>
<pre><span style="color: rgba(0, 0, 0, 1)">replication:
   replSetName: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">rs0</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre>
</div>
<p><strong>Secondary的配置文件</strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">systemLog:
   destination: </span><span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
   path: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/log/mongod.log</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
   logAppend: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
storage:
   dbPath: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/data</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
   journal:
      enabled: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
   wiredTiger:
      engineConfig:
      cacheSizeGB: </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
processManagement:
   fork: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
   pidFilePath: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/pid/m.pid</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
net:
   bindIp: </span><span style="color: rgba(128, 0, 128, 1)">10.10</span>.<span style="color: rgba(128, 0, 128, 1)">18.11</span><span style="color: rgba(0, 0, 0, 1)">
   port: </span><span style="color: rgba(128, 0, 128, 1)">27017</span><span style="color: rgba(0, 0, 0, 1)"><br>replication:
   replSetName: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">rs0</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre>
</div>
<p><strong>Arbiter的配置文件</strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">systemLog:
   destination: </span><span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
   path: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/log/mongod.log</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
   logAppend: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
storage:
   dbPath: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/data</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
   journal:
      enabled: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
   wiredTiger:
      engineConfig:
      cacheSizeGB: </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
processManagement:
   fork: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
   pidFilePath: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/pid/m.pid</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
net:
   bindIp: </span><span style="color: rgba(128, 0, 128, 1)">10.10</span>.<span style="color: rgba(128, 0, 128, 1)">18.12</span><span style="color: rgba(0, 0, 0, 1)">
   port: </span><span style="color: rgba(128, 0, 128, 1)">27017</span><span style="color: rgba(0, 0, 0, 1)"><br>replication:
   replSetName: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">rs0</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre>
</div>
<p><strong>启动三台服务器上的mongdb</strong></p>
<div class="cnblogs_code">
<pre>mongod -f /data/mongodb/mongod.conf</pre>
</div>
<p>关闭进程</p>
<div class="cnblogs_code">
<pre> mongod -f /data/mongodb/mongod.conf --shutdown</pre>
</div>
<p>&nbsp;</p>
<p><span style="color: rgba(255, 0, 0, 1); font-size: 16px"><strong>三、配置Replica Set</strong></span></p>
<p>登录三台服务器中任意一台,登录mongo(如果报错就将配置文件中:security 内容暂时先去掉)</p>
<div class="cnblogs_code">
<pre>mongo --host <span style="color: rgba(128, 0, 128, 1)">10.10</span>.<span style="color: rgba(128, 0, 128, 1)">18.10</span></pre>
</div>
<div class="cnblogs_code">
<pre>&gt;cfg={ _id:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">rs0</span><span style="color: rgba(128, 0, 0, 1)">"</span>,members:[{_id:<span style="color: rgba(128, 0, 128, 1)">0</span>,host:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">10.10.18.10:27017</span><span style="color: rgba(128, 0, 0, 1)">'</span>,priority:<span style="color: rgba(128, 0, 128, 1)">1</span>},{_id:<span style="color: rgba(128, 0, 128, 1)">1</span>,host:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">10.10.18.11:27017</span><span style="color: rgba(128, 0, 0, 1)">'</span>,priority:<span style="color: rgba(128, 0, 128, 1)">1</span>},{_id:<span style="color: rgba(128, 0, 128, 1)">2</span>,host:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">10.10.18.12:27017</span><span style="color: rgba(128, 0, 0, 1)">'</span>,arbiterOnly:<span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">}] };

&gt;rs.initiate(cfg)</span></pre>
</div>
<p>查看Replica Set配置</p>
<div class="cnblogs_code">
<pre>&gt; rs.conf()</pre>
<p>{<br>      "_id" : "rs0",<br>      "version" : 1,<br>      "protocolVersion" : NumberLong(1),<br>      "writeConcernMajorityJournalDefault" : true,<br>      "members" : [<br>                {<br>                        "_id" : 0,<br>                        "host" : "10.10.18.10:27017",<br>                        "arbiterOnly" : false,<br>                        "buildIndexes" : true,<br>                        "hidden" : false,<br>                        "priority" : 1,<br>                        "tags" : {</p>
<p>                        },<br>                        "slaveDelay" : NumberLong(0),<br>                        "votes" : 1<br>                },<br>                {<br>                        "_id" : 1,<br>                        "host" : "10.10.18.11:27017",<br>                        "arbiterOnly" : false,<br>                        "buildIndexes" : true,<br>                        "hidden" : false,<br>                        "priority" : 1,<br>                        "tags" : {</p>
<p>                        },<br>                        "slaveDelay" : NumberLong(0),<br>                        "votes" : 1<br>                },<br>                {<br>                        "_id" : 2,<br>                        "host" : "10.10.18.12:27017",<br>                        "arbiterOnly" : true,<br>                        "buildIndexes" : true,<br>                        "hidden" : false,<br>                        "priority" : 0,<br>                        "tags" : {</p>
<p>                        },<br>                        "slaveDelay" : NumberLong(0),<br>                        "votes" : 1<br>                }<br>      ],<br>      "settings" : {<br>                "chainingAllowed" : true,<br>                "heartbeatIntervalMillis" : 2000,<br>                "heartbeatTimeoutSecs" : 10,<br>                "electionTimeoutMillis" : 10000,<br>                "catchUpTimeoutMillis" : -1,<br>                "catchUpTakeoverDelayMillis" : 30000,<br>                "getLastErrorModes" : {</p>
<p>                },<br>                "getLastErrorDefaults" : {<br>                        "w" : 1,<br>                        "wtimeout" : 0<br>                },<br>                "replicaSetId" : ObjectId("5cff76e5e57e23a5bc7054e2")<br>      }<br>}</p>





</div>
<p><span style="font-size: 16px"><strong><span style="color: rgba(255, 0, 0, 1)">四、验证Replica Set</span></strong></span></p>
<p>在Primary中插入数据</p>
<div class="cnblogs_code">
<pre>rs0:PRIMARY&gt;<span style="color: rgba(0, 0, 0, 1)">show dbs
admin   </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.000GB
config</span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.000GB
local   </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.000GB
rs0:PRIMARY</span>&gt;<span style="color: rgba(0, 0, 0, 1)"> db.users.insertOne(
... {
... name:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">sue</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
... age: </span><span style="color: rgba(128, 0, 128, 1)">26</span><span style="color: rgba(0, 0, 0, 1)">,
... status:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">pending</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
... })
{
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">acknowledged</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">insertedId</span><span style="color: rgba(128, 0, 0, 1)">"</span> : ObjectId(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">5cff79e8993e70290a081d04</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
}<br></span></pre>
<p>rs0:PRIMARY&gt; db.users.find()<br>{ "_id" : ObjectId("5cff79e8993e70290a081d04"), "name" : "sue", "age" : 26, "status" : "pending" }</p>





</div>
<p>在Secondary中,默认是不允许读</p>
<div class="cnblogs_code">
<pre>rs0:SECONDARY&gt; db.users.<span style="color: rgba(0, 0, 255, 1)">find</span><span style="color: rgba(0, 0, 0, 1)">()
Error: error: {
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">operationTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> : Timestamp(<span style="color: rgba(128, 0, 128, 1)">1560247181</span>, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ok</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">errmsg</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">not master and slaveOk=false</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">code</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">13435</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">codeName</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">NotMasterNoSlaveOk</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$clusterTime</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">clusterTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> : Timestamp(<span style="color: rgba(128, 0, 128, 1)">1560247181</span>, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">signature</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hash</span><span style="color: rgba(128, 0, 0, 1)">"</span> : BinData(<span style="color: rgba(128, 0, 128, 1)">0</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">AAAAAAAAAAAAAAAAAAAAAAAAAAA=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">),
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">keyId</span><span style="color: rgba(128, 0, 0, 1)">"</span> : NumberLong(<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">)
                }
      }
}</span></pre>
</div>
<p><span style="color: rgba(255, 0, 0, 1); font-size: 16px"><strong>五、创建用户</strong></span></p>
<p><span style="color: rgba(255, 0, 0, 1); font-size: 16px"><strong>六、故障模拟</strong></span></p>
<p><strong>停止Primary上的mongo进程,在Secondary上登录mongo查看</strong></p>
<div class="cnblogs_code">
<pre>mongo --host <span style="color: rgba(128, 0, 128, 1)">10.10</span>.<span style="color: rgba(128, 0, 128, 1)">18.11<br><br></span><span style="color: rgba(0, 0, 0, 1)">
rs0:PRIMARY</span>&gt; db.users.<span style="color: rgba(0, 0, 255, 1)">find</span><span style="color: rgba(0, 0, 0, 1)">()
{ </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">_id</span><span style="color: rgba(128, 0, 0, 1)">"</span> : ObjectId(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">5cff79e8993e70290a081d04</span><span style="color: rgba(128, 0, 0, 1)">"</span>), <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">name</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">sue</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">age</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">26</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">status</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">pending</span><span style="color: rgba(128, 0, 0, 1)">"</span> }</pre>
</div>
<p>发现原Secondary变成Primary,并且可以进行查询。</p>
<p><strong>开启原Primary服务器上的mongo进程,该服务器变成了Secondary。</strong></p>
<p><span style="color: rgba(255, 0, 0, 1); font-size: 16px"><strong>七、数据备份和恢复</strong></span></p>
<p><strong>mongodump从MongoDB中读取数据,保存为BSON文件,mongorestore读取BSON文件恢复到MongoDB中。适用于小型MongoDB的备份和恢复。</strong></p>
<p><strong>mongodump备份的时候只备份MongoDB中的文档,使用mongorestore恢复之后需要<span style="color: rgba(255, 0, 0, 1)">重建索引</span></strong></p>
<div class="cnblogs_code">
<pre>mongodump --host 10.10.18.11 --port 27017 --username myUserAdmin --password abc123 --gzip --out /data/mongobak/$(date +%F)<br><br>注:--oplog表示备份的时候oplog.bson文件,存放在<strong>dump开始 到 dump结束之间</strong>所有的oplog。</pre>
</div>
<p>根据前面的备份恢复到一个<strong><span style="color: rgba(255, 0, 0, 1)">新的Replica Set集群</span>中其中一台服务器上。</strong></p>
<p><strong>恢复</strong></p>
<p><span style="color: rgba(255, 0, 0, 1)">恢复的过程中,不要启用认证。否则在将其他机器加入到Replica Set集群中来的时候,会出现无法认证的问题。</span></p>
<p><strong>1、首先在一台服务器上开启一个干净mongo服务(无任何数据),做为 Primary</strong></p>
<p>mongd.conf配置文件内容</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">systemLog:
   destination: </span><span style="color: rgba(0, 0, 255, 1)">file</span><span style="color: rgba(0, 0, 0, 1)">
   path: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/log/mongod.log</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
   logAppend: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
storage:
   dbPath: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/data</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
   journal:
      enabled: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
   wiredTiger:
      engineConfig:
      cacheSizeGB: </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">
processManagement:
   fork: </span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
   pidFilePath: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/pid/mongod.pid</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
net:
   bindIp: </span><span style="color: rgba(128, 0, 128, 1)">10.10</span>.<span style="color: rgba(128, 0, 128, 1)">18.10</span><span style="color: rgba(0, 0, 0, 1)">
   port: </span><span style="color: rgba(128, 0, 128, 1)">27017</span><span style="color: rgba(0, 0, 0, 1)">
replication:
   replSetName: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">rs0</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre>
</div>
<p><strong>2、开启mongod服务</strong></p>
<div class="cnblogs_code">
<pre>/data/mongodb/bin/mongod -f /data/mongodb/mongod.conf</pre>
</div>
<p><strong>3、创建单个Replica Set</strong></p>
<p><strong>登录mongo,然后创建单个Replica Set</strong></p>
<div class="cnblogs_code">
<pre>mongo --host <span style="color: rgba(128, 0, 128, 1)">10.10</span>.<span style="color: rgba(128, 0, 128, 1)">18.10</span>
&gt; cfg={_id:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">rs0</span><span style="color: rgba(128, 0, 0, 1)">"</span>,members:[{_id:<span style="color: rgba(128, 0, 128, 1)">0</span>,host:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">10.10.18.10:27017</span><span style="color: rgba(128, 0, 0, 1)">'</span>,priority:<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">}]}</span></pre>
<pre>&gt; <span>rs.initiate(cfg)</span></pre>
</div>
<p>创建结果:</p>
<div class="cnblogs_code"><img id="code_img_closed_4c96f1f3-8e30-47ac-9b3f-86f651b29b9d" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_4c96f1f3-8e30-47ac-9b3f-86f651b29b9d" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_4c96f1f3-8e30-47ac-9b3f-86f651b29b9d" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> <span style="color: rgba(0, 0, 0, 1)">{
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span>         <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ok</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)"> 3</span>         <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">operationTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> : Timestamp(<span style="color: rgba(128, 0, 128, 1)">1560394449</span>, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
</span><span style="color: rgba(0, 128, 128, 1)"> 4</span>         <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$clusterTime</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span>               <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">clusterTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> : Timestamp(<span style="color: rgba(128, 0, 128, 1)">1560394449</span>, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
</span><span style="color: rgba(0, 128, 128, 1)"> 6</span>               <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">signature</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
</span><span style="color: rgba(0, 128, 128, 1)"> 7</span>                         <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hash</span><span style="color: rgba(128, 0, 0, 1)">"</span> : BinData(<span style="color: rgba(128, 0, 128, 1)">0</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">AAAAAAAAAAAAAAAAAAAAAAAAAAA=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">),
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span>                         <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">keyId</span><span style="color: rgba(128, 0, 0, 1)">"</span> : NumberLong(<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span> <span style="color: rgba(0, 0, 0, 1)">                }
</span><span style="color: rgba(0, 128, 128, 1)">10</span> <span style="color: rgba(0, 0, 0, 1)">      }
</span><span style="color: rgba(0, 128, 128, 1)">11</span> }</pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p>创建好了之后,就可以查看当前的数据库</p>
<div class="cnblogs_code">
<pre>rs0:SECONDARY&gt;<span style="color: rgba(0, 0, 0, 1)"> show dbs
admin   </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.000GB
config</span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.000GB
local   </span><span style="color: rgba(128, 0, 128, 1)">0</span>.000GB</pre>
</div>
<p>可以发现,目前就三个基本的数据库。</p>
<p><strong>4、恢复数据</strong></p>
<div class="cnblogs_code">
<pre>mongorestore --host <span style="color: rgba(128, 0, 128, 1)">10.10</span>.<span style="color: rgba(128, 0, 128, 1)">18.10</span> --port <span style="color: rgba(128, 0, 128, 1)">27017</span> --<span style="color: rgba(0, 0, 255, 1)">gzip</span> /data/mongobak/<span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-<span style="color: rgba(128, 0, 128, 1)">12</span> </pre>
</div>
<p>结果</p>
<div class="cnblogs_code"><img id="code_img_closed_57d071d0-6e54-476a-8554-3aa82c627d95" class="code_img_closed lazyload" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_57d071d0-6e54-476a-8554-3aa82c627d95" class="code_img_opened lazyload" style="display: none" alt="" data-src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif">
<div id="cnblogs_code_open_57d071d0-6e54-476a-8554-3aa82c627d95" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">33.817</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span><span style="color: rgba(0, 0, 0, 1)">    preparing collections to restore from
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">33.829</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    reading metadata <span style="color: rgba(0, 0, 255, 1)">for</span> admin.test from /data/mongobak/<span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-<span style="color: rgba(128, 0, 128, 1)">12</span>/admin/<span style="color: rgba(0, 0, 0, 1)">test.metadata.json.gz
</span><span style="color: rgba(0, 128, 128, 1)"> 3</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">33.832</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    reading metadata <span style="color: rgba(0, 0, 255, 1)">for</span> test.users from /data/mongobak/<span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-<span style="color: rgba(128, 0, 128, 1)">12</span>/test/<span style="color: rgba(0, 0, 0, 1)">users.metadata.json.gz
</span><span style="color: rgba(0, 128, 128, 1)"> 4</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">33.834</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    reading metadata <span style="color: rgba(0, 0, 255, 1)">for</span> reporting.reporting from /data/mongobak/<span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-<span style="color: rgba(128, 0, 128, 1)">12</span>/reporting/<span style="color: rgba(0, 0, 0, 1)">reporting.metadata.json.gz
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">33.841</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    reading metadata <span style="color: rgba(0, 0, 255, 1)">for</span> admin.reporting from /data/mongobak/<span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-<span style="color: rgba(128, 0, 128, 1)">12</span>/admin/<span style="color: rgba(0, 0, 0, 1)">reporting.metadata.json.gz
</span><span style="color: rgba(0, 128, 128, 1)"> 6</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">33.861</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    restoring test.users from /data/mongobak/<span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-<span style="color: rgba(128, 0, 128, 1)">12</span>/test/<span style="color: rgba(0, 0, 0, 1)">users.bson.gz
</span><span style="color: rgba(0, 128, 128, 1)"> 7</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.085</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    restoring admin.test from /data/mongobak/<span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-<span style="color: rgba(128, 0, 128, 1)">12</span>/admin/<span style="color: rgba(0, 0, 0, 1)">test.bson.gz
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.123</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span><span style="color: rgba(0, 0, 0, 1)">    no indexes to restore
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.123</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    finished restoring test.users (<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> document)
</span><span style="color: rgba(0, 128, 128, 1)">10</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.123</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    restoring admin.reporting from /data/mongobak/<span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-<span style="color: rgba(128, 0, 128, 1)">12</span>/admin/<span style="color: rgba(0, 0, 0, 1)">reporting.bson.gz
</span><span style="color: rgba(0, 128, 128, 1)">11</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.175</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    restoring reporting.reporting from /data/mongobak/<span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-<span style="color: rgba(128, 0, 128, 1)">12</span>/reporting/<span style="color: rgba(0, 0, 0, 1)">reporting.bson.gz
</span><span style="color: rgba(0, 128, 128, 1)">12</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.230</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span><span style="color: rgba(0, 0, 0, 1)">    no indexes to restore
</span><span style="color: rgba(0, 128, 128, 1)">13</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.230</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    finished restoring admin.test (<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)"> documents)
</span><span style="color: rgba(0, 128, 128, 1)">14</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.233</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span><span style="color: rgba(0, 0, 0, 1)">    no indexes to restore
</span><span style="color: rgba(0, 128, 128, 1)">15</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.233</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    finished restoring reporting.reporting (<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> document)
</span><span style="color: rgba(0, 128, 128, 1)">16</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.234</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span><span style="color: rgba(0, 0, 0, 1)">    no indexes to restore
</span><span style="color: rgba(0, 128, 128, 1)">17</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.234</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    finished restoring admin.reporting (<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> document)
</span><span style="color: rgba(0, 128, 128, 1)">18</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.234</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    restoring users from /data/mongobak/<span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-<span style="color: rgba(128, 0, 128, 1)">12</span>/admin/<span style="color: rgba(0, 0, 0, 1)">system.users.bson.gz
</span><span style="color: rgba(0, 128, 128, 1)">19</span> <span style="color: rgba(128, 0, 128, 1)">2019</span>-<span style="color: rgba(128, 0, 128, 1)">06</span>-13T10:<span style="color: rgba(128, 0, 128, 1)">55</span>:<span style="color: rgba(128, 0, 128, 1)">34.312</span>+<span style="color: rgba(128, 0, 128, 1)">0800</span>    <span style="color: rgba(0, 0, 255, 1)">done</span></pre>
</div>
<span class="cnblogs_code_collapse">View Code</span></div>
<p>恢复完成,在登录mongo查看,恢复数据库的情况。</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span> rs0:PRIMARY&gt;<span style="color: rgba(0, 0, 0, 1)"> show dbs
</span><span style="color: rgba(0, 128, 128, 1)"> 2</span> admin      <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.000GB
</span><span style="color: rgba(0, 128, 128, 1)"> 3</span> config   <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.000GB
</span><span style="color: rgba(0, 128, 128, 1)"> 4</span> local      <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.000GB
</span><span style="color: rgba(0, 128, 128, 1)"> 5</span> reporting<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.000GB
</span><span style="color: rgba(0, 128, 128, 1)"> 6</span> test       <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">.000GB
</span><span style="color: rgba(0, 128, 128, 1)"> 7</span> rs0:PRIMARY&gt;<span style="color: rgba(0, 0, 0, 1)"> use test
</span><span style="color: rgba(0, 128, 128, 1)"> 8</span> <span style="color: rgba(0, 0, 0, 1)">switched to db test
</span><span style="color: rgba(0, 128, 128, 1)"> 9</span> rs0:PRIMARY&gt;<span style="color: rgba(0, 0, 0, 1)"> show collections
</span><span style="color: rgba(0, 128, 128, 1)">10</span> <span style="color: rgba(0, 0, 0, 1)">users
</span><span style="color: rgba(0, 128, 128, 1)">11</span> rs0:PRIMARY&gt; db.users.<span style="color: rgba(0, 0, 255, 1)">find</span><span style="color: rgba(0, 0, 0, 1)">()
</span><span style="color: rgba(0, 128, 128, 1)">12</span> { <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">_id</span><span style="color: rgba(128, 0, 0, 1)">"</span> : ObjectId(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">5cff79e8993e70290a081d04</span><span style="color: rgba(128, 0, 0, 1)">"</span>), <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">name</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">sue</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">age</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">26</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">status</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">pending</span><span style="color: rgba(128, 0, 0, 1)">"</span> }</pre>
</div>
<p>可以看出之前的记录已经恢复了。</p>
<p>注意:如果备份时,MongoDB是拥有用户名和密码才能进行登录的,在恢复之后,用户名和密码也是可以使用的。如果需要在使用认证登录,需要将下面信息添加的配置文件mongod.conf:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">security:
   keyFile: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/keyfile</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
   authorization: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">enabled</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre>
</div>
<p>然后重启mongo服务。</p>
<p><strong>5、关闭刚恢复的MongoDB,将数据目录同步到另一台服务器上,作为Secondary</strong></p>
<p>通过之前,确认该台服务器上的mongo是无任何数据。将Primary服务上的 /data/mongodb/data 同步到 Secondary服务器上&nbsp;&nbsp;/data/mongodb/data</p>
<p><strong>6、依次开启Primary、Secondary、Arbiter的mongo服务</strong></p>
<p><strong>7、在Primary服务器上,将Secondary、Arbiter加入到Replica Set集群中来</strong></p>
<p>查看当前Replica Set集群的配置</p>
<div class="cnblogs_code">
<pre>rs0:PRIMARY&gt;<span style="color: rgba(0, 0, 0, 1)"> rs.conf()
{
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">_id</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">rs0</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">version</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">protocolVersion</span><span style="color: rgba(128, 0, 0, 1)">"</span> : NumberLong(<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">writeConcernMajorityJournalDefault</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">members</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : [
                {
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">_id</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">host</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">10.10.18.10:27017</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">arbiterOnly</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">buildIndexes</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hidden</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">priority</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">tags</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {

                        },
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">slaveDelay</span><span style="color: rgba(128, 0, 0, 1)">"</span> : NumberLong(<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">),
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">votes</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
                }
      ],
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">settings</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">chainingAllowed</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">heartbeatIntervalMillis</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">2000</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">heartbeatTimeoutSecs</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">electionTimeoutMillis</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">10000</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">catchUpTimeoutMillis</span><span style="color: rgba(128, 0, 0, 1)">"</span> : -<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">catchUpTakeoverDelayMillis</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">30000</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">getLastErrorModes</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {

                },
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">getLastErrorDefaults</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">w</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">wtimeout</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
                },
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">replicaSetId</span><span style="color: rgba(128, 0, 0, 1)">"</span> : ObjectId(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">5d01bad15dfd3f294d147b36</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
      }
}</span></pre>
</div>
<p>可以看到当前Replica Set集群中就一台服务器</p>
<p><strong>将Secondary、Arbiter加入到Replica Set集群中</strong></p>
<div class="cnblogs_code">
<pre>rs0:PRIMARY&gt;<span style="color: rgba(0, 0, 0, 1)"> rs.add(
... {
... _id: </span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
... host:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">10.10.18.11:27017</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
... priority:</span><span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
... }
... )
{
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ok</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">operationTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> : Timestamp(<span style="color: rgba(128, 0, 128, 1)">1560397822</span>, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$clusterTime</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">clusterTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> : Timestamp(<span style="color: rgba(128, 0, 128, 1)">1560397822</span>, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">signature</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hash</span><span style="color: rgba(128, 0, 0, 1)">"</span> : BinData(<span style="color: rgba(128, 0, 128, 1)">0</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">AAAAAAAAAAAAAAAAAAAAAAAAAAA=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">),
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">keyId</span><span style="color: rgba(128, 0, 0, 1)">"</span> : NumberLong(<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">)
                }
      }
}
rs0:PRIMARY</span>&gt;<span style="color: rgba(0, 0, 0, 1)"> rs.add(
... {
... _id: </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
... host:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">10.10.18.12:27017</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
... arbiterOnly:</span><span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">
... }
... )
{
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ok</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">operationTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> : Timestamp(<span style="color: rgba(128, 0, 128, 1)">1560397830</span>, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$clusterTime</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">clusterTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> : Timestamp(<span style="color: rgba(128, 0, 128, 1)">1560397830</span>, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">signature</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hash</span><span style="color: rgba(128, 0, 0, 1)">"</span> : BinData(<span style="color: rgba(128, 0, 128, 1)">0</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">AAAAAAAAAAAAAAAAAAAAAAAAAAA=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">),
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">keyId</span><span style="color: rgba(128, 0, 0, 1)">"</span> : NumberLong(<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">)
                }
</span></pre>
</div>
<p>再次查看状态:</p>
<div class="cnblogs_code">
<pre>rs0:PRIMARY&gt;<span style="color: rgba(0, 0, 0, 1)"> rs.conf()
{
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">_id</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">rs0</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">version</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">protocolVersion</span><span style="color: rgba(128, 0, 0, 1)">"</span> : NumberLong(<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">writeConcernMajorityJournalDefault</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">members</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : [
                {
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">_id</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">host</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">10.10.18.10:27017</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">arbiterOnly</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">buildIndexes</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hidden</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">priority</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">tags</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {

                        },
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">slaveDelay</span><span style="color: rgba(128, 0, 0, 1)">"</span> : NumberLong(<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">),
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">votes</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
                },
                {
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">_id</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">host</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">10.10.18.11:27017</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">arbiterOnly</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">buildIndexes</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hidden</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">priority</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">tags</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {

                        },
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">slaveDelay</span><span style="color: rgba(128, 0, 0, 1)">"</span> : NumberLong(<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">),
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">votes</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
                },
                {
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">_id</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">host</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">10.10.18.12:27017</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">arbiterOnly</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">buildIndexes</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hidden</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">priority</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">tags</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {

                        },
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">slaveDelay</span><span style="color: rgba(128, 0, 0, 1)">"</span> : NumberLong(<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">),
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">votes</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
                }
      ],
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">settings</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">chainingAllowed</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">heartbeatIntervalMillis</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">2000</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">heartbeatTimeoutSecs</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">electionTimeoutMillis</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">10000</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">catchUpTimeoutMillis</span><span style="color: rgba(128, 0, 0, 1)">"</span> : -<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">catchUpTakeoverDelayMillis</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">30000</span><span style="color: rgba(0, 0, 0, 1)">,
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">getLastErrorModes</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {

                },
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">getLastErrorDefaults</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">w</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
                        </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">wtimeout</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
                },
                </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">replicaSetId</span><span style="color: rgba(128, 0, 0, 1)">"</span> : ObjectId(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">5d01bad15dfd3f294d147b36</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
      }
}</span></pre>
</div>
<p>加入成功。</p>
<p><strong>开启认证访问</strong></p>
<p>在三台服务器的配置文件中添加:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">security:
   keyFile: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/keyfile</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
   authorization: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">enabled</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre>
</div>
<p>然后依次关闭:<strong>Arbiter&nbsp;</strong><strong>Secondary&nbsp;</strong><strong>Primary</strong></p>
<p>依次开启:<strong>Primary&nbsp;</strong><strong>Secondary&nbsp;</strong><strong>Arbiter&nbsp;</strong></p>
<p><strong>&nbsp;</strong></p>
<p>&nbsp;</p>
<pre><span>security:
   keyFile: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">/data/mongodb/keyfile</span><span style="color: rgba(128, 0, 0, 1)">"</span><span>
   authorization: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">enabled</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre><br><br>
来源:https://www.cnblogs.com/sz-wenbin/p/11004179.html
頁: [1]
查看完整版本: MongoDB的集群模式--Replica Set