Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/ /

Pausar ou encerrar o Sync

Nesta página

  • Pausar sincronização
  • Encerrar sincronização
  • Reativar a sincronização

Se você deseja desativar o Atlas Device Sync para seu aplicativo, você pode pausar temporariamente ou encerrá-lo permanentemente. Você também pode reativar a sincronização de dispositivos depois de desativá-la.

Você podepausar temporariamente o Device Sync se precisar pausar o cluster. Com uma pausa temporária, você pode reativar sem redefinir a configuração do Device Sync ou perder metadados do Device Sync .

Você pode encerrar permanentemente e reativar o Device Sync para solução de problemas ou se quiser alterar a configuração do Device Sync.

O Device Sync é pausado automaticamente após 30 dias de inatividade.

Você pode pausar o Realm Mobile Sync por um período de tempo sem desativá-lo totalmente. Ao pausar o Device Sync, você para de sincronizar as alterações entre o Atlas e seu aplicativo.

Importante

Se você precisar pausar seu cluster, pause o Device Sync primeiro. Caso contrário, você deve encerrar e reativar o Device Sync e fazer um reinício do cliente.

Pausar o Realm Mobile Sync rejeita quaisquer conexões de cliente de entrada. Isso significa que pausar o Realm Mobile Sync para seu aplicativo interrompe a sincronização de alterações para todos os clientes.

1

Na aba Device Sync da UI do App Services, pressione o botão Pause Sync na parte superior da tela.

Em seguida, confirme que você deseja pausar a sincronização.

Você pode usar a App Services API para pausar programaticamente o Device Sync.

1

Toda solicitação ao App Services Admin API deve incluir um token de autorização válido e atual da MongoDB Cloud API como um token de portador no cabeçalho Authorization .

Para obter detalhes sobre como obter um token de autenticação, consulte Obter tokens de autenticação.

2
  • Obtenha o ID do grupo e do aplicativo para seu aplicativo.

  • Obtenha o ID de serviço do seu serviço de sincronização. Você pode obter todos os serviços programaticamente usando o endpoint adminListServices .

Como alternativa, você pode extrair IDs de grupo, aplicativo e serviço da URL quando visualizar a interface do usuário.

  1. Go o App Services App onde o Device Sync está configurado.

  2. Selecione Linked Data Sources na barra lateral em Manage.

  3. Selecione o mongodb-atlas CLUSTER.

A URL na barra de ferramentas do seu navegador agora deve ser semelhante a:

https://services.cloud.mongodb.com/groups/$GROUP_ID/apps/$APP_ID/services/$SERVICE_ID/config

3

Envie uma solicitação GET para o ponto de extremidade adminGetServiceConfig para obter a configuração do serviço Device Sync . Isso retorna um objeto de configuração de serviço semelhante a:

{
"clusterId": "<MY-CLUSTER-ID>",
"clusterName": "Cluster0",
"clusterType": "atlas",
"flexible_sync": {
"state": "enabled",
"database_name": "todo",
"permissions": {
"rules": {},
"defaultRoles": []
},
"client_max_offline_days": 30,
"is_recovery_mode_disabled": false
},
"groupName": "<MY-GROUP-NAME>",
"orgName": "<MY-ORG-NAME>",
"readPreference": "primary",
"wireProtocolEnabled": false
}

Para obter detalhes sobre a configuração de sincronização retornada por esse endpoint, consulte a Referência do arquivo de configuração de sincronização.

4

Remova apenas a parte flexible_sync da configuração para um novo objeto JSON. Esta configuração contém um campo state que reflete o estado atual do protocolo de sincronização do aplicação. Defina esse valor como disabled. Isto agora deve se assemelhar a um blob JSON semelhante a:

{
"flexible_sync": {
"state": "disabled",
"database_name": "todo",
"permissions": {
"rules": {},
"defaultRoles": []
},
"client_max_offline_days": 30,
"is_recovery_mode_disabled": false
}
}
5

Envie a configuração atualizada do Serviço de sincronização como uma carga útil em uma solicitação PATCH para o endpoint adminUpdateServiceConfig .

Depois de pausar o Device Sync, você pode reabilitá-lo. A pausa do Device Sync mantém as definições de configuração e todos os metadados do Device Sync, que contêm o histórico de sincronização. Ao reativar a Device Sync pausada, seus clientes podem se reconectar normalmente.

Aviso

Se o seu oplog passar do momento em que você pausou o Device Sync, você deverá encerrar e reativar o Device Sync. Por exemplo, se você manter apenas 12 horas de oplog para seu cluster e pausar o Device Sync por mais de 12 horas, deverá encerrar e reativar o Device Sync.

Encerrar e reativar o Atlas Device Sync pausado para o seu aplicativo apaga os metadados do Atlas Device Sync e exige que você especifique as definições de configuração novamente. Os clientes devem fazer um reinício do cliente quando se reconectarem após o encerramento do Atlas Device Sync . Para obter mais informações, consulte: Encerrar sincronização.

Se você tiver ativado o Realm Mobile Sync, talvez seja necessário encerrar e reativar o Realm Mobile Sync em algumas circunstâncias diferentes:

  • Uma atualização de um cluster do Atlas de Nível Compartilhado para uma instância Compartilhada ou Dedicada

  • Uma mudança para um cluster do Atlas distribuído entre regiões/fornecedor de cloud

  • Uma atualização para cluster do Atlas NVMe

  • Um rollover de oplog

  • Uma sessão de Device Sync pausada em um cluster de nível compartilhado devido ao uso pouco frequente

  • Solução de problemas, a pedido do Suporte MongoDB

  • Alternar entre os modos de sincronização. Por exemplo, se você estiver mudando da sincronização baseada em partição para a Flexible Sync

  • Soltando uma collection que você usou com a sincronização. Por exemplo, se você tiver uma collection Team que armazena e sincroniza objeto Team e depois descartar essa collection, deverá encerrar e reativar a sincronização.

Aviso

Restaurar a sincronização após encerrar a sincronização

Quando você encerra e reativa o Atlas Device Sync, os clientes não podem mais sincronizar. Seu cliente deve implementar um manipulador de redefinição de cliente para restaurar a sincronização. Este manipulador pode descartar ou tentar recuperar alterações não sincronizadas.

Encerre a sincronização de dispositivos em seu aplicativo para parar de sincronizar dados entre dispositivos.

1

Na guia Sync da interface do usuário do App Services, clique no botão vermelho Terminate Sync na parte superior da tela.

2

No modal que aparece, digite "Encerrar sincronização" na entrada de texto e clique no botão Terminate Sync .

Se você estiver usando esquemas de distribuição de UI , deverá implantar o esquema para realmente encerrar a sincronização.

Você agora encerrou o Realm Mobile Sync.

Você pode usar a App Services API para encerrar o Device Sync programaticamente.

1

Toda solicitação ao App Services Admin API deve incluir um token de autorização válido e atual da MongoDB Cloud API como um token de portador no cabeçalho Authorization .

Para obter detalhes sobre como obter um token de autenticação, consulte Obter tokens de autenticação.

2

Como alternativa, você pode extrair IDs de grupo, aplicativo e serviço da URL quando visualizar a interface do usuário:

  1. Go o App Services App onde o Device Sync está configurado.

  2. Selecione Linked Data Sources na barra lateral em Manage.

  3. Selecione o mongodb-atlas CLUSTER.

A URL na barra de ferramentas do seu navegador agora deve ser semelhante a:

https://services.cloud.mongodb.com/groups/$GROUP_ID/apps/$APP_ID/services/$SERVICE_ID/config

3

Envie uma solicitação GET para o ponto de extremidade adminGetServiceConfig para obter a configuração do serviço Device Sync . Isso retorna um objeto de configuração de serviço semelhante a:

{
"clusterId": "<MY-CLUSTER-ID>",
"clusterName": "Cluster0",
"clusterType": "atlas",
"flexible_sync": {
"state": "enabled",
"database_name": "todo",
"permissions": {
"rules": {},
"defaultRoles": []
},
"client_max_offline_days": 30,
"is_recovery_mode_disabled": false
},
"groupName": "<MY-GROUP-NAME>",
"orgName": "<MY-ORG-NAME>",
"readPreference": "primary",
"wireProtocolEnabled": false
}

Para obter detalhes sobre a configuração de sincronização retornada por esse endpoint, consulte a Referência do arquivo de configuração de sincronização.

4

Esta configuração contém um campo state que reflete o estado atual do protocolo de sincronização para o aplicação. Defina este valor como uma string vazia "". Isto agora deve se assemelhar a um blob JSON semelhante a:

{
"flexible_sync": {
"state": "",
"database_name": "todo",
"permissions": {
"rules": {},
"defaultRoles": []
},
"client_max_offline_days": 30,
"is_recovery_mode_disabled": false
}
}
5

Envie a configuração atualizada do Serviço de sincronização como uma carga útil em uma solicitação PATCH para o endpoint adminUpdateServiceConfig .

Depois de encerrar o Device Sync, você pode reabilitá-lo. O encerramento do Device Sync destrói as definições de configuração e todos os metadados do Device Sync, que contêm o histórico de sincronização. A reativação da sincronização exige que você conclua as etapas de configuração da sincronização novamente. Os clientes que se conectaram anteriormente não podem se reconectar até que façam um reinício do cliente.

Depois de pausar ou encerrar o Realm Mobile Sync, você pode reabilitá-la. Reativar o Device Sync permite que seu aplicativo comece a sincronizar as alterações no Atlas novamente. Depois de reativar a sincronização de dispositivos, seu aplicativo começa a aceitar conexões de clientes de entrada novamente.

Quando você pausa o Device Sync, o App Services preserva suas definições de configuração, e você pode pular a etapa Configurar sincronização . Ao encerrar o Device Sync ou quando o oplog ultrapassar o momento em que você pausou o Device Sync, você deve especificar as definições de configuração novamente.

Para reativar o Realm Mobile Sync, siga as etapas do guia Configurar e habilitar o Atlas Device Sync .

Você pode usar a App Services API para reativar programaticamente o Device Sync. Este procedimento pressupõe que você já tem uma configuração de sincronização para o cluster que pode ser usada para reativar a sincronização com as mesmas configurações.

1

Toda solicitação ao App Services Admin API deve incluir um token de autorização válido e atual da MongoDB Cloud API como um token de portador no cabeçalho Authorization .

Para obter detalhes sobre como obter um token de autenticação, consulte Obter tokens de autenticação.

2

Obtenha o ID do grupo e do aplicativo para seu aplicativo.

3

Esta configuração contém um campo state que reflete o estado atual do protocolo de sincronização para o aplicação. Defina esse valor como enabled. Isto agora deve se assemelhar a um blob JSON semelhante a:

{
"flexible_sync": {
"state": "enabled",
"database_name": "todo",
"permissions": {
"rules": {},
"defaultRoles": []
},
"client_max_offline_days": 30,
"is_recovery_mode_disabled": false
}
}
4

Envie a configuração atualizada do Serviço de sincronização como uma carga útil em uma solicitação PATCH para o endpoint adminUpdateServiceConfig .

A reativação da sincronização ativa as conexões do cliente de entrada. No entanto, em algumas circunstâncias, o código do aplicativo cliente pode precisar executar um reinício do cliente antes que os clientes possam sincronizar novamente.

Seu código deve lidar com um reinício do cliente quando um cliente tiver se conectado anteriormente ao Device Sync e você encerrar o Device Sync. Encerrar o Realm Mobile Sync para sua aplicação apaga os metadados do Realm Mobile Sync de que o cliente precisa para se reconectar.

Isso também se aplica a aplicativos em que o Device Sync está pausado por mais tempo do que o oplog que você mantém para o cluster. Por exemplo, se você manter apenas 12 horas de oplog para seu cluster e pausar o Device Sync por mais de 12 horas, deverá encerrar e reativar o Device Sync.

Para obter informações sobre como realizar um reinício do cliente no cliente, consulte a documentação do SDK:

Voltar

Configurações do Sync