MongoDB复制原理
mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。
mongodb各个节点常见的搭配方式为:一主一从、一主多从。
主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
MongoDB复制结构图如下所示:
以上结构图中,客户端从主节点读取数据,在客户端写入数据到主节点时, 主节点与从节点进行数据交互保障数据的一致性。
副本集特征:
- N 个节点的集群
- 任何节点可作为主节点
- 所有写入操作都在主节点上
- 自动故障转移
- 自动恢复
环境介绍:
mongodb版本:4.4.1
系统:centos7.x
安装路径:/usr/local
副本集机器:
IP:192.168.163.125 port:27017
IP:192.168.163.126 port:27017
IP:192.168.163.127 port:27017
IP:192.168.163.128 port:27017
一、下载解压
1、下载地址:https://www.mongodb.com/download-center/community
2、将下载好的压缩包分别上传到四台机器 /usr/local 目录下,并且将解压后的文件夹重命名为:mongodb,使用到的命令如下:
完整过程如下:
[root@localhost /]# cd /usr/local/
[root@localhost local]#
[root@localhost local]# ll
total 147092
drwxr-xr-x. 2 root root 6 Apr 11 2018 bin
drwxrwxrwx. 10 root root 194 Sep 21 15:08 elasticsearch-7.4.0
drwxr-xr-x. 2 root root 6 Apr 11 2018 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 games
drwxr-xr-x. 2 root root 6 Apr 11 2018 include
drwxr-xr-x. 7 10 143 245 Apr 2 2019 jdk1.8.0_212
drwxr-xr-x. 2 root root 6 Apr 11 2018 lib
drwxr-xr-x. 2 root root 6 Apr 11 2018 lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 libexec
-rw-r--r--. 1 root root 71253687 Sep 24 13:00 mongodb-linux-x86_64-rhel70-4.4.1.tgz
-rw-r--r--. 1 root root 38428385 Sep 24 13:01 otp_src_21.3.tar.gz
drwxr-xr-x. 10 root root 264 Sep 24 11:03 redis-cluster
-rw-r--r--. 1 root root 11022473 Sep 22 16:08 redis-cluster.tar.gz
drwxrwsrwx. 25 root rvm 4096 Sep 23 17:09 rvm
drwxrwxr-x. 20 root root 4096 Mar 26 05:17 rvm-1.29.10
-rwxrwxrwx. 1 root root 1288100 Sep 23 16:35 rvm-1.29.10.tar.gz
drwxr-xr-x. 2 root root 6 Apr 11 2018 sbin
drwxr-xr-x. 5 root root 49 Sep 15 09:28 share
drwxr-xr-x. 2 root root 6 Apr 11 2018 src
[root@localhost local]# tar -zxf mongodb-linux-x86_64-rhel70-4.4.1.tgz
[root@localhost local]#
[root@localhost local]# ll
total 147092
drwxr-xr-x. 2 root root 6 Apr 11 2018 bin
drwxrwxrwx. 10 root root 194 Sep 21 15:08 elasticsearch-7.4.0
drwxr-xr-x. 2 root root 6 Apr 11 2018 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 games
drwxr-xr-x. 2 root root 6 Apr 11 2018 include
drwxr-xr-x. 7 10 143 245 Apr 2 2019 jdk1.8.0_212
drwxr-xr-x. 2 root root 6 Apr 11 2018 lib
drwxr-xr-x. 2 root root 6 Apr 11 2018 lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 libexec
drwxr-xr-x. 3 root root 100 Sep 24 13:02 mongodb-linux-x86_64-rhel70-4.4.1
-rw-r--r--. 1 root root 71253687 Sep 24 13:00 mongodb-linux-x86_64-rhel70-4.4.1.tgz
-rw-r--r--. 1 root root 38672321 Sep 24 13:02 otp_src_21.3.tar.gz
drwxr-xr-x. 10 root root 264 Sep 24 11:03 redis-cluster
-rw-r--r--. 1 root root 11022473 Sep 22 16:08 redis-cluster.tar.gz
drwxrwsrwx. 25 root rvm 4096 Sep 23 17:09 rvm
drwxrwxr-x. 20 root root 4096 Mar 26 05:17 rvm-1.29.10
-rwxrwxrwx. 1 root root 1288100 Sep 23 16:35 rvm-1.29.10.tar.gz
drwxr-xr-x. 2 root root 6 Apr 11 2018 sbin
drwxr-xr-x. 5 root root 49 Sep 15 09:28 share
drwxr-xr-x. 2 root root 6 Apr 11 2018 src
[root@localhost local]#
[root@localhost local]# mv mongodb-linux-x86_64-rhel70-4.4.1 /usr/local/mongodb
[root@localhost local]#
[root@localhost local]# ll
total 147092
drwxr-xr-x. 2 root root 6 Apr 11 2018 bin
drwxrwxrwx. 10 root root 194 Sep 21 15:08 elasticsearch-7.4.0
drwxr-xr-x. 2 root root 6 Apr 11 2018 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 games
drwxr-xr-x. 2 root root 6 Apr 11 2018 include
drwxr-xr-x. 7 10 143 245 Apr 2 2019 jdk1.8.0_212
drwxr-xr-x. 2 root root 6 Apr 11 2018 lib
drwxr-xr-x. 2 root root 6 Apr 11 2018 lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 libexec
drwxr-xr-x. 3 root root 100 Sep 24 13:02 mongodb
-rw-r--r--. 1 root root 71253687 Sep 24 13:00 mongodb-linux-x86_64-rhel70-4.4.1.tgz
-rw-r--r--. 1 root root 38958365 Sep 24 13:03 otp_src_21.3.tar.gz
drwxr-xr-x. 10 root root 264 Sep 24 11:03 redis-cluster
-rw-r--r--. 1 root root 11022473 Sep 22 16:08 redis-cluster.tar.gz
drwxrwsrwx. 25 root rvm 4096 Sep 23 17:09 rvm
drwxrwxr-x. 20 root root 4096 Mar 26 05:17 rvm-1.29.10
-rwxrwxrwx. 1 root root 1288100 Sep 23 16:35 rvm-1.29.10.tar.gz
drwxr-xr-x. 2 root root 6 Apr 11 2018 sbin
drwxr-xr-x. 5 root root 49 Sep 15 09:28 share
drwxr-xr-x. 2 root root 6 Apr 11 2018 src
[root@localhost local]#
二、集群之间通信的安全认证证书生成
1、在每台机器的 /usr/local/mongodb 目录下创建证书存放目录:cert,如下:
[root@localhost /]# cd /usr/local/mongodb
[root@localhost mongodb]#
[root@localhost mongodb]# ll
total 132
drwxr-xr-x. 2 root root 70 Sep 24 13:02 bin
-rw-r--r--. 1 root root 30608 Sep 8 22:02 LICENSE-Community.txt
-rw-r--r--. 1 root root 16726 Sep 8 22:02 MPL-2
-rw-r--r--. 1 root root 1977 Sep 8 22:02 README
-rw-r--r--. 1 root root 75685 Sep 8 22:02 THIRD-PARTY-NOTICES
[root@localhost mongodb]#
[root@localhost mongodb]# mkdir cert
[root@localhost mongodb]#
[root@localhost mongodb]# ll
total 132
drwxr-xr-x. 2 root root 70 Sep 24 13:02 bin
drwxr-xr-x. 2 root root 6 Sep 24 13:27 cert
-rw-r--r--. 1 root root 30608 Sep 8 22:02 LICENSE-Community.txt
-rw-r--r--. 1 root root 16726 Sep 8 22:02 MPL-2
-rw-r--r--. 1 root root 1977 Sep 8 22:02 README
-rw-r--r--. 1 root root 75685 Sep 8 22:02 THIRD-PARTY-NOTICES
[root@localhost mongodb]#
2、生成集群通信证书key文件mongokey,并且将mongokey文件复制到每台机器的 /usr/local/mongodb/cert 目录下
随便进入一台机器,通过openssl命令生成通信key,key文件名字为:mongokey,如下:
[root@localhost /]#
[root@localhost /]# openssl rand -base64 745 > /usr/local/mongodb/cert/mongokey
[root@localhost /]#
[root@localhost /]# cd /usr/local/mongodb/cert
[root@localhost cert]#
[root@localhost cert]# ll
total 4
-rw-r--r--. 1 root root 1012 Sep 24 13:34 mongokey
[root@localhost cert]#
[root@localhost cert]# chmod -R 600 mongokey
注意:必须将mongokey文件赋权限:chmod -R 600 mongokey
三、创建每台机器的mongodb配置文件,并且指定db数据存储路径、日志log路径、通信key文件路径
1、在每台机器usr/local/mongodb/bin 目录下创建mongod.conf配置文件
[root@localhost /]#
[root@localhost /]# cd /usr/local/mongodb/bin/
[root@localhost bin]#
[root@localhost bin]# ll
total 194812
-rwxr-xr-x. 1 root root 7684 Sep 8 22:40 install_compass
-rwxr-xr-x. 1 root root 53364072 Sep 8 22:32 mongo
-rwxr-xr-x. 1 root root 81924576 Sep 8 22:30 mongod
-rwxr-xr-x. 1 root root 64181144 Sep 8 22:31 mongos
[root@localhost bin]#
[root@localhost bin]# touch mongod.conf
[root@localhost bin]#
[root@localhost bin]# ll
total 194812
-rwxr-xr-x. 1 root root 7684 Sep 8 22:40 install_compass
-rwxr-xr-x. 1 root root 53364072 Sep 8 22:32 mongo
-rwxr-xr-x. 1 root root 81924576 Sep 8 22:30 mongod
-rw-r--r--. 1 root root 0 Sep 24 13:43 mongod.conf
-rwxr-xr-x. 1 root root 64181144 Sep 8 22:31 mongos
[root@localhost bin]#
[root@localhost bin]# chmod -R 777 mongod.conf
[root@localhost bin]#
[root@localhost bin]# ll
total 194812
-rwxr-xr-x. 1 root root 7684 Sep 8 22:40 install_compass
-rwxr-xr-x. 1 root root 53364072 Sep 8 22:32 mongo
-rwxr-xr-x. 1 root root 81924576 Sep 8 22:30 mongod
-rwxrwxrwx. 1 root root 0 Sep 24 13:43 mongod.conf
-rwxr-xr-x. 1 root root 64181144 Sep 8 22:31 mongos
[root@localhost bin]#
[root@localhost bin]# vim mongod.conf
mongod.conf(格式为yml格式)文件的内容如下:
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
#数据存储路径
dbPath: /usr/local/mongodb/data
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
#日志路径
path: /usr/local/mongodb/logs/mongodb.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
#processManagement:
#安全认证
security:
#链接认证,也就是账号密码
authorization: enabled
#集群内部通信安全证书文件,每台的证书文件必须一样,搭建第二步有生成
keyFile: /usr/local/mongodb/cert/mongokey
#setParameter:
# authenticationMechanisms: SCRAM-SHA-1
#operationProfiling:
#复制集参数
replication:
#复制集的名称,每台机器都必须一样
replSetName: mongo_rep
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
2、创建每台机器的db数据存储路径、日志路径,数据存储路径和日志路径必须和mongod.conf文件中的路劲一致,创建如下:
[root@localhost /]#
[root@localhost /]# cd /usr/local/mongodb
[root@localhost mongodb]#
[root@localhost mongodb]# ll
total 132
drwxr-xr-x. 2 root root 89 Sep 24 13:50 bin
drwxr-xr-x. 2 root root 22 Sep 24 13:33 cert
-rw-r--r--. 1 root root 30608 Sep 8 22:02 LICENSE-Community.txt
-rw-r--r--. 1 root root 16726 Sep 8 22:02 MPL-2
-rw-r--r--. 1 root root 1977 Sep 8 22:02 README
-rw-r--r--. 1 root root 75685 Sep 8 22:02 THIRD-PARTY-NOTICES
[root@localhost mongodb]#
[root@localhost mongodb]# mkdir data
[root@localhost mongodb]#
[root@localhost mongodb]# mkdir logs
[root@localhost mongodb]#
[root@localhost mongodb]# ll
total 132
drwxr-xr-x. 2 root root 89 Sep 24 13:50 bin
drwxr-xr-x. 2 root root 22 Sep 24 13:33 cert
drwxr-xr-x. 2 root root 6 Sep 24 14:12 data
-rw-r--r--. 1 root root 30608 Sep 8 22:02 LICENSE-Community.txt
drwxr-xr-x. 2 root root 6 Sep 24 14:12 logs
-rw-r--r--. 1 root root 16726 Sep 8 22:02 MPL-2
-rw-r--r--. 1 root root 1977 Sep 8 22:02 README
-rw-r--r--. 1 root root 75685 Sep 8 22:02 THIRD-PARTY-NOTICES
[root@localhost mongodb]#
[root@localhost mongodb]# cd logs
[root@localhost logs]#
[root@localhost logs]# touch mongodb.log
[root@localhost logs]#
[root@localhost logs]# ll
total 0
-rw-r--r--. 1 root root 0 Sep 24 14:13 mongodb.log
[root@localhost logs]#
四、创建每台服务器的mongodb启动脚本start.sh,并且执行start.sh启动每台服务器mongodb
1、在每台服务器的/usr/local/mongodb/目录下创建start.sh启动脚本,如下
[root@localhost /]#
[root@localhost /]# cd /usr/local/mongodb
[root@localhost mongodb]#
[root@localhost mongodb]# ll
total 132
drwxr-xr-x. 2 root root 89 Sep 24 13:50 bin
drwxr-xr-x. 2 root root 22 Sep 24 13:33 cert
drwxr-xr-x. 2 root root 6 Sep 24 14:12 data
-rw-r--r--. 1 root root 30608 Sep 8 22:02 LICENSE-Community.txt
drwxr-xr-x. 2 root root 25 Sep 24 14:13 logs
-rw-r--r--. 1 root root 16726 Sep 8 22:02 MPL-2
-rw-r--r--. 1 root root 1977 Sep 8 22:02 README
-rw-r--r--. 1 root root 75685 Sep 8 22:02 THIRD-PARTY-NOTICES
[root@localhost mongodb]#
[root@localhost mongodb]# touch start.sh
[root@localhost mongodb]#
[root@localhost mongodb]# ll
total 132
drwxr-xr-x. 2 root root 89 Sep 24 13:50 bin
drwxr-xr-x. 2 root root 22 Sep 24 13:33 cert
drwxr-xr-x. 2 root root 6 Sep 24 14:12 data
-rw-r--r--. 1 root root 30608 Sep 8 22:02 LICENSE-Community.txt
drwxr-xr-x. 2 root root 25 Sep 24 14:13 logs
-rw-r--r--. 1 root root 16726 Sep 8 22:02 MPL-2
-rw-r--r--. 1 root root 1977 Sep 8 22:02 README
-rw-r--r--. 1 root root 0 Sep 24 14:19 start.sh
-rw-r--r--. 1 root root 75685 Sep 8 22:02 THIRD-PARTY-NOTICES
[root@localhost mongodb]#
[root@localhost mongodb]# chmod -R 777 start.sh
[root@localhost mongodb]#
[root@localhost mongodb]# ll
total 132
drwxr-xr-x. 2 root root 89 Sep 24 13:50 bin
drwxr-xr-x. 2 root root 22 Sep 24 13:33 cert
drwxr-xr-x. 2 root root 6 Sep 24 14:12 data
-rw-r--r--. 1 root root 30608 Sep 8 22:02 LICENSE-Community.txt
drwxr-xr-x. 2 root root 25 Sep 24 14:13 logs
-rw-r--r--. 1 root root 16726 Sep 8 22:02 MPL-2
-rw-r--r--. 1 root root 1977 Sep 8 22:02 README
-rwxrwxrwx. 1 root root 0 Sep 24 14:19 start.sh
-rw-r--r--. 1 root root 75685 Sep 8 22:02 THIRD-PARTY-NOTICES
[root@localhost mongodb]#
[root@localhost mongodb]# vim start.sh
start.sh脚本文件内容如下:
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongod.conf --fork
2、启动脚本
[root@localhost /]# cd /usr/local/mongodb
[root@localhost mongodb]#
[root@localhost mongodb]# ll
total 132
drwxr-xr-x. 2 root root 89 Sep 24 13:50 bin
drwxr-xr-x. 2 root root 22 Sep 24 13:33 cert
drwxr-xr-x. 2 root root 6 Sep 24 14:12 data
-rw-r--r--. 1 root root 30608 Sep 8 22:02 LICENSE-Community.txt
drwxr-xr-x. 2 root root 25 Sep 24 14:13 logs
-rw-r--r--. 1 root root 16726 Sep 8 22:02 MPL-2
-rw-r--r--. 1 root root 1977 Sep 8 22:02 README
-rwxrwxrwx. 1 root root 0 Sep 24 14:19 start.sh
-rw-r--r--. 1 root root 75685 Sep 8 22:02 THIRD-PARTY-NOTICES
[root@localhost mongodb]#
[root@localhost mongodb]#
[root@localhost mongodb]# ./start.sh
about to fork child process, waiting until server is ready for connections.
forked process: 8511
child process started successfully, parent exiting
[root@localhost mongodb]#
[root@localhost mongodb]#
[root@localhost mongodb]#
五、创建副本集config、初始化副本集
1、随机选择一台机器登录mongodb,创建副本集config,如下:
[root@localhost /]#
[root@localhost /]# cd /usr/local/mongodb/bin/
[root@localhost bin]#
[root@localhost bin]# ll
total 194816
-rwxr-xr-x. 1 root root 7684 Sep 8 22:40 install_compass
-rwxr-xr-x. 1 root root 53364072 Sep 8 22:32 mongo
-rwxr-xr-x. 1 root root 81924576 Sep 8 22:30 mongod
-rwxrwxrwx. 1 root root 903 Sep 24 14:41 mongod.conf
-rwxr-xr-x. 1 root root 64181144 Sep 8 22:31 mongos
[root@localhost bin]#
[root@localhost bin]# ./mongo
MongoDB shell version v4.4.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("4dd708b1-2b78-48bf-9868-011e807f874c") }
MongoDB server version: 4.4.1
>
> use admin
switched to db admin
>
> config={_id:'mongo_rep',members:[{_id:0, host:'192.168.163.125:27017'},{_id:1, host:'192.168.163.126:27017'},{_id:2, host:'192.168.163.127:27017'},{_id:3, host:'192.168.163.128:27017'}]}
{
"_id" : "mongo_rep",
"members" : [
{
"_id" : 0,
"host" : "192.168.163.125:27017"
},
{
"_id" : 1,
"host" : "192.168.163.126:27017"
},
{
"_id" : 2,
"host" : "192.168.163.127:27017"
},
{
"_id" : 3,
"host" : "192.168.163.128:27017"
}
]
}
>rs.initiate(config)
{
"info" : "Config now saved locally. Should come online in about a minute.",
"ok" : 1
}
>rs.status()
{
"set" : "mongo_rep",
"date" : ISODate("2020-09-24T07:07:13.190Z"),
"myState" : 1,
"term" : NumberLong(1),
"syncSourceHost" : "",
"syncSourceId" : -1,
"heartbeatIntervalMillis" : NumberLong(2000),
"majorityVoteCount" : 3,
"writeMajorityCount" : 3,
"votingMembersCount" : 4,
"writableVotingMembersCount" : 4,
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(1600931233, 1),
"t" : NumberLong(1)
},
"lastCommittedWallTime" : ISODate("2020-09-24T07:07:13.136Z"),
"readConcernMajorityOpTime" : {
"ts" : Timestamp(1600931233, 1),
"t" : NumberLong(1)
},
"readConcernMajorityWallTime" : ISODate("2020-09-24T07:07:13.136Z"),
"appliedOpTime" : {
"ts" : Timestamp(1600931233, 1),
"t" : NumberLong(1)
},
"durableOpTime" : {
"ts" : Timestamp(1600931231, 1),
"t" : NumberLong(1)
},
"lastAppliedWallTime" : ISODate("2020-09-24T07:07:13.136Z"),
"lastDurableWallTime" : ISODate("2020-09-24T07:07:11.313Z")
},
"lastStableRecoveryTimestamp" : Timestamp(1600931200, 74),
"electionCandidateMetrics" : {
"lastElectionReason" : "electionTimeout",
"lastElectionDate" : ISODate("2020-09-22T18:32:34.673Z"),
"electionTerm" : NumberLong(1),
"lastCommittedOpTimeAtElection" : {
"ts" : Timestamp(0, 0),
"t" : NumberLong(-1)
},
"lastSeenOpTimeAtElection" : {
"ts" : Timestamp(1600799543, 1),
"t" : NumberLong(-1)
},
"numVotesNeeded" : 3,
"priorityAtElection" : 1,
"electionTimeoutMillis" : NumberLong(10000),
"numCatchUpOps" : NumberLong(0),
"newTermStartDate" : ISODate("2020-09-22T18:32:34.832Z"),
"wMajorityWriteAvailabilityDate" : ISODate("2020-09-22T18:39:05.968Z")
},
"members" : [
{
"_id" : 0,
"name" : "192.168.163.125:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 132106,
"optime" : {
"ts" : Timestamp(1600931233, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2020-09-24T07:07:13Z"),
"syncSourceHost" : "",
"syncSourceId" : -1,
"infoMessage" : "",
"electionTime" : Timestamp(1600799554, 1),
"electionDate" : ISODate("2020-09-22T18:32:34Z"),
"configVersion" : 1,
"configTerm" : 1,
"self" : true,
"lastHeartbeatMessage" : ""
},
{
"_id" : 1,
"name" : "192.168.163.126:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 130852,
"optime" : {
"ts" : Timestamp(1600931231, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1600931231, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2020-09-24T07:07:11Z"),
"optimeDurableDate" : ISODate("2020-09-24T07:07:11Z"),
"lastHeartbeat" : ISODate("2020-09-24T07:07:12.460Z"),
"lastHeartbeatRecv" : ISODate("2020-09-24T07:07:12.883Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncSourceHost" : "69.172.90.216:27017",
"syncSourceId" : 2,
"infoMessage" : "",
"configVersion" : 1,
"configTerm" : 1
},
{
"_id" : 2,
"name" : "192.168.163.127:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 131689,
"optime" : {
"ts" : Timestamp(1600931231, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1600931231, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2020-09-24T07:07:11Z"),
"optimeDurableDate" : ISODate("2020-09-24T07:07:11Z"),
"lastHeartbeat" : ISODate("2020-09-24T07:07:12.335Z"),
"lastHeartbeatRecv" : ISODate("2020-09-24T07:07:12.882Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncSourceHost" : "69.172.90.195:27017",
"syncSourceId" : 0,
"infoMessage" : "",
"configVersion" : 1,
"configTerm" : 1
},
{
"_id" : 3,
"name" : "192.168.163.128:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 131689,
"optime" : {
"ts" : Timestamp(1600931231, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1600931231, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2020-09-24T07:07:11Z"),
"optimeDurableDate" : ISODate("2020-09-24T07:07:11Z"),
"lastHeartbeat" : ISODate("2020-09-24T07:07:12.702Z"),
"lastHeartbeatRecv" : ISODate("2020-09-24T07:07:11.260Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncSourceHost" : "69.172.90.216:27017",
"syncSourceId" : 2,
"infoMessage" : "",
"configVersion" : 1,
"configTerm" : 1
}
],
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1600931233, 1),
"signature" : {
"hash" : BinData(0,"9k1zB7qL3SJSuKmgZEL4QNb4z7E="),
"keyId" : NumberLong("6875381731881385987")
}
},
"operationTime" : Timestamp(1600931233, 1)
}
>
_id : "mongo_rep"
表示副本集名称,与前面mongod.conf配置文件中的replSetName参数配置的名称必须一致。