Configurar sincronização web

Aplica-se:SQL Server

A opção de sincronização Web para SQL Server Merge Replication permite a replicação de dados usando o protocolo HTTPS pela Internet. Para usar a sincronização Web, primeiro complete os seguintes passos de configuração:

  1. Crie novas contas de domínio e mapeie os logons do SQL Server.

  2. Configure o computador que está executando o Serviços de Informações da Internet da Microsoft (ISS) para sincronizar assinaturas.

  3. Configure uma publicação de mesclagem para permitir a sincronização da Web.

  4. Configure uma ou mais assinaturas para usar a sincronização da Web.

Observação

Se você planeja replicar grandes volumes de dados ou usar tipos de dados grandes, como varchar(max), leia a seção "Replicando grandes volumes de dados" neste tópico.

Para configurar com sucesso a sincronização Web, você deve decidir como configurar a segurança para atender aos seus requisitos e políticas específicas. Tome essas decisões e crie as contas necessárias antes de tentar configurar o IIS, a publicação e as assinaturas.

Os procedimentos a seguir descrevem uma configuração de segurança simplificada que utiliza contas locais. Essa configuração simplificada é adequada para instalações onde tanto o IIS, quanto o SQL Server Publisher e o Distribuidor rodam no mesmo computador, embora seja muito mais provável (e recomendado) que você use uma topologia de múltiplos servidores para uma instalação em produção. Você pode substituir contas de domínio para as contas locais nos procedimentos.

Criação de novas contas e mapeamento de logins do SQL Server

O Ouvinte de Replicação SQL Server (replisapi.dll) conecta-se ao Publisher se passando pela conta que você especifica para o pool de aplicações associado ao site de replicação.

A conta que você usa para o SQL Server Replication Listener precisa das permissões descritas no Agente de Mesclagem Security, na seção "Conectar ao Publisher ou Distribuidor." Em resumo, a conta deve:

  • Ser membro da Lista de Acesso à Publicação (PAL).

  • Ser mapeada para um logon associado a um usuário no banco de dados de publicação.

  • Ser mapeada para um logon associado a um usuário no banco de dados de distribuição.

  • Ter permissões de Leitura no compartilhamento de instantâneos.

Se for a primeira vez que você usa o SQL Server Replication, também precisa criar contas e logins para os agentes de replicação. Para mais informações, veja as seções "Configurando a Publicação" e "Configurando a Assinatura" neste artigo.

Antes de configurar a sincronização web, leia a seção "Melhores Práticas de Segurança para Sincronização Web" neste artigo. Para obter mais informações sobre a sincronização da Web, consulte Security Architecture for Web Synchronization.

Configurando o computador que está executando o IIS

A sincronização da Web exige instalação e configuração do IIS. Você precisa da URL do site de replicação antes de poder configurar uma publicação para usar a sincronização Web.

Há suporte para sincronização da Web no IIS, a partir da versão 5.0. O Assistente de Configurar Sincronização Web não é suportado na versão 7.0 do IIS. A partir do SQL Server 2012, para usar o componente Web sync no servidor IIS, instale o SQL Server com replicação. Essa pode ser a edição gratuita do SQL Server Express.

O TLS é necessário para a sincronização da Web. Você precisa de um certificado de segurança emitido por uma autoridade certificadora. Apenas para objetivos de teste, é possível usar certificados de segurança emitidos por conta própria.

Para configurar o IIS para sincronização da Web

Criando um jardim na web

O SQL Server Replication Listener dá suporte a duas operações de sincronização simultâneas por thread. Ultrapassar esse limite pode fazer com que o Ouvinte de Replicação pare de responder. A propriedade Máximo de Processos do Operador do pool de aplicativos determina o número de threads alocadas para replisapi.dll. Por padrão, essa propriedade está definida como 1.

É possível dar suporte a um número maior de operações de sincronização simultâneas por CPU aumentando o valor da propriedade Máximo de Processos do Operador. A expansão com o aumento do número de processos do operador por CPU é conhecido como a criação de um "Ambiente Web".

A jardinagem na web permite que mais de dois assinantes se sincronizem ao mesmo tempo. Também aumenta a utilização da CPU em replisapi.dll, o que pode afetar negativamente o desempenho geral do servidor. Equilibre essas considerações ao escolher um valor para Máximo de Processos do Operador.

Para aumentar o número máximo de processos de trabalho no IIS 7

  1. No Gerenciador de Serviços de Informações da Internet (IIS), expanda o nó do servidor local e, em seguida, clique no nó Pool de Aplicativos.

  2. Selecione o pool de aplicativos associado ao site de sincronização da Web e clique em Configurações Avançadas no painel Ações .

  3. Na caixa de diálogo Configurações Avançadas, sob o título Modelo de Processo , clique na linha rotulada como Máximo de Processos do Operador. Altere o valor da propriedade e clique em OK.

Configuração da publicação

Para usar a sincronização via Web, crie uma publicação da mesma forma que você cria uma publicação de topologia de mesclagem padrão. Para obter mais informações, consulte Publicar dados e objetos de banco de dados.

Após criar a publicação, ative a opção de permitir a sincronização Web usando um dos seguintes métodos: SQL Server Management Studio, Transact-SQL ou Replication Management Objects (RMO). Para habilitar a sincronização Web, você precisa fornecer o endereço do servidor Web para conexões de assinantes.

Se você estiver usando um Publicador pela primeira vez, deverá configurar também um Distribuidor e um compartilhamento de instantâneos. O Agente de Mesclagem, em cada Assinante, precisa ter permissões de leitura no compartilhamento de instantâneo. Para obter mais informações, consulte Configurar a distribuição e Proteger uma pasta de instantâneo.

Gen é uma palavra reservada em arquivos XML websync. Não tente publicar tabelas contendo colunas chamadas gen.

Configuração da assinatura

Depois de habilitar uma publicação e configurar o IIS, crie uma assinatura pull e especifique que ela deve ser sincronizada usando o IIS. (A sincronização da Web é compatível apenas com assinaturas pull.)

Atualização a partir de uma versão anterior do SQL Server

Se você tiver uma topologia de sincronização via Web já configurada e atualizar o SQL Server, certifique-se de que a versão mais recente de replisapi.dll seja copiada para o diretório virtual usado pela sincronização via Web. Por padrão, a versão mais recente de replisapi.dll está localizada em C:\Program Files\Microsoft SQL Server\<nnn>\COM.

Replicação de grandes volumes de dados

Para ajudar a evitar possíveis problemas de memória em computadores assinantes, a sincronização web utiliza um tamanho máximo padrão de 100 MB para o arquivo XML usado para transferir alterações. Aumente o limite definindo a seguinte chave de registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Replication

WebSyncMaxXmlSize DWORD 2000000

A faixa de valores aceitáveis para essa chave é de 100 MB a 4 GB. O valor é especificado em KB. Definir esse parâmetro para um valor alto não garante que você consiga sincronizar essa quantidade de dados. O limite efetivo é restringido pela quantidade de memória contígua disponível no computador de Assinante. Se você precisar de um valor superior a 100 MB, aumente gradualmente o valor e teste o consumo de memória com uma carga de trabalho típica no Assinante.

O tamanho máximo do arquivo XML é 4 GB, mas a replicação sincroniza as alterações desse arquivo em lotes. O tamanho de lote máximo de dados e metadados é de 25 MB. Você deve garantir que os dados de cada lote não excedam aproximadamente 20 MB, o que permite metadados e qualquer outra sobrecarga. Esse limite tem as seguintes implicações:

  • Você não pode replicar nenhuma coluna que faça os dados e metadados ultrapassarem 25 MB. Esse limite pode ser um problema quando você está replicando linhas que contêm grandes tipos de dados, como varchar(max).

  • Se você replicar grandes volumes de dados, talvez precise ajustar o tamanho do lote do Agente de Mesclagem.

O tamanho do lote para replicação de mesclagem é medido em gerações, que são coleções de alterações por artigo. Use os parâmetros -DownloadGenerationsPerBatch e -UploadGenerationsPerBatch do Agente de Mesclagem para especificar o número de gerações em um lote. Para obter mais informações, consulte Replication Agente de Mesclagem.

Para grandes volumes de dados, especifique um número pequeno para cada um dos parâmetros para envio em lote. Comece com um valor de 10 e depois ajuste com base nas necessidades e desempenho da aplicação. Normalmente, você especifica esses parâmetros no perfil de um agente. Para obter mais informações sobre perfis, consulte Replication Agent Profiles.

Melhores práticas de segurança para sincronização Web

A sincronização web oferece muitas opções para configurações relacionadas à segurança. Use a seguinte abordagem:

  • O Distribuidor e o Publicador do SQL Server podem estar no mesmo computador (uma configuração típica da replicação de mesclagem). No entanto, instale o IIS em um computador separado.

  • Use o protocolo TLS (Transport Layer Security), antes conhecido como SSL (Secure Sockets Layer), para criptografar a conexão entre o Assinante e o computador que está executando o IIS. A sincronização web requer essa criptografia.

  • Use a autenticação básica para conexões do Assinante com o IIS. Ao usar Autenticação Básica, o IIS pode fazer conexões com o Publisher/Distribuidor em nome do Assinante sem exigir delegação. A delegação é necessária quando se usa a Autenticação integrada.

    Observação

    A autenticação básica é o método pelo qual são passadas credenciais ao IIS. A autenticação básica não impede de especificar contas de domínio do Windows para conexões feitas com o IIS.

  • Especifique que o Agente de Instantâneo roda sob uma conta de domínio do Windows e especifique que o agente faça conexões como essa conta. (Esta é a configuração padrão.) Especifique que cada Agente de Mesclagem roda sob a conta de domínio do usuário que usa o computador assinante, e especifique que o agente faça conexões como essa conta.

    Para mais informações sobre as permissões que os agentes exigem, veja Modelo de Segurança de Agentes de Replicação.

  • Especifique a mesma conta de domínio usada pelo Agente de Mesclagem quando você especifica uma conta e a senha na página Informações do Servidor Web do Assistente para Nova Assinatura ou quando você especifica valores para os parâmetros @internet_url e @internet_login de sp_addpullsubscription_agent. Essa conta deve ter permissões de leitura para o compartilhamento do instantâneo.

  • Cada publicação deve usar um diretório virtual separado para o IIS.

  • A conta sob a qual o SQL Server Replication Listener (replisapi.dll) roda também é a conta que se conecta ao Publisher e ao Distributor durante a sincronização. Essa conta deve ser mapeada para uma conta de login do SQL Server no Publisher e no Distributor. Para obter mais informações, consulte a seção "Definindo permissões para o SQL Server Replication Listener" no Configurar IIS para sincronização da Web.

  • Você pode usar FTP para entregar o snapshot do Publisher para o computador que roda o IIS. O computador que executa o IIS sempre entrega o snapshot ao assinante usando HTTPS. Para obter mais informações, consulte Transferir instantâneos pelo FTP.

  • Se os servidores da topologia de replicação estiverem protegidos por firewall, poderá ser necessário abrir portas no firewall para habilitar a sincronização da Web.

    • O computador assinante se conecta ao computador que roda IIS via HTTPS usando TLS, que normalmente é configurado para usar a porta 443. Assinantes do SQL Server Compact também podem se conectar por HTTP, que normalmente é configurado para usar a porta 80.

    • O computador que roda o IIS normalmente se conecta ao Publisher ou Distribuidor usando a porta 1433 (instância padrão). Quando o Publicador ou o Distribuidor é uma instância nomeada em um servidor com outra instância padrão, a porta 1500 é normalmente usada para conexão à instância nomeada.

    • Se o computador que executa o IIS estiver separado do Distribuidor por um firewall e um compartilhamento FTP for usado para a entrega de snapshots, você deve abrir as portas usadas para FTP. Para obter mais informações, consulte Transferir instantâneos pelo FTP.

Importante

A abertura de portas no firewall pode deixar o servidor exposto a ataques mal-intencionados. Certifique-se de conhecer os sistemas de firewall antes de abrir portas. Para obter mais informações, consulte Security Considerations for a SQL Server Installation.