Publicação e assinatura do Microsoft SQL Server
A função de publicação e assinatura fornecida pelo Microsoft SQL Server usa a tecnologia de replicação para sincronização de dados. Essa função permite dividir operações de leitura e gravação de dados e sincronizar dados off-line e on-line.
Esta seção descreve como usar o SQL Server Management Studio (SSMS) para configurar a publicação e a assinatura. Você pode criar publicações e assinaturas para instâncias do RDS for SQL Server no console. Para obter detalhes, consulte Criação de uma publicação.
Preparativos
Ambientes
- Ambiente local: um banco de dados local executando Microsoft SQL Server 2014 Standard Edition no Windows
- Ambiente on-line:
- uma única instância de BD com 2 vCPUs e 16 GB de memória executando Microsoft SQL Server 2014 Standard Edition, vinculada a um EIP
- Uma instância de BD primária/em espera com 4 vCPUs e 8 GB de memória executando Microsoft SQL Server 2014 Standard Edition, vinculada a um EIP
Configuração do ambiente
- Publicador: mantém os dados de origem e distribui dados específicos para o distribuidor. Neste exemplo, use o servidor local como editor.
- Use o SSMS para fazer logon no banco de dados local como usuário sa. Clique com o botão direito do mouse na pasta Replication e, em seguida, clique em Configure Distribution. Você pode usar seu servidor local como distribuidor ou usar outro servidor como distribuidor. Clique em Next.
- sa é a conta de administrador.
- A conta de logon deve ter a permissão sysadmin. Caso contrário, a publicação e a assinatura não poderão ser configuradas.
- Especifique uma pasta de snapshot raiz e clique em Next.
As permissões de agente relacionadas devem ser configuradas para a publicação para que a conta do agente tenha as permissões para ler e gravar na pasta.
- Especifique os nomes e diretórios do banco de dados de distribuição e dos arquivos de log e clique em Next.
- Especifique o distribuidor para o publicador e clique em Next.
- Clique em Finish para concluir a configuração.
- Use o SSMS para fazer logon no banco de dados local como usuário sa. Clique com o botão direito do mouse na pasta Replication e, em seguida, clique em Configure Distribution. Você pode usar seu servidor local como distribuidor ou usar outro servidor como distribuidor. Clique em Next.
- Configurar o arquivo de controle de conta do agente
- Você precisa adicionar a conta do agente à propriedade de controle da pasta de snapshot de acordo com o diretório da pasta. Caso contrário, uma mensagem de erro será exibida, indicando que o acesso foi negado.
- Abra o SQL Server Configuration Manager local, clique com o botão direito do mouse no agente correspondente, escolha Properties no menu de atalho e copie o nome da conta.
- Retorne ao diretório da pasta de snapshot. Clique com o botão direito do mouse na pasta e escolha Properties no menu de atalho. Na caixa de diálogo exibida, escolha Security > Edit > Add. Selecione o caminho local e o nome da conta do agente, clique em OK e selecione todas as permissões.
- Distribuidor: distribui dados para assinantes específicos. Neste exemplo, o distribuidor e o publicador compartilham o mesmo servidor. Portanto, nenhuma configuração extra é necessária. Para obter mais informações, consulte Configurar distribuição no site oficial.
- Assinante: recebe dados do distribuidor. A assinatura inclui assinatura push e assinatura pull.
- Assinatura push: o publicador propaga as alterações para um assinante sem uma solicitação do assinante. As alterações podem ser enviadas para os assinantes continuamente ou em uma programação frequentemente recorrente.
- Assinatura pull: o assinante solicita alterações feitas no publicador. Os dados geralmente são sincronizados sob demanda ou em um cronograma, em vez de continuamente. As instâncias do RDS for SQL Server não oferecem suporte à assinatura pull. Neste exemplo, somente a assinatura push pode ser configurada.
Antes da assinatura, verifique se a instância do RDS for SQL Server pode ser acessada a partir do servidor local.
Antes de configurar a assinatura local, você precisa configurar as informações da instância do RDS no servidor local.
- Configure um nome de alias para o assinante no servidor local. O serviço de assinatura não oferece suporte ao acesso baseado em endereço IP. Portanto, você precisa mapear o EIP da instância de BD do RDS para um nome de alias. Para obter o nome do alias, faça logon na instância de BD do RDS e execute a seguinte instrução SQL:
select @@SERVERNAME
- Após obter o nome do alias, abra o SQL Server Configuration Manager local, selecione os clientes nativos, clique com o botão direito do mouse em Aliases e escolha New Aliases no menu de atalho.
- Insira as informações relacionadas e clique em OK.
Tabela 1 Descrição do parâmetro Parâmetro
Descrição
Alias Name
Nome do alias configurado em 1
Port No
Número da porta da instância do RDS
Server
EIP vinculado à instância do RDS
- Em C:\Windows\System32\drivers\etc, abra o arquivo host e adicione um mapeamento:
Server_address MSSQL-177FFD84\MSSQL2014STD
Criar uma publicação
- Crie uma publicação.
Expanda a pasta Replication e clique com o botão direito do mouse na pasta Local Publications. Clique em New Publication.
- Selecione Transactional publication.
- Selecione uma tabela como objeto de publicação.
- Adicione o objeto a ser filtrado para publicação personalizada.
- Crie um snapshot para replicar o estado atual da tabela. Você também pode configurar um agente de snapshot para executar o plano.
- Configure a segurança do agente. Você precisa configurar a conta de logon para a conta sa local.
- Configure o nome da publicação e clique em Finish.
- Verifique se a publicação é criada usando o monitor de replicação.
Criar uma assinatura
- Clique com o botão direito do mouse na publicação para a qual deseja criar uma ou mais assinaturas e selecione New Subscriptions.
- Configure os parâmetros necessários e clique em Next.
- Selecione a subscrição por push e clique em Next.
- Clique em Add Subscriber. Tanto o mecanismo do SQL Server quanto o mecanismo não de SQL Server podem ser usados como assinantes. Neste exemplo, use a instância do RDS for SQL Server como o assinante.
- Selecione um banco de dados como o objeto de assinatura.
- Configure a conexão com o assinante.
- Use uma conta de banco de dados que seja válida por um longo tempo para garantir a validade da assinatura. Você pode usar a conta para fazer logon na instância do RDS for SQL Server. Em seguida, clique em OK.
- Verifique se a assinatura foi criada com êxito.
- Mova o cursor para a publicação para exibir as informações de assinatura.