Definição
replSetGetStatusO comando
replSetGetStatusretorna o status do conjunto de réplicas conforme visto pelo servidor que processou o comando. ExecutereplSetGetStatusno banco de dados admin.The
mongodinstance must be a replica set member forreplSetGetStatusto return successfully.Este comando deriva seus dados de heartbeats enviados por outros nós do conjunto de réplicas. Devido à frequência dos heartbeats, esses dados podem estar desatualizados em vários segundos.
Dica
In
mongosh, this command can also be run through thers.status()helper method.Helper methods are convenient for
mongoshusers, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
Importante
This command is not supported in M0 and Flex clusters. For more information, see Unsupported Commands.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
O comando tem a seguinte sintaxe:
db.adminCommand( { replSetGetStatus: 1 } )
If you run replSetGetStatus or the mongosh helper rs.status() on a member during its initial sync in the STARTUP2 state, the command returns replSetGetStatus.initialSyncStatus metrics.
After the member completes the initial synchronization and transitions to another state, the replSetGetStatus.initialSyncStatus metrics are no longer available.
Observação
Se você ainda não tiver initialized seu conjunto de réplicas, o comando replSetGetStatus retornará o seguinte erro:
MongoServerError: no replset config has been received
Execute o comando replSetInitiate e tente novamente.
Exemplo
The following example runs the replSetGetStatus command on the admin database of the replica set primary:
db.adminCommand( { replSetGetStatus: 1 } )
O comando retorna o seguinte resultado para um exemplo de conjunto de réplicas definido como primary:
{ "set" : "replset", "date" : ISODate("2024-08-15T23:06:13.978Z"), "myState" : 1, "term" : Long(3), "syncSourceHost" : "", "syncSourceId" : -1, "heartbeatIntervalMillis" : Long(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 3, "writableVotingMembersCount" : 3, "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "lastCommittedWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "readConcernMajorityOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "appliedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "writtenOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "durableOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "lastAppliedWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime" : ISODate("2024-08-15T23:06:13.978Z") }, "lastStableRecoveryTimestamp" : Timestamp(1723763173, 1), "electionCandidateMetrics" : { "lastElectionReason" : "stepUpRequestSkipDryRun", "lastElectionDate" : ISODate("2024-08-15T23:06:13.978Z"), "electionTerm" : Long(3), "lastCommittedOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : Long(2) }, "lastSeenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : Long(2) }, "lastSeenWrittenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : Long(1) }, "numVotesNeeded" : 2, "priorityAtElection" : 1, "electionTimeoutMillis" : Long(10000), "priorPrimaryMemberId" : 1, "numCatchUpOps" : Long(0), "newTermStartDate" : ISODate("2024-08-15T23:06:13.978Z"), "wMajorityWriteAvailabilityDate" : ISODate("2024-08-15T23:06:13.978Z") }, "electionParticipantMetrics" : { "votedForCandidate" : true, "electionTerm" : Long(2), "lastVoteDate" : ISODate("2024-08-15T23:06:13.978Z"), "electionCandidateMemberId" : 1, "voteReason" : "", "lastAppliedOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : Long(1) }, "lastWrittenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : Long(1) }, "maxAppliedOpTimeInSet" : { "ts" : Timestamp(1723763173, 1), "t" : Long(1) }, "priorityAtElection" : 1 }, "members" : [ { "_id" : 0, "name" : "m1.example.net:27017", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 269, "optime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeWrittenDate" : ISODate("2024-08-15T23:06:13.978Z"), "lastAppliedWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastStableRecoveryTimestamp" : Timestamp(1723763173, 1), "syncSourceHost" : "", "syncSourceId" : -1, "infoMessage" : "", "electionTime" : Timestamp(1723763173, 1), "electionDate" : ISODate("2024-08-15T23:06:13.978Z"), "configVersion" : 1, "configTerm" : 0, "self" : true, "lastHeartbeatMessage" : "" }, { "_id" : 1, "name" : "m2.example.net:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 266, "optime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeWrittenDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeDurableDate" : ISODate("2024-08-15T23:06:13.978Z"), "lastAppliedWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeat" : ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeatRecv" : ISODate("2024-08-15T23:06:13.978Z"), "lastStableRecoveryTimestamp" : Timestamp(1723763173, 1), "pingMs" : Long(0), "lastHeartbeatMessage" : "", "syncSourceHost" : "m3.example.net:27017", "syncSourceId" : 2, "infoMessage" : "", "configVersion" : 1 }, { "_id" : 2, "name" : "m3.example.net:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 266, "optime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeWrittenDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeDurableDate" : ISODate("2024-08-15T23:06:13.978Z"), "lastAppliedWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeat" : ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeatRecv" : ISODate("2024-08-15T23:06:13.978Z"), "lastStableRecoveryTimestamp" : Timestamp(1723763173, 1), "pingMs" : Long(0), "lastHeartbeatMessage" : "", "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "infoMessage" : "", "configVersion" : 1 } ], "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1723763173, 1), "signature" : { "hash" : BinData(0,"9C2qcGVkipEGJW3iF90qxb/gIwc="), "keyId" : Long("6800589497806356482") } }, "operationTime" : Timestamp(1723763173, 1) }
The following example runs the replSetGetStatus command on the admin database of the replica set secondary:
db.adminCommand( { replSetGetStatus: 1 } )
O comando retorna a seguinte saída para um exemplo de conjunto de réplicas secundário:
{ "set" : "replset", "date" : ISODate("2024-08-15T23:06:13.978Z"), "myState" : 2, "term" : Long(3), "syncSourceHost" : "m3.example.net:27017", "syncSourceId" : 2, "heartbeatIntervalMillis" : Long(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 3, "writableVotingMembersCount" : 3, "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "lastCommittedWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "readConcernMajorityOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "writtenOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "appliedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "durableOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "lastAppliedWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime" : ISODate("2024-08-15T23:06:13.978Z") }, "lastStableRecoveryTimestamp" : Timestamp(1723763173, 1), "electionParticipantMetrics" : { "votedForCandidate" : true, "electionTerm" : Long(3), "lastVoteDate" : ISODate("2024-08-15T23:06:13.978Z"), "electionCandidateMemberId" : 0, "voteReason" : "", "lastAppliedOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : Long(2) }, "lastWrittenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : Long(1) }, "maxAppliedOpTimeInSet" : { "ts" : Timestamp(1723763173, 1), "t" : Long(2) }, "maxWrittenOpTimeInSet" : { "ts" : Timestamp(1723763173, 1), "t" : Long(1) }, "priorityAtElection" : 1, "newTermStartDate" : ISODate("2024-08-15T23:06:13.978Z"), "newTermAppliedDate" : ISODate("2024-08-15T23:06:13.978Z") }, "members" : [ { "_id" : 0, "name" : "m1.example.net:27017", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 407, "optime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeWrittenDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeDurableDate" : ISODate("2024-08-15T23:06:13.978Z"), "lastAppliedWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeat" : ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeatRecv" : ISODate("2024-08-15T23:06:13.978Z"), "lastStableRecoveryTimestamp" : Timestamp(1723763173, 1), "pingMs" : Long(0), "lastHeartbeatMessage" : "", "syncSourceHost" : "", "syncSourceId" : -1, "infoMessage" : "", "electionTime" : Timestamp(1723763173, 1), "electionDate" : ISODate("2024-08-15T23:06:13.978Z"), "configVersion" : 1 }, { "_id" : 1, "name" : "m2.example.net:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 409, "optime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeWrittenDate" : ISODate("2024-08-15T23:06:13.978Z"), "lastAppliedWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastStableRecoveryTimestamp" : Timestamp(1723763173, 1), "syncSourceHost" : "m3.example.net:27017", "syncSourceId" : 2, "infoMessage" : "", "configVersion" : 1, "configTerm" : 0, "self" : true, "lastHeartbeatMessage" : "" }, { "_id" : 2, "name" : "m3.example.net:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 407, "optime" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : Long(3) }, "optimeDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeWrittenDate" : ISODate("2024-08-15T23:06:13.978Z"), "optimeDurableDate" : ISODate("2024-08-15T23:06:13.978Z"), "lastAppliedWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastWrittenWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastDurableWallTime": ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeat" : ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeatRecv" : ISODate("2024-08-15T23:06:13.978Z"), "lastStableRecoveryTimestamp" : Timestamp(1723763173, 1), "pingMs" : Long(0), "lastHeartbeatMessage" : "", "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "infoMessage" : "", "configVersion" : 1 } ], "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1723763173, 1), "signature" : { "hash" : BinData(0,"kmhE5YARZlzn/DX4B/D0E5P6okY="), "keyId" : Long("6800589497806356482") } }, "operationTime" : Timestamp(1723763173, 1), }
- Em versões anteriores (3.6.x-4.2.0)
You can include the optional
initialSync: 1to include thereplSetGetStatus.initialSyncStatusin the output (you can omit if you do not want to return the initial sync status):db.adminCommand( { replSetGetStatus: 1, initialSync: 1 } )
- A partir do MongoDB 5.2,
- the
replSetGetStatus.initialSyncStatusdocument contains additional fields when using a file copy based initial sync.
If you run replSetGetStatus on a member during its initial sync, the command returns replSetGetStatus.initialSyncStatus metrics.
db.adminCommand( { replSetGetStatus: 1 } )
After the member completes the initial synchronization and transitions to another state, the replSetGetStatus.initialSyncStatus metrics are no longer available.
Starting in MongoDB 9.0, to return summary initial sync metrics without the per-database and per-collection cloning details, include the optional initialSync: 2 field. Summary mode returns aggregate counts in the databases document and omits the per-database sub-documents:
db.adminCommand( { replSetGetStatus: 1, initialSync: 2 } )
O modo de resumo tem um tamanho de saída menor, o que o torna adequado para a coleção contínua de dados de diagnóstico.
The following example runs the replSetGetStatus command on the admin database of the 4.4 replica set member during its initial sync:
{ "set" : "replset", "date" : ISODate("2024-08-15T23:06:13.978Z") "myState" : 5, "term" : Long(1), "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "heartbeatIntervalMillis" : Long(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 2, "writableVotingMembersCount" : 2, "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(0, 0), "t" : Long(-1) }, "lastCommittedWallTime" : ISODate("1970-01-01T00:00:00Z"), "appliedOpTime" : { "ts" : Timestamp(0, 0), "t" : Long(-1) }, "writtenOpTime": { "ts" : Timestamp(0, 0), "t" : Long(-1) }, "durableOpTime" : { "ts" : Timestamp(0, 0), "t" : Long(-1) }, "lastAppliedWallTime" : ISODate("1970-01-01T00:00:00Z"), "lastWrittenWallTime": ISODate("1970-01-01T00:00:00Z"), "lastDurableWallTime" : ISODate("1970-01-01T00:00:00Z") }, "lastStableRecoveryTimestamp" : Timestamp(0, 0), "initialSyncStatus" : { "failedInitialSyncAttempts" : 0, "maxFailedInitialSyncAttempts" : 10, "totalAttempts" : 1, "phase" : "cloningData", "bytesPerSecond" : 120942.8, "initialSyncStart" : ISODate("2024-08-15T23:06:13.978Z"), "initialSyncAttempts" : [ ], "appliedOps" : 0, "initialSyncOplogStart" : Timestamp(1723763173, 1), "syncSourceUnreachableSince" : ISODate("2024-08-15T23:06:13.978Z"), "currentOutageDurationMillis" : Long(8687), "totalTimeUnreachableMillis" : Long(8687), "databases" : { "databasesCloned" : 3, "admin" : { "collections" : 4, "clonedCollections" : 4, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 429, "admin.system.roles" : { "documentsToCopy" : 22, "documentsCopied" : 22, "indexes" : 2, "fetchedBatches" : 1, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 138, "receivedBatches" : 1 }, "admin.system.users" : { "documentsToCopy" : 32, "documentsCopied" : 32, "indexes" : 2, "fetchedBatches" : 1, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 149, "receivedBatches" : 1 }, "admin.system.keys" : { "documentsToCopy" : 2, "documentsCopied" : 2, "indexes" : 1, "fetchedBatches" : 1, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 76, "receivedBatches" : 1 }, "admin.system.version" : { "documentsToCopy" : 2, "documentsCopied" : 2, "indexes" : 1, "fetchedBatches" : 1, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 66, "receivedBatches" : 1 } }, "config" : { "collections" : 2, "clonedCollections" : 2, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 198, "config.transactions" : { "documentsToCopy" : 0, "documentsCopied" : 0, "indexes" : 1, "fetchedBatches" : 0, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 74, "receivedBatches" : 0 }, "config.system.sessions" : { "documentsToCopy" : 0, "documentsCopied" : 0, "indexes" : 2, "fetchedBatches" : 0, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 124, "receivedBatches" : 0 } }, "test" : { "collections" : 1, "clonedCollections" : 1, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 47967, "test.hugeindex" : { "documentsToCopy" : 25000, "documentsCopied" : 25000, "indexes" : 2, "fetchedBatches" : 21, "start" : ISODate("2024-08-15T23:06:13.978Z"), "end" : ISODate("2024-08-15T23:06:13.978Z"), "elapsedMillis" : 47967, "receivedBatches" : 21 } } } }, "members" : [ { "_id" : 0, "name" : "m1.example.net:27017", "health" : 0, "state" : 8, "stateStr" : "(not reachable/healthy)", "uptime" : 0, "optime" : { "ts" : Timestamp(0, 0), "t" : Long(-1) }, "optimeWritten" : { "ts" : Timestamp(0, 0), "t" : Long(-1) }, "optimeDurable" : { "ts" : Timestamp(0, 0), "t" : Long(-1) }, "optimeDate" : ISODate("1970-01-01T00:00:00Z"), "optimeWrittenDate" : ISODate("1970-01-01T00:00:00Z"), "optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"), "lastAppliedWallTime": ISODate("1970-01-01T00:00:00Z"), "lastWrittenWallTime": ISODate("1970-01-01T00:00:00Z"), "lastDurableWallTime": ISODate("1970-01-01T00:00:00Z"), "lastHeartbeat" : ISODate("2024-08-15T23:06:13.978Z"), "lastHeartbeatRecv" : ISODate("2024-08-15T23:06:13.978Z"), "pingMs" : Long(0), "lastHeartbeatMessage" : "Error connecting to m1.example.net:27017 (127.0.0.1:27018) :: caused by :: Connection refused", "syncSourceHost" : "", "syncSourceId" : -1, "infoMessage" : "", "configVersion" : 2 }, { "_id" : 1, "name" : "m2.example.net:27017", "health" : 1, "state" : 5, "stateStr" : "STARTUP2", "uptime" : 5297, "optime" : { "ts" : Timestamp(0, 0), "t" : Long(-1) }, "optimeWritten" : { "ts" : Timestamp(0, 0), "t" : Long(-1) }, "optimeDurable" : { "ts" : Timestamp(0, 0), "t" : Long(-1) }, "optimeDate" : ISODate("1970-01-01T00:00:00Z"), "optimeWrittenDate" : ISODate("1970-01-01T00:00:00Z"), "lastAppliedWallTime": ISODate("1970-01-01T00:00:00Z"), "lastWrittenWallTime": ISODate("2020-03-05T05:24:38Z"), "lastDurableWallTime": ISODate("1970-01-01T00:00:00Z"), "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "infoMessage" : "", "configVersion" : 2, "configTerm" : 1, "self" : true, "lastHeartbeatMessage" : "" } ], "ok" : 1 }
Saída
O comando replSetGetStatus retorna um documento com os seguintes campos:
replSetGetStatus.setO valor
seté o nome do conjunto de réplicas, configurado na configuraçãoreplSetName. Este é o mesmo valor que_idemrs.conf().
replSetGetStatus.dateAn ISODate formatted date and time that contains the current time according to the server that processed the replSetGetStatus command. Compare this to the values of
replSetGetStatus.members[n].lastHeartbeatto find the operational latency between this server and the other members of the replica set.
replSetGetStatus.myStateUm número inteiro entre
0e10que representa o estado de réplica do membro atual.
replSetGetStatus.termThe election count for the replica set, as known to this replica set member. The
termis used by the distributed consensus algorithm to ensure correctness.
replSetGetStatus.syncSourceHostThe
syncSourceHostfield holds the hostname of the member from which this instance syncs.If this instance is a primary,
syncSourceHostis an empty string and thesyncSourceId-1.
replSetGetStatus.syncSourceIdThe
syncSourceIdfield holds thereplSetGetStatus.members[n]._idof the member from which this instance synchronizes.If this instance is a primary,
syncSourceHostis an empty string and thesyncSourceId-1.
replSetGetStatus.majorityVoteCountO número de votos majoritários necessários para eleger uma nova primária em uma eleição.
replSetGetStatus.writeMajorityCountO número de nós votantes portadores de dados necessários para atender à write concern
"majority". As gravações só podem ser aplicadas a nós que contêm dados.For the calculation of
replSetGetStatus.writeMajorityCount, see Calculating Majority for Write Concern.
replSetGetStatus.votingMembersCountO número de membros configurados com
votes: 1, incluindo árbitros.
replSetGetStatus.writableVotingMembersCountO número de membros portadores de dados configurados com
votes: 1(isso não inclui árbitros).
replSetGetStatus.optimesO campo
optimescontém um documento contendo optimes usados para inspecionar o progresso da replicação. O campooptimesinclui as strings de datas formatadas em ISODate correspondentes para os vários optimes.Cada valor de optime é um documento que contém:
ts, o timestamp da operação.t, thetermin which the operation was originally generated on the primary.
replSetGetStatus.optimes.lastCommittedOpTimeInformação, do ponto de vista deste membro, sobre a operação mais recente que foi gravada para a maioria dos membros do conjunto de réplicas.
replSetGetStatus.optimes.lastCommittedWallTimeThe ISODate-formatted date string corresponding to
lastCommittedOpTime.
replSetGetStatus.optimes.readConcernMajorityOpTimeInformation, from the viewpoint of this member, regarding the most recent operation that can fulfill read concern
"majority"queries. That is, the most recentlastCommittedOpTimethat can fulfill"majority"queries.readConcernMajorityOpTimeis either less than or equal tolastCommittedOpTime.
replSetGetStatus.optimes.appliedOpTimeInformação, do ponto de vista deste membro, sobre a operação mais recente que foi aplicada a este membro do conjunto de réplicas.
replSetGetStatus.optimes.lastAppliedWallTimeThe ISODate-formatted date string corresponding to
appliedOpTime.
replSetGetStatus.optimes.durableOpTimeInformação, do ponto de vista deste nó, sobre a operação mais recente que foi gravada para o diário deste nó do conjunto de réplicas.
replSetGetStatus.optimes.lastDurableWallTimeThe ISODate-formatted date string corresponding to
durableOpTime.
replSetGetStatus.optimes.lastWrittenWallTimeA string de data formatada IsoDate da entrada mais recente gravada no oplog desse membro.
Novidades na versão 8.0.
replSetGetStatus.optimes.writtenOpTimeO optime da entrada mais recente gravada no oplog desse membro.
Novidades na versão 8.0.
replSetGetStatus.electionCandidateMetricsMetrics related to the election of the current primary.
electionCandidateMetricsis only available on the primary or a candidate for election. For a candidate, the metrics are unavailable after the candidate loses the election.replSetGetStatus.electionCandidateMetrics.lastElectionReasonMotivo pelo qual o membro convocou a eleição.
replSetGetStatus.electionCandidateMetrics.lastElectionDateA data e a hora em que o membro convocou a eleição.
replSetGetStatus.electionCandidateMetrics.electionTermThe member's election count (that is,
term) at the time it called the new election.
replSetGetStatus.electionCandidateMetrics.lastCommittedOpTimeAtElectionThe most recent
majority-committed optime, as seen by this member, at the time it called the new election.
replSetGetStatus.electionCandidateMetrics.lastSeenOpTimeAtElectionThe member's most recent
applied optimeat the time it called the new election.
replSetGetStatus.electionCandidateMetrics.lastSeenWrittenOpTimeAtElectionO optime da entrada mais recente escrita no oplog deste membro no momento em que ele convocou a nova eleição.
Novidades na versão 8.0.
replSetGetStatus.electionCandidateMetrics.numVotesNeededO número de votos necessários para vencer a eleição.
replSetGetStatus.electionCandidateMetrics.priorityAtElectionO
prioritydo membro no momento em que convocou a eleição.
replSetGetStatus.electionCandidateMetrics.electionTimeoutMillisO conjunto de réplicas configurou o cenário
electionTimeoutMillisno momento da eleição.
replSetGetStatus.electionCandidateMetrics.priorPrimaryMemberIdO
members[n]._idda primária anterior. Se não houver primária anterior, o campo não estará presente.
replSetGetStatus.electionCandidateMetrics.targetCatchupOpTimeO optime alvo da primária recém-eleita para seu processo de catchup. Somente quando a primária recém-eleita atingir o optime de catchup alvo ele poderá começar a aceitar gravações.
replSetGetStatus.electionCandidateMetrics.numCatchUpOpsO número de operações aplicadas pela primária recém-eleita à medida que conclui com êxito o seu processo de recuperação.
replSetGetStatus.electionCandidateMetrics.newTermStartDateA data e a hora em que o termo do nó como principal começou (ou seja, a data e a hora em que uma entrada
new termfoi gravada no oplog).
replSetGetStatus.electionCandidateMetrics.wMajorityWriteAvailabilityDateA data e a hora em que a pergunta de escrita
"majority"ficou disponível após a eleição para o conjunto de réplicas (a data e a hora em que a entrada oplognew termfoi confirmada por maioria).
replSetGetStatus.electionParticipantMetricsMétricas relacionadas à última eleição em que o membro participou.
replSetGetStatus.electionParticipantMetrics.votedForCandidateUm booleano que indica se o membro votou no candidato que convocou a eleição.
replSetGetStatus.electionParticipantMetrics.electionTermO termo da eleição em que o membro participou. O termo identifica a eleição associada às métricas do participante.
replSetGetStatus.electionParticipantMetrics.lastVoteDateUma string de data formatada em IsoDate que registra quando o participante votou.
replSetGetStatus.electionParticipantMetrics.electionCandidateMemberIdO
members[n]._iddo candidato convocando a eleição.
replSetGetStatus.electionParticipantMetrics.voteReasonO motivo do voto se o membro não votou no candidato. Se o membro votou no candidato, o valor é uma cadeia de caracteres vazia.
replSetGetStatus.electionParticipantMetrics.lastAppliedOpTimeAtElectionO último optime aplicado deste membro no momento da última eleição.
O valor ideal é um documento que contém o registro de data/hora (
ts) e o termo (t).
replSetGetStatus.electionParticipantMetrics.lastWrittenOpTimeAtElectionO optime da entrada mais recente escrita no oplog desse membro na época da última eleição.
Novidades na versão 8.0.
replSetGetStatus.electionParticipantMetrics.maxAppliedOpTimeInSetO optime aplicado mais recente para qualquer membro desse conjunto de réplicas, conforme conhecido por esse membro.
replSetGetStatus.electionParticipantMetrics.maxWrittenOpTimeInSetO optime da entrada mais recente gravada no oplog de qualquer membro do conjunto de réplicas, conforme conhecido por esse membro.
Novidades na versão 8.0.
replSetGetStatus.electionParticipantMetrics.priorityAtElectionO
prioritydo membro no momento da eleição.
replSetGetStatus.electionParticipantMetrics.newTermStartDateA data e a hora em que o mandato da primária eleita começou; isso corresponde a quando a primária escreveu a entrada
new termem seu oplog e não quando a entrada foi adicionada (ou seja, replicada) para o oplog do segundo.The field is available for secondary members only. For the primary, see
replSetGetStatus.electionCandidateMetrics.newTermStartDateinstead.
replSetGetStatus.initialSyncStatusUm documento que fornece informações sobre o progresso e o status da initial sync neste membro.
Importante
Disponibilidade
replSetGetStatus.initialSyncStatusmetrics are only available when run on a member during its initial sync, in theSTARTUP2state.replSetGetStatus.initialSyncStatus.failedInitialSyncAttemptsO número de vezes que a sincronização inicial falhou e teve que reiniciar neste nó.
replSetGetStatus.initialSyncStatus.maxFailedInitialSyncAttemptsO número máximo de vezes que a sincronização inicial pode ser reiniciada neste nó antes que o nó seja desligado.
replSetGetStatus.initialSyncStatus.initialSyncStartO registro de data/hora inicial da sincronização inicial deste nó.
replSetGetStatus.initialSyncStatus.initialSyncEndO registro de data/hora final da sincronização inicial deste nó.
replSetGetStatus.initialSyncStatus.initialSyncElapsedMillisThe number of milliseconds between
initialSyncStartandinitialSyncEnd.
replSetGetStatus.initialSyncStatus.initialSyncAttemptsArray de documentos onde cada documento corresponde a uma única tentativa de initial sync . Por exemplo:
"initialSyncAttempts" : [ { "durationMillis" : 59539, "status" : "InvalidOptions: error fetching oplog during initial sync :: caused by :: Error while getting the next batch in the oplog fetcher :: caused by :: readConcern afterClusterTime value must not be greater than the current clusterTime. Requested clusterTime: { ts: Timestamp(0, 1) }; current clusterTime: { ts: Timestamp(0, 0) }", "syncSource" : "m1.example.net:27017", "rollBackId" : 1, "operationsRetried" : 120, "totalTimeUnreachableMillis" : 52601, "phase" : "cloningData", "nodeUptimeSecs" : 47, "phaseDurations" : [ { "phase" : "selectingSyncSource", "durationMillis" : 12 }, { "phase" : "cloningData", "durationMillis" : 59527 } ] } ], Cada documento contém as seguintes informações para a tentativa de initial sync:
CampoDescriçãodurationMillis
Duração em milissegundos da tentativa de initial sync.
Status
Sair do status da tentativa de initial sync.
syncSource
Fonte de sincronização para a tentativa de initial sync.
rollBackId
O identificador de rollback da fonte de sincronização no início da tentativa de sincronização inicial.
rollBackIdnão aparece ao usar a initial sync baseada em cópia de arquivo.operationsRetried
Número total de todas as tentativas de repetição de operação.
totalTimeUnreachableMillis
Tempo total gasto em tentativas de repetição de operação.
fase
A fase de sincronização inicial em que a tentativa estava quando terminou, ou
completese a tentativa foi bem-sucedida.Novidades na versão 9.0.
Este campo só aparece ao usar a sincronização inicial lógica.
nodeUptimeSecs
O tempo de atividade do relógio de parede do nó, em segundos, no momento em que a tentativa terminou.
Novidades na versão 9.0.
Este campo só aparece ao usar a sincronização inicial lógica.
phaseDurations
array de documento, cada um relatório o nome
phasee seudurationMillis, para cada fase de sincronização inicial pela qual a tentativa passou.Novidades na versão 9.0.
Este campo só aparece ao usar a sincronização inicial lógica.
See also
failedInitialSyncAttempts.
replSetGetStatus.initialSyncStatus.appliedOpsO número de operações que ocorreram após o início da initial sync e foram aplicadas após a clonagem dos bancos de dados.
Como parte do processo de initial sync, o membro usa o oplog para atualizar seu conjunto de dados para refletir o estado atual do conjunto de réplicas.
replSetGetStatus.initialSyncStatus.initialSyncOplogStartO registro de data/hora de início do estágio do aplicativo oplog da sincronização inicial em que o nó aplica as alterações que ocorreram após o início da sincronização inicial.
Como parte do processo de initial sync, o membro usa o oplog para atualizar seu conjunto de dados para refletir o estado atual do conjunto de réplicas.
replSetGetStatus.initialSyncStatus.initialSyncOplogEndA data e hora de término do estágio de aplicação oplog da initial sync em que o membro aplica as alterações que ocorreram após o início da sincronização inicial.
Como parte do processo de initial sync, o membro usa o oplog para atualizar seu conjunto de dados para refletir o estado atual do conjunto de réplicas.
replSetGetStatus.initialSyncStatus.syncSourceUnreachableSinceA data e a hora em que a fonte de sincronização se tornou inacessível.
Presente somente se a fonte de sincronização if não estiver disponível durante a initial sync atual.
replSetGetStatus.initialSyncStatus.currentOutageDurationMillisO tempo em milissegundos em que a fonte de sincronização ficou indisponível.
Presente somente se a fonte de sincronização if não estiver disponível durante a initial sync atual.
replSetGetStatus.initialSyncStatus.totalTimeUnreachableMillisO tempo total em milissegundos em que o nó esteve indisponível durante a sincronização inicial atual.
replSetGetStatus.initialSyncStatus.databasesDetalhes sobre os bancos de dados clonados durante a initial sync.
replSetGetStatus.initialSyncStatus.databases.databasesClonedNúmero de bancos de dados clonados durante a initial sync.
replSetGetStatus.initialSyncStatus.databases.databasesToCloneNúmero de bancos de dados que ainda precisam ser clonados durante a sincronização inicial.
replSetGetStatus.initialSyncStatus.databases.collectionsToCloneNovidades na versão 9.0.
Número total de coleção que ainda precisam ser clonadas em todos os banco de dados durante a sincronização inicial.
This aggregate count appears when you run
replSetGetStatuswithinitialSync: 2(summary mode).
replSetGetStatus.initialSyncStatus.databases.collectionsClonedNovidades na versão 9.0.
Número total de coleção clonadas em todos os banco de dados durante a sincronização inicial.
This aggregate count appears when you run
replSetGetStatuswithinitialSync: 2(summary mode).
replSetGetStatus.initialSyncStatus.databases.<dbname>Para cada banco de dados, um documento que retorna informações sobre o progresso da clonagem desse banco de dados.
{ "collections" : <number of collections to clone in the database>, "clonedCollections" : <number of collections cloned to date>, "start" : <start date and time for the database clone>, "end" : <end date and time for the database clone>, "elapsedMillis" : <duration of the database clone>, "<db>.<collection>" : { "documentsToCopy" : <number of documents to copy>, "documentsCopied" : <number of documents copied to date>, "indexes" : <number of indexes>, "fetchedBatches" : <number of batches of documents fetched to date>, "start" : <start date and time for the collection clone>, "end" : <end date and time for the collection clone>, "elapsedMillis" : <duration of the collection clone>, "receivedBatches" : <number of batches of documents received to date> } }
replSetGetStatus.initialSyncStatus.methodNovidades na versão 5.2.
O método usado para a initial sync.
Se configurado para
logical, a sincronização é uma initial sync lógica. Se configurado parafileCopyBased, a sincronização é uma initial sync baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.approxTotalDataSizeO tamanho aproximado (em bytes) de todos os arquivos a serem sincronizados.
Este campo aparece ao usar a initial sync lógica ou baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.approxTotalBytesCopiedO total de bytes já foi copiado.
Este campo aparece ao usar a initial sync lógica ou baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.totalInitialSyncElapsedMillisO tempo total decorrido para a tentativa de sincronização em andamento.
Este campo aparece ao usar a initial sync lógica ou baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.phaseA fase de sincronização inicial em que a tentativa de sincronização em andamento se encontra atualmente.
Novidades na versão 9.0.
Este campo só aparece ao usar a sincronização inicial lógica.
replSetGetStatus.initialSyncStatus.totalAttemptsO número total de tentativas de sincronização inicial até o momento, incluindo tentativas com falha e bem-sucedidas.
Novidades na versão 9.0.
Este campo só aparece ao usar a sincronização inicial lógica.
replSetGetStatus.initialSyncStatus.bytesPerSecondThe approximate rate, in bytes per second, at which data is copied during the sync attempt in progress. MongoDB derives this value from
approxTotalBytesCopiedand the elapsed time.Novidades na versão 9.0.
Este campo só aparece ao usar a sincronização inicial lógica.
replSetGetStatus.initialSyncStatus.remainingInitialSyncEstimatedMillisO tempo restante esperado para a tentativa de sincronização em andamento.
Este campo aparece ao usar a initial sync lógica ou baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.initialBackupDataSizeO tamanho total (em bytes) do conjunto inicial de arquivos a ser sincronizado.
Este campo só aparece ao usar a initial sync baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.previousOplogEndO optime disponível no cursor de backup anterior.
Este campo só aparece ao usar a initial sync baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.currentOplogEndO último optime garantido está disponível no cursor de backup atual.
Este campo só aparece ao usar a initial sync baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.syncSourceLastAppliedO optime da última atualização aplicada na fonte de sincronização antes do início desse cursor de backup.
Este campo só aparece ao usar a initial sync baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.numExtensionsO número de vezes que a sincronização iniciou um novo cursor de backup.
Este campo não aparece se um cursor de backup não tiver sido iniciado.
Este campo só aparece ao usar a initial sync baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.extensionDataSizeThe total bytes in the current extension.
Esse campo não aparece se não houver nenhuma extensão em andamento.
Este campo só aparece ao usar a initial sync baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.filesUma array de arquivos a serem sincronizados durante a initial sync baseada em cópia de arquivos.
Este campo só aparece ao usar a initial sync baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.files[n].filePathO caminho do arquivo relativo à raiz do cursor de backup.
Este campo só aparece ao usar a initial sync baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.files[n].fileSizeO tamanho do arquivo conforme relatado pelo cursor de backup.
Este campo só aparece ao usar a initial sync baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.files[n].bytesCopiedO número de bytes copiados até agora.
Este campo só aparece ao usar a initial sync baseada em cópia de arquivo.
replSetGetStatus.initialSyncStatus.files[n].extensionNumberO número da extensão a que o arquivo pertence se esse arquivo fizer parte de uma extensão .
Este campo só aparece ao usar a initial sync baseada em cópia de arquivo.
replSetGetStatus.membersO campo
memberscontém uma matriz que contém um documento para cada nó no conjunto de réplicas.replSetGetStatus.members[n].ipThe resolved IP address of the member. If the
mongodis unable to resolve thereplSetGetStatus.members[n].nameto an IP address, the return value is a BSON null. Otherwise, the returned value is a string representation of the resolved IP address.
replSetGetStatus.members[n].selfUm booleano que indica se o nó é a instância
mongodatual.O campo
selfé incluído somente no documento para a instânciamongodatual e, como tal, seu valor é sempretrue.
replSetGetStatus.members[n].stateUm número inteiro entre
0e10que representa o estado de réplica do nó.
replSetGetStatus.members[n].stateStrA string that describes
state.
replSetGetStatus.members[n].uptimeFor the member on which the
replSetGetStatuscommand is run,uptimeis the the number of seconds the member has been online.For the other members,
uptimeis the number of seconds the member has been in continuous communication with the member on which thereplSetGetStatuscommand was run.
replSetGetStatus.members[n].optimeInformações sobre a última operação a partir do registro de operação que este nó aplicou.
optimeretorna um documento que contém:ts, o Registro de data/hora da última operação aplicada a esse nó do conjunto de réplicas do oplog.t, thetermin which the last applied operation was originally generated on the primary.
replSetGetStatus.members[n].optimeDurableInformações sobre a última operação de registro de operações que esse nó aplicou ao seu diário.
optimeDurableretorna um documento que contém:
replSetGetStatus.members[n].optimeDateAn ISODate formatted date string that contains the last entry from the oplog that this member applied. If this differs significantly from
lastHeartbeatthis member is either experiencing "replication lag" or there have not been any new operations after the last update. Comparemembers.optimeDatebetween all of the members of the set.
replSetGetStatus.members[n].optimeDurableDateUma string de data formatada ISODate que contém a última entrada do oplog que este nó aplicou ao seu diário.
replSetGetStatus.members[n].lastAppliedWallTimeUma string em formato ISODate que reflete a hora do relógio de parede em que a última operação aplicada por este membro do conjunto de réplicas foi aplicada no nó primário.
replSetGetStatus.members[n].lastDurableWallTimeUma string de data formatada ISODate que reflete a hora do relógio de parede em que a última operação gravada no registro no diário desse nó foi aplicada pela primeira vez no nó primário.
replSetGetStatus.members[n].lastStableRecoveryTimestampSomente para uso interno
Novidades na versão 9.0.
replSetGetStatus.members[n].electionTimePara a primária atual, informações sobre a eleição Registro de data/hora do registro de operações. Consulte Alta Disponibilidade do Conjunto de Réplicas para obter mais informações sobre eleições.
replSetGetStatus.members[n].electionDatePara a primária atual, uma string de data formatada ISODate que contém a data da eleição. Consulte Alta Disponibilidade do Conjunto de Réplicas para obter mais informações sobre eleições.
replSetGetStatus.members[n].lastHeartbeatAn ISODate formatted date and time that contains the last time the server that processed the replSetGetStatus command received a response from a heartbeat that it sent to this member (
members[n]). Compare this value to the values of thedateandlastHeartbeatRecvfields to track latency between these replica set members.This value is only available for replica set members other than the server specified by
replSetGetStatus.members[n].self.
replSetGetStatus.members[n].lastHeartbeatRecvAn ISODate formatted date and time that contains the last time the server that processed the replSetGetStatus command received a heartbeat request from this member (
members[n]). Compare this value to the values of thedateandlastHeartbeatfields to track latency between these replica set members.This value is only available for replica set members other than the server specified by
replSetGetStatus.members[n].self.
replSetGetStatus.members[n].lastHeartbeatMessageWhen the last heartbeat included an extra message, the
lastHeartbeatMessagecontains a string representation of that message.
replSetGetStatus.members[n].pingMsO
pingMsrepresenta o número de milissegundos (ms) que um pacote de ida e volta leva para viajar entre o nó remoto e a instância local.Este valor não aparece para o nó que retorna os dados do
rs.status().
replSetGetStatus.members[n].syncSourceHostThe
syncSourceHostfield holds the hostname of the member from which this instance syncs.If the
replSetGetStatus.members[n]is a primary,syncSourceHostis an empty string and thesyncSourceId-1.
replSetGetStatus.members[n].syncSourceIdThe
syncSourceIdfield holds thereplSetGetStatus.members[n]._idvalue of thesyncSourceHost.If the
replSetGetStatus.members[n]is a primary,syncSourceHostis an empty string and thesyncSourceId-1.
replSetGetStatus.members[n].configVersionO valor
configVersioné oreplica set configuration version.
replSetGetStatus.members[n].optimeWrittenO optime da entrada mais recente gravada no oplog do membro.
Novidades na versão 8.0.
replSetGetStatus.members[n].optimeWrittenDateA string de data formatada ISoDate da entrada mais recente gravada no oplog do membro.
Novidades na versão 8.0.
replSetGetStatus.members[n].lastWrittenWallTimeA string de data formatada ISODate da hora em que a entrada oplog mais recente para este membro foi gravada no primário.
Novidades na versão 8.0.
replSetGetStatus.tooStaleA boolean which indicates that a replica set member has fallen too far behind the primary's oplog and is stuck in the
RECOVERINGstate. This field is only included in thereplSetGetStatusoutput if its value istrue.
Consulte também Resposta para detalhes sobre o campo de status do ok, o campo operationTime e o campo $clusterTime.
replSetGetStatus.optimePresente após a remoção de um membro do conjunto de réplicas. Fornece o optime da última entrada do oplog aplicada pelo membro removido.
replSetGetStatus.optimeDateApresente após a remoção de um membro do conjunto de réplicas. Fornece a string formatada IsoDate do optime da última entrada oplog aplicada pelo membro removido.
replSetGetStatus.optimeWrittenApresente após a remoção de um membro do conjunto de réplicas. Fornece o optime da última entrada gravada no oplog do membro removido.
Novidades na versão 8.0.
replSetGetStatus.optimeWrittenDatePresente após a remoção de um membro do conjunto de réplicas. Fornece a string formatada ISODate do optime da última entrada escrita no oplog do membro removido.
Novidades na versão 8.0.