replSetGetStatus
Nesta página
Definição
replSetGetStatus
O comando
replSetGetStatus
retorna o status do conjunto de réplicas a partir do ponto de vista do servidor que processou o comando.replSetGetStatus
deve ser executado no banco de dados admin.A instância do
mongod
deve ser um membro do conjunto de réplicas parareplSetGetStatus
retornar com sucesso.Os dados fornecidos por esse comando derivam dos dados incluídos nos heartbeats enviados ao servidor por outros membros do conjunto de réplicas. Devido à frequência dos heartbeats, esses dados podem estar desatualizados em vários segundos.
Dica
Em
mongosh
, esse comando também pode ser executado por meio do método auxiliarrs.status()
.Os métodos auxiliares são práticos para os usuários
mongosh
, mas podem não retornar o mesmo nível de informações que os comandos do banco de dados. Nos casos em que a praticidade não for necessária ou os campos de retorno adicionais forem necessários, use o comando de banco de dados.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Este comando não é suportado em clusters M0, M2 e M5 . Para obter mais informações, consulte Comandos não suportados.
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 } )
Se você executar replSetGetStatus
ou o auxiliar mongosh
rs.status()
em um nó durante sua sincronização inicial (ou seja, estado STARTUP2
), o comando retorna métricas replSetGetStatus.initialSyncStatus
.
Após o nó concluir a sincronização inicial e transições para outro estado, as métricas replSetGetStatus.initialSyncStatus
não estarão mais disponíveis.
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
O exemplo a seguir executa o replSetGetStatus
comando no banco de dados admin do primário do conjunto de réplicas:
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" : NumberLong(3), "syncSourceHost" : "", "syncSourceId" : -1, "heartbeatIntervalMillis" : NumberLong(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 3, "writableVotingMembersCount" : 3, "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "lastCommittedWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "readConcernMajorityOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "readConcernMajorityWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "appliedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "writtenOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "durableOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(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" : NumberLong(3), "lastCommittedOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(2) }, "lastSeenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(2) }, "lastSeenWrittenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(1) }, "numVotesNeeded" : 2, "priorityAtElection" : 1, "electionTimeoutMillis" : NumberLong(10000), "priorPrimaryMemberId" : 1, "numCatchUpOps" : NumberLong(0), "newTermStartDate" : ISODate("2024-08-15T23:06:13.978Z"), "wMajorityWriteAvailabilityDate" : ISODate("2024-08-15T23:06:13.978Z") }, "electionParticipantMetrics" : { "votedForCandidate" : true, "electionTerm" : NumberLong(2), "lastVoteDate" : ISODate("2024-08-15T23:06:13.978Z"), "electionCandidateMemberId" : 1, "voteReason" : "", "lastAppliedOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(1) }, "lastWrittenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(1) }, "maxAppliedOpTimeInSet" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(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" : NumberLong(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(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"), "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" : NumberLong(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(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"), "pingMs" : NumberLong(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" : NumberLong(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(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"), "pingMs" : NumberLong(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" : NumberLong("6800589497806356482") } }, "operationTime" : Timestamp(1723763173, 1) }
O exemplo a seguir executa o replSetGetStatus
comando no banco de dados admin do secundário do conjunto de réplicas:
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" : NumberLong(3), "syncSourceHost" : "m3.example.net:27017", "syncSourceId" : 2, "heartbeatIntervalMillis" : NumberLong(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 3, "writableVotingMembersCount" : 3, "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "lastCommittedWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "readConcernMajorityOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "readConcernMajorityWallTime" : ISODate("2024-08-15T23:06:13.978Z"), "appliedOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "writtenOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "durableOpTime" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(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" : NumberLong(3), "lastVoteDate" : ISODate("2024-08-15T23:06:13.978Z"), "electionCandidateMemberId" : 0, "voteReason" : "", "lastAppliedOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(2) }, "lastWrittenOpTimeAtElection" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(1) }, "maxAppliedOpTimeInSet" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(2) }, "maxWrittenOpTimeInSet" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(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" : NumberLong(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(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"), "pingMs" : NumberLong(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" : NumberLong(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(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"), "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" : NumberLong(3) }, "optimeWritten" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(3) }, "optimeDurable" : { "ts" : Timestamp(1723763173, 1), "t" : NumberLong(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"), "pingMs" : NumberLong(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" : NumberLong("6800589497806356482") } }, "operationTime" : Timestamp(1723763173, 1), }
- Em versões anteriores (3.6.x-4.2.0)
Você pode incluir o
initialSync: 1
opcional para incluir oreplSetGetStatus.initialSyncStatus
na saída (ou omitir se não quiser retornar o status da sincronização inicial):db.adminCommand( { replSetGetStatus: 1, initialSync: 1 } )
- A partir do MongoDB 5.2,
- o documento
replSetGetStatus.initialSyncStatus
contém campos adicionais ao usar uma sincronização inicial baseada em cópia de arquivo.
Se você executar replSetGetStatus
em um membro durante sua sincronização inicial, o comando retornará replSetGetStatus.initialSyncStatus
métricas.
db.adminCommand( { replSetGetStatus: 1 } )
Após o nó concluir a sincronização inicial e transições para outro estado, as métricas replSetGetStatus.initialSyncStatus
não estarão mais disponíveis.
O exemplo a seguir executa o comando replSetGetStatus
no banco de dados admin do membro do conjunto de réplicas 4.4 durante sua sincronização inicial:
{ "set" : "replset", "date" : ISODate("2024-08-15T23:06:13.978Z") "myState" : 5, "term" : NumberLong(1), "syncSourceHost" : "m1.example.net:27017", "syncSourceId" : 0, "heartbeatIntervalMillis" : NumberLong(2000), "majorityVoteCount" : 2, "writeMajorityCount" : 2, "votingMembersCount" : 2, "writableVotingMembersCount" : 2, "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "lastCommittedWallTime" : ISODate("1970-01-01T00:00:00Z"), "appliedOpTime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "writtenOpTime": { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "durableOpTime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-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, "initialSyncStart" : ISODate("2024-08-15T23:06:13.978Z"), "initialSyncAttempts" : [ ], "appliedOps" : 0, "initialSyncOplogStart" : Timestamp(1723763173, 1), "syncSourceUnreachableSince" : ISODate("2024-08-15T23:06:13.978Z"), "currentOutageDurationMillis" : NumberLong(8687), "totalTimeUnreachableMillis" : NumberLong(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" : NumberLong(-1) }, "optimeWritten" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "optimeDurable" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-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" : NumberLong(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" : NumberLong(-1) }, "optimeWritten" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) }, "optimeDurable" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-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.set
O valor
set
é o nome do conjunto de réplicas, configurado na configuraçãoreplSetName
. Este é o mesmo valor que_id
emrs.conf()
.
replSetGetStatus.date
Uma data e hora formatadas em ISODate que contém a hora atual de acordo com o servidor que processou o comando replSetGetStatus. Compare isto com os valores de
replSetGetStatus.members[n].lastHeartbeat
para localizar a latência operacional entre este servidor e os outros membros do conjunto de réplicas.
replSetGetStatus.myState
Um número inteiro entre
0
e10
que representa o estado de réplica do membro atual.
replSetGetStatus.term
A contagem de eleições para o conjunto de réplicas, conforme conhecido por esse membro do conjunto de réplicas. O
term
é utilizado pelo algoritmo de consenso distribuído para garantir a correção.
replSetGetStatus.syncSourceHost
O campo
syncSourceHost
contém o nome do host do nó a partir do qual essa instância é sincronizada.Se essa instância for primária,
syncSourceHost
será uma string vazia e osyncSourceId
-1
.
replSetGetStatus.syncSourceId
O campo
syncSourceId
contém oreplSetGetStatus.members[n]._id
do nó a partir do qual essa instância é sincronizada.Se essa instância for primária,
syncSourceHost
será uma string vazia e osyncSourceId
-1
.
replSetGetStatus.majorityVoteCount
O número de votos majoritários necessários para eleger uma nova primária em uma eleição.
replSetGetStatus.writeMajorityCount
O número de membros votantes portadores de dados (ou seja, não árbitros) necessários para atender à write concern
"majority"
. As gravações só podem ser aplicadas a membros que contêm dados.Para o cálculo de
replSetGetStatus.writeMajorityCount
, consulte Calculando a maioria da preocupação de gravação.
replSetGetStatus.votingMembersCount
O número de membros configurados com
votes: 1
, incluindo árbitros.
replSetGetStatus.writableVotingMembersCount
O número de membros portadores de dados configurados com
votes: 1
(isso não inclui árbitros).
replSetGetStatus.optimes
O campo
optimes
contém um documento contendo optimes usados para inspecionar o progresso da replicação. O campooptimes
inclui as strings de datas formatadas em ISODate correspondentes para os vários optimes.Cada valor de optime é um documento que contém:
replSetGetStatus.optimes.lastCommittedOpTime
Informaçã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.lastCommittedWallTime
A string de datas formatada em ISODate correspondente a
lastCommittedOpTime
.
replSetGetStatus.optimes.readConcernMajorityOpTime
Informações, do ponto de vista desse membro, sobre a operação mais recente que pode atender a queries de preocupação de leitura
"majority"
; ou seja, alastCommittedOpTime
mais recente que pode atender a queries"majority"
.readConcernMajorityOpTime
é menor ou igual alastCommittedOpTime
.
replSetGetStatus.optimes.readConcernMajorityWallTime
A string de datas formatada em ISODate correspondente a
readConcernMajorityOpTime
.
replSetGetStatus.optimes.appliedOpTime
Informaçã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.lastAppliedWallTime
A string de datas formatada em ISODate correspondente a
appliedOpTime
.
replSetGetStatus.optimes.durableOpTime
Informaçã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.lastDurableWallTime
A string de datas formatada em ISODate correspondente a
durableOpTime
.
replSetGetStatus.optimes.lastWrittenWallTime
A string de data formatada IsoDate da entrada mais recente gravada no oplog desse membro.
Novidades na versão 8.0.
replSetGetStatus.optimes.writtenOpTime
O optime da entrada mais recente gravada no oplog desse membro.
Novidades na versão 8.0.
replSetGetStatus.electionCandidateMetrics
Métricas relacionadas à eleição do primário atual.
electionCandidateMetrics
só está disponível nos primários ou em um candidato à eleição. Para um candidato, as métricas estão indisponíveis após o candidato perder a eleição.replSetGetStatus.electionCandidateMetrics.lastElectionReason
Motivo pelo qual o membro convocou a eleição.
replSetGetStatus.electionCandidateMetrics.lastElectionDate
A data e a hora em que o membro convocou a eleição.
replSetGetStatus.electionCandidateMetrics.electionTerm
A contagem eleitoral do membro (ou seja,
term
) no momento em que convocou a nova eleição.
replSetGetStatus.electionCandidateMetrics.lastCommittedOpTimeAtElection
O mais recente
majority-committed optime
, como visto por este membro na época em que convocou a nova eleição.
replSetGetStatus.electionCandidateMetrics.lastSeenOpTimeAtElection
O mais recente
applied optime
do membro na época em que convocou a nova eleição.
replSetGetStatus.electionCandidateMetrics.lastSeenWrittenOpTimeAtElection
O 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.numVotesNeeded
O número de votos necessários para vencer a eleição.
replSetGetStatus.electionCandidateMetrics.priorityAtElection
O
priority
do membro no momento em que convocou a eleição.
replSetGetStatus.electionCandidateMetrics.electionTimeoutMillis
O conjunto de réplicas configurou o cenário
electionTimeoutMillis
no momento da eleição.
replSetGetStatus.electionCandidateMetrics.priorPrimaryMemberId
O
members[n]._id
da primária anterior. Se não houver primária anterior, o campo não estará presente.
replSetGetStatus.electionCandidateMetrics.targetCatchupOpTime
O 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.numCatchUpOps
O 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.newTermStartDate
A 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 term
foi gravada no oplog).
replSetGetStatus.electionCandidateMetrics.wMajorityWriteAvailabilityDate
A 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 term
foi confirmada por maioria).
replSetGetStatus.electionParticipantMetrics
Métricas relacionadas à última eleição em que o membro participou.
replSetGetStatus.electionParticipantMetrics.votedForCandidate
Um booleano que indica se o membro votou no candidato que convocou a eleição.
replSetGetStatus.electionParticipantMetrics.electionTerm
O termo da eleição em que o membro participou. O termo identifica a eleição associada às métricas do participante.
replSetGetStatus.electionParticipantMetrics.lastVoteDate
Uma string de data formatada em IsoDate que registra quando o participante votou.
replSetGetStatus.electionParticipantMetrics.electionCandidateMemberId
O
members[n]._id
do candidato convocando a eleição.
replSetGetStatus.electionParticipantMetrics.voteReason
O 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.lastAppliedOpTimeAtElection
O ú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.lastWrittenOpTimeAtElection
O optime da entrada mais recente escrita no oplog desse membro na época da última eleição.
Novidades na versão 8.0.
replSetGetStatus.electionParticipantMetrics.maxAppliedOpTimeInSet
O optime aplicado mais recente para qualquer membro desse conjunto de réplicas, conforme conhecido por esse membro.
replSetGetStatus.electionParticipantMetrics.maxWrittenOpTimeInSet
O 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.priorityAtElection
O
priority
do membro no momento da eleição.
replSetGetStatus.electionParticipantMetrics.newTermStartDate
A 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 term
em seu oplog e não quando a entrada foi adicionada (ou seja, replicada) para o oplog do segundo.O campo está disponível apenas para nós secundários. no caso do primário, consulte
replSetGetStatus.electionCandidateMetrics.newTermStartDate
.
replSetGetStatus.initialSyncStatus
Um documento que fornece informações sobre o progresso e o status da initial sync neste membro.
Importante
Disponibilidade
As métricas
replSetGetStatus.initialSyncStatus
só estão disponíveis quando executadas em um nó durante sua sincronização inicial (ou seja, o estadoSTARTUP2
).replSetGetStatus.initialSyncStatus.failedInitialSyncAttempts
O número de vezes que a sincronização inicial falhou e teve que reiniciar neste nó.
replSetGetStatus.initialSyncStatus.maxFailedInitialSyncAttempts
O número máximo de vezes que a sincronização inicial pode ser reiniciada neste nó antes que o nó seja desligado.
replSetGetStatus.initialSyncStatus.initialSyncStart
O registro de data/hora inicial da sincronização inicial deste nó.
replSetGetStatus.initialSyncStatus.initialSyncEnd
O registro de data/hora final da sincronização inicial deste nó.
replSetGetStatus.initialSyncStatus.initialSyncElapsedMillis
O número de milissegundos entre
initialSyncStart
einitialSyncEnd
.
replSetGetStatus.initialSyncStatus.initialSyncAttempts
Array 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 } ], Cada documento contém as seguintes informações para a tentativa de initial sync:
CampoDescriçãodurationMillisDuração em milissegundos da tentativa de initial sync.StatusSair do status da tentativa de initial sync.syncSourceFonte de sincronização para a tentativa de initial sync.rollBackIdO identificador de rollback da fonte de sincronização no início da tentativa de sincronização inicial.
rollBackId
não aparece ao usar a initial sync baseada em cópia de arquivo.operationsRetriedNúmero total de todas as tentativas de repetição de operação.totalTimeUnreachableMillisTempo total gasto em tentativas de repetição de operação.Consulte também
failedInitialSyncAttempts
.
replSetGetStatus.initialSyncStatus.appliedOps
O 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.initialSyncOplogStart
O 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.initialSyncOplogEnd
A 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.syncSourceUnreachableSince
A 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.currentOutageDurationMillis
O 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.totalTimeUnreachableMillis
O tempo total em milissegundos em que o nó esteve indisponível durante a sincronização inicial atual.
replSetGetStatus.initialSyncStatus.databases
Detalhes sobre os bancos de dados clonados durante a initial sync.
replSetGetStatus.initialSyncStatus.databases.databasesCloned
Número de bancos de dados clonados durante a initial sync.
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.method
Novidades 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.approxTotalDataSize
O 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.approxTotalBytesCopied
O 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.totalInitialSyncElapsedMillis
O 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.remainingInitialSyncEstimatedMillis
O 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.initialBackupDataSize
O 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.previousOplogEnd
O 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.currentOplogEnd
O ú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.syncSourceLastApplied
O 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.numExtensions
O 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.extensionDataSize
O total de bytes na extensãoatual.
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.files
Uma 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].filePath
O 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].fileSize
O 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].bytesCopied
O 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].extensionNumber
O 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.members
O campo
members
contém uma matriz que contém um documento para cada nó no conjunto de réplicas.replSetGetStatus.members[n].ip
O endereço IP resolvido do nó. Se o
mongod
não conseguir resolver oreplSetGetStatus.members[n].name
para um endereço IP, o valor de retorno será um BSON nulo. Caso contrário, o valor retornado será uma representação de string do endereço IP resolvido.
replSetGetStatus.members[n].self
Um booleano que indica se o nó é a instância
mongod
atual.O campo
self
é incluído somente no documento para a instânciamongod
atual e, como tal, seu valor é sempretrue
.
replSetGetStatus.members[n].state
Um número inteiro entre
0
e10
que representa o estado de réplica do nó.
replSetGetStatus.members[n].stateStr
Uma string que descreve
state
.
replSetGetStatus.members[n].uptime
Para o membro no qual o comando
replSetGetStatus
é executado,uptime
é o número de segundos que o membro esteve on-line.Para os outros nós,
uptime
é o número de segundos em que o nó esteve em comunicação contínua com o nó no qual o comandoreplSetGetStatus
foi executado.
replSetGetStatus.members[n].optime
Informações sobre a última operação a partir do registro de operação que este nó aplicou.
optime
retorna 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
, oterm
no qual a última operação aplicada foi originalmente gerada no primário.
replSetGetStatus.members[n].optimeDurable
Informações sobre a última operação de registro de operações que esse nó aplicou ao seu diário.
optimeDurable
retorna um documento que contém:
replSetGetStatus.members[n].optimeDate
Uma string de data formatada ISODate que contém a última entrada do oplog que esse nó aplicou. Se isso for significativamente diferente de
lastHeartbeat
, esse nó está enfrentando "atraso de replicação" ou não houve novas operações após a última atualização. Comparemembers.optimeDate
entre todos os nós do conjunto.
replSetGetStatus.members[n].optimeDurableDate
Uma string de data formatada ISODate que contém a última entrada do oplog que este nó aplicou ao seu diário.
replSetGetStatus.members[n].lastAppliedWallTime
Uma string de data formatada ISODate que reflete a hora do relógio de parede em que a última operação aplicada por esse nó do conjunto de réplicas foi aplicada no nó primário.
replSetGetStatus.members[n].lastDurableWallTime
Uma string de data formatada ISODate que reflete a hora do relógio de parede em que a última operação gravada no diário desse nó foi aplicada pela primeira vez no nó primário.
replSetGetStatus.members[n].electionTime
Para 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].electionDate
Para 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].lastHeartbeat
Uma data e hora formatadas ISODate que contêm a última vez que o servidor que processou o comando replSetGetStatus recebeu uma resposta de um heartbeat enviado a esse nó (
members[n]
). Compare este valor com os valores dos camposdate
elastHeartbeatRecv
para rastrear a latência entre esses nós do conjunto de réplicas.Esse valor só está disponível para nós do conjunto de réplicas que não sejam o servidor especificado por
replSetGetStatus.members[n].self
.
replSetGetStatus.members[n].lastHeartbeatRecv
Uma data e hora formatada ISODate que contém a última vez que o servidor que processou o comando replSetGetStatus recebeu uma solicitação de pulsação desse nó (
members[n]
). Compare este valor com os valores dos camposdate
elastHeartbeat
para acompanhar a latência entre estes nós do conjunto de réplicas.Esse valor só está disponível para nós do conjunto de réplicas que não sejam o servidor especificado por
replSetGetStatus.members[n].self
.
replSetGetStatus.members[n].lastHeartbeatMessage
Quando a última pulsação incluiu uma mensagem extra, o
lastHeartbeatMessage
contém uma representação de string dessa mensagem.
replSetGetStatus.members[n].pingMs
O
pingMs
representa 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].syncSourceHost
O campo
syncSourceHost
contém o nome do host do nó a partir do qual essa instância é sincronizada.Se o
replSetGetStatus.members[n]
for primário,syncSourceHost
será uma string vazia e osyncSourceId
,-1
.
replSetGetStatus.members[n].syncSourceId
O campo
syncSourceId
contém o valorreplSetGetStatus.members[n]._id
dosyncSourceHost
.Se o
replSetGetStatus.members[n]
for primário,syncSourceHost
será uma string vazia e osyncSourceId
,-1
.
replSetGetStatus.members[n].configVersion
O valor
configVersion
é oreplica set configuration version
.
replSetGetStatus.members[n].optimeWritten
O optime da entrada mais recente gravada no oplog do membro.
Novidades na versão 8.0.
replSetGetStatus.members[n].optimeWrittenDate
A string de data formatada ISoDate da entrada mais recente gravada no oplog do membro.
Novidades na versão 8.0.
replSetGetStatus.members[n].lastWrittenWallTime
A 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.tooStale
Um booleano que indica que um nó do conjunto de réplicas ficou muito atrás do oplog do primário e está preso no estado
RECOVERING
. Esse campo só será incluído na saídareplSetGetStatus
se seu valor fortrue
.
Consulte também Resposta para detalhes sobre o campo de status do ok
, o campo operationTime
e o campo $clusterTime
.
replSetGetStatus.optime
Presente 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.optimeDate
Apresente 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.optimeWritten
Apresente 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.optimeWrittenDate
Presente 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.