Tutorial: Configurar a Sincronização de Dados SQL entre bancos de dados no Banco de Dados SQL do Azure e o SQL Server

Aplica-se a:Banco de Dados SQL do Azure

Neste tutorial, você aprenderá a configurar a Sincronização de Dados SQL criando um grupo de sincronização que contém as instâncias do Banco de Dados SQL do Azure e do SQL Server. O grupo de sincronização é configurado de forma personalizada e sincronizado no agendamento que você definir.

Neste tutorial, presume-se que você tenha pelo menos alguma experiência anterior com o Banco de Dados SQL e o SQL Server.

Para obter uma visão geral da Sincronização de Dados SQL, confira Sincronizar dados entre bancos de dados locais e de nuvem com a Sincronização de Dados SQL.

Para obter exemplos do PowerShell de como configurar a Sincronização de Dados SQL, confira Como sincronizar bancos de dados no Banco de Dados SQL ou entre bancos de dados no Banco de Dados SQL do Azure e no SQL Server

Importante

O banco de dados hub é um ponto de extremidade central da topologia de sincronização, no qual um grupo de sincronização tem vários pontos de extremidade do banco de dados. Todos os outros membros do banco de dados com pontos de extremidade no grupo sincronizam com o banco de dados hub.

No momento, a Sincronização de Dados SQL só tem suporte no Banco de Dados SQL do Azure. O banco de dados hub deve ser um Banco de Dados SQL do Azure.

A Hiperescala do Banco de Dados SQL do Azure só tem suporte como um banco de dados membro, não hub.

Criar grupo de sincronização

  1. Acesse o portal do Azure. Pesquise e selecione bancos de dados SQL para encontrar um Banco de Dados SQL do Azure existente.

  2. Selecione o banco de dados existente que você deseja usar como o banco de dados hub para a Sincronização de Dados.

  3. No menu de recursos do banco de dados SQL para o banco de dados selecionado, em Gerenciamento de dados, selecione Sincronizar com outros bancos de dados.

  4. Na página Sincronizar com outros bancos de dados, selecione Novo Grupo de Sincronização. A página Criar Grupo de Sincronização de Dados é aberta.

  5. Na página Criar Grupo de Sincronização de Dados, defina as seguintes configurações:

    A screenshot from the Create Data Sync page of the Azure portal, creating a new Sync Metadata Database to use with Automatic Sync.

    Configuração Descrição
    Nome do Grupo de Sincronização Insira um nome para o novo grupo de sincronização. Esse nome é diferente do nome do banco de dados.
    Sincronizar Banco de Dados de Metadados Escolha criar um banco de dados (recomendado) ou usar um banco de dados existente para servir como Banco de Dados de Metadados de Sincronização.

    A Microsoft recomenda a criação de um banco de dados vazio para uso como o banco de dados de metadados de sincronização. A Sincronização de Dados cria tabelas nesse banco de dados e executa uma carga de trabalho frequente. Esse banco de dados é compartilhado como o Banco de Dados de Metadados de Sincronização para todos os grupos de sincronização em uma região e uma assinatura selecionada. Você não pode alterar o banco de dados nem o nome dele sem remover todos os grupos de sincronização e os agentes de sincronização da região.

    Se você optar por criar um novo banco de dados, selecione Novo banco de dados. Selecione Definir configurações do banco de dados. Na página Banco de Dados SQL, nomeie e configure um novo Banco de Dados SQL do Azure e selecione OK.

    Se você escolher Usar banco de dados existente, selecione o banco de dados na lista suspensa Banco de Dados de Metadados de Sincronização.
    Sincronização Automática Selecione Ativar ou Desativar.

    Se você escolher Ativar, insira um número e selecione Segundos, Minutos, Horas ou Dias na seção Frequência de Sincronização.
    A primeira sincronização começa depois que o período de intervalo selecionado expira desde o momento em que a configuração é salva.
    Resolução de conflitos Selecione Hub win ou Membro win.

    Hub win significa que, quando ocorre um conflito, os dados no banco de dados hub substituem os dados conflitantes no banco de dados membro.

    Membro win significa que, quando ocorre um conflito, os dados no banco de dados membro substituem os dados conflitantes no banco de dados hub.
    Nome de usuário do banco de dados hub e Senha do banco de dados hub Forneça o nome de usuário e a senha para o logon autenticado por SQL do administrador do servidor para o banco de dados hub. Esse é o nome de usuário e a senha do administrador do servidor para o mesmo servidor lógico SQL do Azure em que você começou. No momento, não há suporte para a autenticação com o Microsoft Entra (o antigo Azure Active Directory).
    Usar um link privado Escolha um ponto de extremidade privado gerenciado pelo serviço para estabelecer uma conexão segura entre o serviço de sincronização e o banco de dados hub.
  6. Selecione OK e aguarde até que o grupo de sincronização seja criado e implantado.

  7. Na página Novo Grupo de Sincronização, se você selecionou Usar link privado, aprove a conexão de ponto de extremidade privado. O link na mensagem informativa levará você à experiência de conexões de ponto de extremidade privado, em que poderá aprovar a conexão.

    A screenshot from the Azure portal Private Endpoint connections page, showing where to approve a private link.

    Observação

    Os links privados do grupo de sincronização e os membros de sincronização precisam ser criados, aprovados e desabilitados separadamente.

Adicionar membros de sincronização

Depois que o novo grupo de sincronização for criado e implantado, abra o grupo de sincronização e acesse a página Bancos de dados, na qual você selecionará os membros de sincronização.

Observação

Para atualizar ou inserir o nome de usuário e a senha para o banco de dados hub, acesse a seção Banco de Dados Hub na página Selecionar membros de sincronização.

Adicionar um banco de dados no Banco de Dados SQL do Azure como membro a um grupo de sincronização

  1. Na seção Selecionar membros de sincronização, opcionalmente, adicione um banco de dados do Banco de Dados SQL do Azure ao grupo de sincronização selecionando Adicionar um Banco de Dados do Azure. A página Configurar Banco de Dados do Azure é aberta.

    A screenshot from the Azure portal of the Configure Azure Database page, where you can add a database to the sync group.

  2. Na página Configurar Banco de Dados SQL do Azure, altere as seguintes configurações:

    Configuração Descrição
    Sincronizar Nome do Membro Forneça um nome para o novo membro de sincronização. Esse nome é diferente do nome do banco de dados.
    Assinatura Selecione a assinatura associada do Azure para fins de cobrança.
    Azure SQL Server Selecione o servidor existente.
    Banco de Dados SQL do Azure Selecione o banco de dados existente no Banco de Dados SQL.
    Sincronizar Trajeto A direção da sincronização pode ser Hub para Membro, Membro para Hub ou ambos. Selecione Do Hub, Para o Hub ou Sincronização Bidirecional. Para obter mais informações, confira Como funciona.
    Nome de usuário e Senha Insira as credenciais existentes do servidor no qual o banco de dados membro está localizado. Não insira novas credenciais nesta seção.
    Usar um link privado Escolha um ponto de extremidade privado gerenciado pelo serviço para estabelecer uma conexão segura entre o serviço de sincronização e o banco de dados membro.
  3. Selecione OK e aguarde até que o novo membro de sincronização seja criado e implantado.

Adicionar um banco de dados em uma instância do SQL Server como membro a um grupo de sincronização

  1. Na seção Banco de Dados Membro, opcionalmente, adicione um banco de dados em uma instância do SQL Server ao grupo de sincronização selecionando Adicionar um Banco de Dados Local.

  2. A página Configurar Local abre e nela você pode fazer o seguinte:

  3. Selecione Escolher o Gateway de Agente de Sincronização. A página Selecionar Agente de Sincronização é aberta.

    A screenshot from the Azure portal, in the Configure On-Premises steps. When the Choose the Sync Agent Gateway option is selected, the Select Sync Agent page is shown.

  4. Na página Escolher Agente de Sincronização, escolha se deseja usar um agente existente ou criar um agente.

    Se você escolher Agentes existentes, selecione o agente existente na lista.

    Se você escolher Criar um novo agente, faça o seguinte:

    1. Faça o download do agente de sincronização de dados pelo link fornecido e instale-o no computador em que o SQL Server está localizado. Baixe também o agente diretamente no SQL Azure Data Sync Agent. Para obter práticas recomendadas sobre o agente cliente de sincronização, consulte Práticas recomendadas para Sincronização de Dados SQL do Azure.

      Importante

      Você precisa abrir a porta de saída TCP 1433 no firewall para permitir que o agente do cliente se comunique com o servidor.

    2. Insira um Nome de Agente.

    3. Selecione Criar e Gerar Chave e copie a chave do agente para a área de transferência.

    4. Selecione OK para fechar a página Selecionar o Agente de Sincronização.

  5. No servidor onde o agente cliente de sincronização está instalado, localize e execute o aplicativo Agente de Sincronização do Cliente.

    A screenshot from the Microsoft SQL Data Sync 2.0 client agent app. The Submit Agent Key button is highlighted.

    1. No aplicativo do agente de sincronização, selecione Enviar Chave do Agente. A caixa de diálogo Configuração de Banco de Dados de Metadados de Sincronização é aberta.

    2. Na caixa de diálogo Configuração de Banco de Dados de Metadados de sincronização, cole a chave do agente copiada do portal do Azure. Forneça também as credenciais existentes para o servidor no qual o Banco de Dados de Metadados de Sincronização está localizado. Selecione OK e aguarde até que a configuração seja concluída.

      A screenshot from the Microsoft SQL Data Sync 2.0 client agent app. Enter the agent key and server credentials.

      Observação

      Se você receber um erro de firewall, crie uma regra de firewall no Azure para permitir o tráfego de entrada do computador do SQL Server. Você pode criar a regra manualmente no portal ou no SQL Server Management Studio (SSMS). No SSMS, conecte-se ao banco de dados hub no Azure inserindo o nome dele como <hub_database_name>.database.windows.net.

    3. Selecione Registrar para registrar um banco de dados do SQL Server com o agente. A caixa de diálogo Configuração do SQL Server é aberta.

      A screenshot from the Microsoft SQL Data Sync 2.0 client agent app. Add and configure a SQL Server database.

    4. Na caixa de diálogo Configuração do SQL Server, escolha se conectar usando a autenticação do SQL Server ou a autenticação do Windows. Se você escolher a autenticação do SQL Server, insira as credenciais existentes. Forneça o nome do SQL Server e o nome do banco de dados que você deseja sincronizar e selecione Testar conectividade para testar as configurações. Em seguida, selecione Salvar e o banco de dados registrado aparece na lista.

      A screenshot from the Microsoft SQL Data Sync 2.0 application showing that the SQL Server database and machine are now registered.

    5. Feche o aplicativo Agente de Sincronização do Cliente.

  6. No portal do Azure, na página Configurar Local, selecione Selecionar o Banco de Dados.

  7. Na página Selecionar Banco de Dados, no campo Nome do Membro de Sincronização, forneça um nome para o novo membro de sincronização. Esse nome é diferente do nome do banco de dados. Selecione o banco de dados na lista. No campo Sincronizar Trajeto, selecione Sincronização Bidirecional, Para o Hub ou Do Hub.

  8. Selecione OK para fechar a página Selecionar Banco de Dados. Em seguida, selecione OK para fechar a página Configurar Local e aguarde até o novo membro de sincronização ser criado e implantado. Por fim, selecione OK para fechar a página Selecionar membros de sincronização.

Observação

Para se conectar à Sincronização de Dados SQL e ao agente local, adicione seu nome de usuário à função DataSync_Executor. A Sincronização de Dados cria essa função na instância do SQL Server.

Configurar o grupo de sincronização

Depois que os novos membros do grupo de sincronização forem criados e implantados, acesse a seção Tabelas na página Grupo de Sincronização de Banco de Dados.

A screenshot from the Azure portal, on the Tables page, select tables and fields to sync.

  1. Na página Tabelas, selecione um banco de dados na lista de membros do grupo de sincronização e selecione Atualizar esquema. Aguarde alguns minutos de atraso no esquema de atualização. O atraso pode ser de mais alguns minutos se você está usando o link privado.

  2. Na lista, selecione a tabela que deseja sincronizar. Por padrão, todas as colunas estão selecionadas, portanto, desative a caixa de seleção das colunas que você não deseja sincronizar. Deixe a coluna de chave primária selecionada.

  3. Clique em Salvar.

  4. Por padrão, os bancos de dados não são sincronizados até que ocorra uma execução agendada ou manual. Para executar uma sincronização manual, procure o Banco de Dados SQL no portal do Azure, selecione Sincronizar com outros bancos de dados e escolha o grupo de sincronização. A página Sincronização de Dados abre. Selecione Sincronizar.

    A screenshot from the Azure portal showing the manual sync button for a Database Sync Group.

Perguntas frequentes

Esta seção responde a perguntas frequentes sobre o serviço Sincronização de Dados SQL do Azure.

A Sincronização de Dados SQL cria completamente as tabelas?

Se estiverem faltando tabelas do esquema de sincronização no banco de dados de destino, a Sincronização de Dados SQL as cria com as colunas que você selecionou. No entanto, isso não resulta em um esquema totalmente fiel pelos seguintes motivos:

  • Somente as colunas selecionadas são criadas na tabela de destino. As colunas não selecionadas serão ignoradas.
  • Somente os índices de coluna selecionados são criados na tabela de destino. Com relação às colunas não selecionadas, esses índices são ignorados.
  • Índices em colunas de tipo XML não são criados.
  • Restrições CHECK não são criadas.
  • Os gatilhos nas tabelas de origem não são criados.
  • As exibições e os procedimentos armazenados não são criados.

Devido a essas limitações, recomendamos as seguintes ações:

  • Para ambientes de produção, crie um esquema totalmente fiel por conta própria.
  • Ao fazer experiências com o serviço, use o recurso de provisionamento automático.

Por que vejo tabelas que não criei?

A Sincronização de Dados cria tabelas adicionais no banco de dados para o controle de alterações. Não as exclua, pois a Sincronização de Dados deixará de funcionar.

Meus dados são convergentes após uma sincronização?

Não necessariamente. Considere um grupo de sincronização com um hub e três spokes (A, B e C), em que as sincronizações são: Hub para A, Hub para B e Hub para C. Se uma alteração for feita no banco de dados A depois da sincronização de Hub para A, essa alteração não será gravada no banco de dados B ou C até a próxima tarefa de sincronização.

Como fazer para inserir alterações de esquema em um grupo de sincronização?

Faça e propague todas as alterações de esquema manualmente.

  1. Replique as alterações de esquema manualmente para o hub e para todos os membros de sincronização.
  2. Atualize o esquema de sincronização.

Para adicionar novas tabelas e colunas:

Novas tabelas e colunas não causam impacto na sincronização atual, e a Sincronização de Dados as ignora até que sejam adicionadas ao esquema de sincronização. Ao adicionar novos objetos de banco de dados, siga esta sequência:

  1. Adicione novas tabelas ou colunas ao hub e a todos os membros de sincronização.
  2. Adicione novas tabelas ou colunas ao esquema de sincronização.
  3. Comece a inserir os valores nas novas tabelas e colunas.

Para alterar o tipo de dados de uma coluna:

Ao alterar o tipo de dados de uma coluna existente, a Sincronização de Dados continuará funcionando, desde que os novos valores ajustem-se ao tipo de dados original definido no esquema de sincronização. Por exemplo, se você alterar o tipo no banco de dados de origem de int para bigint, a Sincronização de Dados continuará funcionando até que você insira um valor grande demais para o tipo de dados int. Para concluir a alteração, replique a alteração do esquema manualmente para o hub e para todos os membros de sincronização, em seguida, atualize o esquema de sincronização.

Como posso exportar e importar um banco de dados com a Sincronização de Dados?

Depois de exportar um banco de dados como um arquivo .bacpac e de importar o arquivo para criar um banco de dados, faça o seguinte para usar a Sincronização de Dados no novo banco de dados:

  1. Limpe os objetos e as tabelas adicionais da Sincronização de Dados no novo banco de dados usando o cleanup.sql completo da Sincronização de Dados. O script exclui do banco de dados todos os objetos necessários da Sincronização de Dados.
  2. Recrie o grupo de sincronização com o novo banco de dados. Se você não precisar mais do grupo de sincronização antigo, exclua-o.

Onde posso saber mais sobre o agente cliente?

Para perguntas frequentes sobre o agente cliente, confira Perguntas frequentes sobre o agente.

É necessário aprovar manualmente o link para começar a usá-lo?

Sim. Você deve aprovar manualmente o ponto de extremidade privado gerenciado pelo serviço na página Conexões de ponto de extremidade privado do portal do Azure durante a implantação do grupo de sincronização ou por meio do PowerShell.

Por que recebo um erro de firewall quando o trabalho de sincronização está provisionando meu banco de dados do Azure?

Isso pode acontecer porque os recursos do Azure não têm permissão para acessar o servidor. Existem duas soluções:

  1. Verifique se o firewall no banco de dados do Azure tem a configuração Permitir que serviços e recursos do Azure acessem este servidor definida como Sim. Para obter mais informações, confira Controles de acesso à rede e ao Banco de Dados SQL do Azure.
  2. Configure um link privado para a Sincronização de Dados, que é diferente de um Link Privado do Azure. O Link Privado é a maneira de criar grupos de sincronização usando uma conexão segura com bancos de dados que ficam atrás de um firewall. O Link Privado da Sincronização de Dados SQL é um ponto de extremidade gerenciado pela Microsoft e cria internamente uma sub-rede dentro da rede virtual existente. Assim, não há necessidade de criar outra rede virtual ou sub-rede.

Próximas etapas

Parabéns! Você criou um grupo de sincronização que inclui um banco de dados SQL do Azure e um banco de dados do SQL Server.

Para saber mais sobre a Sincronização de Dados SQL, veja:

Para saber mais sobre o Banco de Dados SQL, veja: