changeStreamOptions
Definição
changeStreamOptions
Novidades na versão 6.0.
Disponível para
mongod
emongos
.Um objeto que contém opções de configuração do change stream .
Você só pode definir
changeStreamOptions
emmongos
ou um conjunto de réplicas principal. O valor é definido em todo o cluster.
Sintaxe
Para configurar o changeStreamOptions
para seu sistema, execute o seguinte comando no banco de dados do admin
:
db.adminCommand( { setClusterParameter: { changeStreamOptions: <value> } } )
Para exibir os valores atuais do parâmetro de cluster do changeStreamOptions
, execute o seguinte comando no banco de dados do admin
:
db.adminCommand( { getClusterParameter: "changeStreamOptions" } )
Campos de parâmetros
changeStreamOptions.preAndPostImages.expireAfterSeconds
Novidades na versão 6.0.
Padrão: DESLIGADO
Controla a política de retenção das imagens antes e depois do change stream. Pré-imagens e pós-imagens são as versões de um documento antes e depois da modificação do documento, respectivamente.
expireAfterSeconds
controla por quanto tempo o MongoDB retém as pré e pós-imagens.Quando
expireAfterSeconds
está definido comooff
, o MongoDB usa a política de retenção padrão: pré-imagens e pós-imagens são retidas até os eventos de change streams serem removidos do oplog.Para definir o tempo mínimo de retenção pré e pós-imagem, especifique um valor inteiro para
expireAfterSeconds
.Importante
Os serviços que usam change streams, incluindo triggers e Device Sync, podem depender da disponibilidade de dados pré-imagem. Se você definir
expireAfterSeconds
muito baixo, poderá aumentar o risco de interromper a sincronização ou acionar o processamento.Ao configurar
expireAfterSeconds
para pré-imagens, certifique-se de:Especifique um valor que não seja inferior ao atraso típico do change stream para o serviço.
Adicione tempo de buffer para permitir que o serviço seja retomado manualmente antes de correr o risco de perda de dados do oplog.
Comportamento
Se um change stream for removido do oplog, as imagens pré e pós correspondentes também serão excluídas, independentemente do tempo de retenção especificado com changeStreamOptions.preAndPostImages.expireAfterSeconds
.
Exemplo
O exemplo a seguir define o tempo de retenção para pré e pós-imagens em change stream para 100
segundos:
db.runCommand( { setClusterParameter: { changeStreamOptions: { preAndPostImages: { expireAfterSeconds: 100 } } } } )