Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: Base de Dados SQL do Azure
Important
O SQL Sincronização de Dados encerra-se a 30 de setembro de 2027. Considere migrar para soluções alternativas de replicação e sincronização de dados. Como parte do processo de reforma, não pode criar novos grupos de sincronização em subscrições do Azure que não usavam anteriormente SQL Sincronização de Dados. Os grupos de sincronização existentes podem continuar a funcionar até à data de reforma, mas deve migrá-los para uma solução alternativa antes dessa data.
Este artigo descreve como resolver problemas conhecidos com o SQL Sincronização de Dados no Azure. Se houver uma resolução para um problema, está aqui fornecida.
Para obter uma visão geral da Sincronização de Dados SQL, consulte O que é a Sincronização de Dados SQL para Azure?
A Sincronização de Dados SQL não dá suporte à Instância Gerenciada SQL do Azure ou ao Azure Synapse Analytics.
Problemas de sincronização
O meu grupo de sincronização está bloqueado no estado de processamento
Vejo dados de chave primária inconsistentes após uma sincronização com êxito
A sincronização falha na interface do portal para bases de dados on-premises associadas ao agente cliente
A sincronização falha na interface de utilizador do portal do SQL Sincronização de Dados para bases de dados locais associadas ao agente cliente. No computador local onde o agente está em execução, verá erros System.IO.IOException no registo de eventos. Os erros dizem que o disco não tem espaço suficiente.
Causa. A unidade não tem espaço suficiente.
Resolução. Crie mais espaço na unidade na qual o diretório %TEMP% está localizado.
O meu grupo de sincronização está preso no estado de processamento
Um grupo de sincronização no SQL Sincronização de Dados está no estado de processamento há bastante tempo. Não responde ao comando de parar , e os registos não mostram novas entradas.
Qualquer uma das seguintes condições pode resultar num grupo de sincronização preso no estado de processamento:
Causa. O agente cliente está offline
Resolução. Confirme que o agente do cliente está online e tente novamente.
Causa. O agente do cliente está desinstalado ou em falta.
Resolução. Se o agente cliente estiver desinstalado ou estiver em falta:
- Remova o ficheiro XML do agente da pasta de instalação da Sincronização de Dados SQL, se o ficheiro existir.
- Instale o agente num computador no local (pode ser o mesmo computador ou um diferente). Em seguida, introduza a chave do agente gerada no portal para o agente que está offline.
Causa. O serviço Sincronização de Dados SQL está parado.
Resolução. Reinicie o serviço Sincronização de Dados SQL.
- No menu Iniciar, procure Serviços.
- Nos resultados da pesquisa, selecione Serviços.
- Localize o serviço Sincronização de Dados SQL.
- Se o estado do serviço for Parado, clique com o botão direito no nome do serviço e depois selecione Iniciar.
Note
Se a informação anterior não tirar o seu grupo de sincronização do estado de processamento, o Suporte da Microsoft pode repor o estado do seu grupo de sincronização. Para que o estado do seu grupo de sincronização seja reposto, na
Vejo dados errados nas minhas tabelas
Se as tabelas que têm o mesmo nome, mas que são de esquemas de base de dados diferentes, estiverem incluídas numa sincronização, verá dados erróneos nas tabelas após a sincronização.
Causa. O processo de aprovisionamento da Sincronização de Dados SQL utiliza as mesmas tabelas de controlo para tabelas com o mesmo nome, mas que estão em esquemas diferentes. Por este motivo, as alterações de ambas as tabelas refletem-se na mesma tabela de controlo, o que provoca alterações de dados erradas durante a sincronização.
Resolução. Confirme se os nomes das tabelas envolvidas numa sincronização são diferentes, mesmo que as tabelas pertençam a esquemas diferentes numa base de dados.
Vejo dados de chave primária inconsistentes após uma sincronização bem-sucedida
Uma sincronização é indicada como bem-sucedida, e o registo não mostra linhas com falhas nem linhas ignoradas, mas verifica que os dados da chave primária são inconsistentes entre as bases de dados do grupo de sincronização.
Causa. Este resultado é por predefinição. As alterações em qualquer coluna de chave primária resultam em dados inconsistentes nas linhas em que a chave primária foi alterada.
Resolução. Para evitar este problema, confirme se não são alterados dados numa coluna de chave primária. Para corrigir este problema depois de ter ocorrido, elimine a linha que tem dados inconsistentes de todos os pontos finais no grupo de sincronização. Em seguida, reinsira a linha.
Vejo uma degradação significativa no desempenho
O desempenho degrada-se de forma significativa, possivelmente ao ponto de nem sequer conseguir abrir a IU da Sincronização de Dados.
Causa. A causa mais provável é um ciclo de sincronização. Um ciclo de sincronização ocorre quando uma sincronização pelo grupo de sincronização A aciona uma sincronização pelo grupo de sincronização B, que, em seguida, aciona uma sincronização pelo grupo de sincronização A. A situação real pode ser mais complexa e pode envolver mais de dois grupos de sincronização no ciclo. O problema é que existe um desencadeamento circular da sincronização, causado por grupos de sincronização que se sobrepõem entre si.
Resolução. A melhor solução é a prevenção. Certifique-se de que não existem referências circulares nos seus grupos de sincronização. Qualquer linha que seja sincronizada por um grupo de sincronização não pode ser sincronizada por outro grupo de sincronização.
Vejo esta mensagem: "Não é possível inserir o valor NULL na coluna> da coluna<. A coluna não permite nulos." O que significa isto e como posso corrigir isso?
Esta mensagem de erro indica que ocorreu um dos dois seguintes problemas:
- Uma tabela não tem uma chave primária. Para resolver este problema, adiciona uma chave primária a todas as tabelas que estás a sincronizar.
- Há uma cláusula WHERE na tua instrução CREATE INDEX. A Sincronização de Dados não processa esta condição. Para resolver este problema, remova a cláusula WHERE ou faça manualmente as alterações em todas as bases de dados.
Como é que o Sincronização de Dados lida com referências circulares? Ou seja, quando os mesmos dados estão sincronizados em vários grupos de sincronização, e continuam a mudar como resultado?
A Sincronização de Dados não processa referências circulares. Evite-as.
Questões com agentes do cliente
Para resolver problemas com o agente cliente, consulte Problemas do Agente de Sincronização de Dados.
Problemas de manutenção e configuração
Não consigo anular o registo de uma base de dados do SQL Server
Não tenho privilégios suficientes para iniciar os serviços do sistema
O que acontece quando restauro uma base de dados perdida ou danificada?
Aparece-me uma mensagem de "sem espaço no disco"
Causa. A mensagem "disco sem espaço" poderá aparecer se os ficheiros restantes precisarem de ser eliminados. Isto pode ser causado por software antivírus ou por os ficheiros estarem abertos no momento em que as operações de eliminação são efetuadas.
Resolução. Apague manualmente os ficheiros de sincronização que estão na pasta %temp% (
del \*sync\* /s). Em seguida, elimine os subdiretórios na pasta %temp%.
Important
Não apague nenhum ficheiro enquanto a sincronização está em curso.
Não consigo apagar o meu grupo de sincronização
A tentativa de eliminar um grupo de sincronização falha. Qualquer um dos seguintes cenários pode resultar na falha ao eliminar um grupo de sincronização:
Causa. O agente do cliente está offline.
Resolução. Certifique-se de que o agente do cliente está online e tente novamente.
Causa. O agente do cliente está desinstalado ou em falta.
Resolução. Se o agente cliente estiver desinstalado ou estiver em falta:
a. Remova o ficheiro XML do agente da pasta de instalação da Sincronização de Dados SQL, se o ficheiro existir.
b. Instale o agente num computador no local (pode ser o mesmo computador ou um diferente). Em seguida, introduza a chave do agente gerada no portal para o agente que está offline.Causa. Uma base de dados está offline.
Resolução. Certifique-se de que todas as suas bases de dados estão online.
Causa. O grupo de sincronização está a provisionar ou sincronizar.
Resolução. Espere até que o processo de provisionamento ou sincronização termine e depois tente novamente apagar o grupo de sincronização.
Não consigo cancelar o registo de uma base de dados do SQL Server
Causa. Muito provavelmente, está a tentar anular o registo de uma base de dados que já foi eliminada.
Resolução. Para desregistar uma base de dados do SQL Server, selecione a base de dados e depois selecione Forçar Eliminação.
Se esta operação não conseguir remover a base de dados do grupo de sincronização:
- Pare e depois reinicie o serviço de host do agente cliente:
a. Selecione o menu Iniciar .
b. Na caixa de pesquisa, introduza services.msc.
c. Na secção Programas do painel de resultados da pesquisa, faça duplo clique em Serviços.
d. Clique com o botão direito do rato no serviço Sincronização de Dados SQL.
e. Se o serviço estiver em execução, pare-o.
f. Clique com o botão direito do rato no serviço e selecione Iniciar.
g. Verifique se a base de dados ainda está registada. Se já não estiver registada, já terminou. Caso contrário, avance para o passo seguinte. - Abra a aplicação client agent (SqlAzureDataSyncAgent).
- Selecione Editar Credenciais e depois introduza as credenciais da base de dados.
- Prossiga com a desinscrição.
- Pare e depois reinicie o serviço de host do agente cliente:
Não tenho privilégios suficientes para iniciar serviços de sistema
Causa. Este erro ocorre em duas situações:
- O nome de utilizador e/ou a palavra-passe estão incorretos.
- A conta de utilizador especificada não tem privilégios suficientes para iniciar sessão como serviço.
Resolução. Atribua credenciais para iniciar sessão de serviço à conta de utilizador:
- Vá a Start>>>>>Gestão dos Direitos dos Utilizadores.
- Selecione Iniciar sessão como serviço.
- Na caixa de diálogo Propriedades , adicione a conta de utilizador.
- Selecione Apply (Aplicar) e OK.
- Fecha todas as janelas.
Uma base de dados tem um estado "Desatualizado"
Causa. A Sincronização de Dados SQL remove as bases de dados que estão offline do serviço há 45 dias ou mais (conforme contado desde o momento em que a base de dados ficou offline). Se uma base de dados estiver offline durante 45 dias ou mais e, em seguida, voltar a ficar online, o respetivo estado aparece como Desatualizado.
Resolução. Pode evitar um estado de Desatualizado garantindo que nenhuma das suas bases de dados fica offline durante 45 dias ou mais.
Se o estado de uma base de dados estiver Desatualizado:
- Remova a base de dados que tem um estado de Desatualizado do grupo de sincronização.
- Adicione a base de dados novamente ao grupo de sincronização.
Warning
Perdes todas as alterações feitas a esta base de dados enquanto estava offline.
Um grupo de sincronização tem o estado "Desatualizado"
Causa. Se uma ou mais alterações não se aplicarem durante todo o período de retenção de 45 dias, um grupo de sincronização pode ficar desatualizado.
Resolução. Para evitar um estado Desatualizado num grupo de sincronização, examine regularmente os resultados das suas tarefas de sincronização no visualizador do histórico. Investigue e resolva quaisquer alterações que não se apliquem.
Se o estado de um grupo de sincronização for Desatualizado, apaga o grupo de sincronização e depois recria-o.
Um grupo de sincronização não pode ser eliminado dentro de três minutos após desinstalar ou parar o agente
Não pode eliminar um grupo de sincronização no prazo de três minutos após desinstalar ou parar o agente do cliente da Sincronização de Dados SQL associado.
Resolução.
- Remover um grupo de sincronização enquanto os agentes de sincronização associados estiverem online (recomendado).
- Se o agente estiver offline, mas instalado, coloque-o online no computador no local. Aguarde que o estado do agente apareça como Online no portal da Sincronização de Dados SQL. Em seguida, remova o grupo de sincronização.
- Se o agente estiver offline porque foi desinstalado:
a. Remova o ficheiro XML do agente da pasta de instalação da Sincronização de Dados SQL, se o ficheiro existir.
b. Instale o agente num computador no local (pode ser o mesmo computador ou um diferente). Em seguida, introduza a chave do agente gerada no portal para o agente que está offline.
c. Experimente eliminar o grupo de sincronização.
O que acontece quando restauro uma base de dados perdida ou corrompida?
Se restaurar uma base de dados perdida ou danificada a partir de uma cópia de segurança, poderá existir uma não convergência de dados nos grupos de sincronização aos quais a base de dados pertence.
Mensagem de erro "Sync0022 O cliente não tem autorização para executar a ação 'syncGroupOperationResults/read'"
Se receber a mensagem Sync0022 Customer does not have authorization to perform action 'syncGroupOperationResults/read'de erro , a conta que está a tentar a operação não tem permissões suficientes ao nível da subscrição. Adicionar:
- "Microsoft.Sql/locations/syncMemberOperationResults/read"
- "Microsoft.Sql/locations/syncAgentOperationResults/read"
- "Microsoft.Sql/locations/syncGroupOperationResults/read"
Para obter mais informações, consulte operações RBAC do fornecedor de recursos e contas da base de dados da Sincronização de Dados SQL com os privilégios mínimos necessários.
Conteúdo relacionado
- O que é a Sincronização de Dados SQL para o Azure?
- Tutorial: Configurar a Sincronização de Dados SQL entre bancos de dados no Banco de Dados SQL do Azure e no SQL Server
- Usar o PowerShell para sincronizar dados entre vários bancos de dados no Banco de Dados SQL do Azure
- Usar o PowerShell para sincronizar dados entre o Banco de dados SQL e o SQL Server
- Agente de Sincronização de Dados para o SQL Sincronização de Dados
- Práticas recomendadas para o SQL do Azure Sincronização de Dados
- Monitorar e ajustar o desempenho no Banco de Dados SQL do Azure e na Instância Gerenciada SQL do Azure
- O que é a Base de Dados SQL do Azure?
- Gestão do Ciclo de Vida do Banco de Dados