Configurando a sincronização da Web

A opção de sincronização da Web da Replicação de Mesclagem do SQL Server habilita a replicação de dados usando o protocolo HTTP pela Internet. Para usar a sincronização da Web, primeiro você precisa executar as ações de configuração a seguir:

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

  2. Configure o computador que está executando o Serviços de Informações da Internet (IIS) do Microsoft 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çãoObservaçã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 a sincronização da Web com êxito, você deve decidir como configurará a segurança para atender a seus requisitos e políticas específicos. É melhor tomar essas decisões e criar as contas necessárias antes de tentar configurar o IIS, a publicação e as assinaturas.

Nos procedimentos a seguir, uma configuração de segurança simplificada que usa contas locais é descrita, para brevidade. Essa configuração simplificada é adequada para instalações onde o IIS e o Publicador e o Distribuidor do SQL Server estão em execução no mesmo computador, embora seja muito mais provável (e recomendável) que você use uma topologia de vários servidores para uma instalação de produção. Você pode substituir contas de domínio para as contas locais nos procedimentos.

Criando novas contas e mapeando logons do SQL Server

O SQL Server Replication Listener (replisapi.dll) conecta-se ao Publicador representando a conta especificada para o pool de aplicativos que está associado ao site de replicação.

A conta usada para o SQL Server Replication Listener deve ter permissões conforme descrito no tópico Segurança do Merge Agent, na seção "Conectar-se ao publicador ou ao distribuidor". Em resumo, a conta deve:

  • Ser um 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 esta for a primeira vez que você está usando a Replicação do SQL Server, você também precisará criar contas e logons para os agentes de replicação. Para obter mais informações, consulte as seções "Configurando a publicação" e "Configurando a assinatura" neste tópico.

Antes de configurar a sincronização da Web, é recomendável ler a seção "Práticas recomendadas de segurança para sincronização da Web" neste tópico. Para obter mais informações sobre a sincronização da Web, consulte Arquitetura de segurança para sincronização da Web.

Configurando o computador que está executando o IIS

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

A sincronização da Web tem suporte no IIS versão 5.0, IIS versão 6.0 e IIS versão 7. O Assistente para Configurar a Sincronização da Web não tem suporte no IIS versão 7.0.

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

Para usar a sincronização da Web com o IIS 7, você deve instalar e configurar manualmente o componente de replicação (replisapi.dll) e, em seguida, criar e configurar um site para uso da replicação.

Para configurar o IIS para sincronização da Web

Criando um ambiente Web

O SQL Server Replication Listener dá suporte a duas operações de sincronização simultâneas por thread. Exceder esse limite pode fazer com que o Replication Listener pare de responder. O número de threads alocados para replisapi.dll é determinado pela propriedade Máximo de Processos do Operador do pool de aplicativos. Por padrão, essa propriedade é 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".

O ambiente Web permitirá que mais de dois Assinantes sincronizem ao mesmo tempo. Também aumentará a utilização de CPU por replisapi.dll, o que pode afetar negativamente o desempenho global do servidor. É importante balancear essas considerações ao escolher um valor para Máximo de Máximos do Operador.

Para aumentar Máximo de Processos do Operador no IIS 7

  1. No Gerenciador dos Serviços de Informações da Internet (IIS), expanda o nó do servidor local e 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.

Configurando a publicação

Para usar a sincronização da Web, primeiro crie uma publicação da mesma forma como o faria para uma topologia de mesclagem padrão. Para obter mais informações, consulte Publicando dados e objetos de banco de dados.

Depois de criar a publicação, habilite a opção para permitir a sincronização da Web usando um dos seguintes métodos: SQL Server Management Studio, Transact-SQL ou Replication Management Objects (RMO). Para habilitar a sincronização da Web, é necessário fornecer o endereço do servidor Web para conexões do Assinante.

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

Para configurar uma publicação para permitir a sincronização da Web

Configurando a 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 tem suporte apenas para assinaturas pull.)

Para configurar uma assinatura para usar a sincronização da Web

Atualizando de uma versão anterior do SQL Server

Se houver uma topologia de sincronização da Web existente e você atualizar o SQL Server, será necessário verificar se a última versão de Replisapi.dll foi copiada para o diretório virtual usado pela sincronização da Web. Por padrão, a última versão de Replisapi.dll está localizada em C:\Arquivos de Programas\Microsoft SQL Server\<nnn>\COM.

Replicando grandes volumes de dados

Para ajudar a evitar possíveis problemas de memória em computadores Assinantes, a sincronização da Web usa um tamanho padrão máximo de 100 MB para o arquivo XML usado para transferir alterações. O limite pode ser aumentado definindo-se a seguinte chave do Registro:

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

WebSyncMaxXmlSize DWORD 2000000

O intervalo de valores aceitáveis para esta chave é de 100 MB a 4 GB. O valor é especificado em KB. Definir este parâmetro como um valor alto não garante que você pode sincronizar essa quantidade de dados. O limite efetivo é restringido pela quantidade de memória contígua disponível no computador de Assinante. Se for necessário um valor maior que 100 MB, recomendamos que você aumente o valor de modo incremental 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 não excedam a aproximadamente 20 MB em cada lote, o que permite metadados e qualquer outra sobrecarga. Esse limite tem as seguintes implicações:

  • Você não pode reproduzir nenhuma coluna que faça com que os dados e metadados excedam 25 MB. Esse poderia ser um assunto quando você estiver reproduzindo linhas que contenham tipos de dados grandes, como varchar(max).

  • Se você reproduzir grandes volumes de dados, talvez tenha que ajustar o tamanho do lote do Merge Agent.

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

Para grandes volumes de dados, especifique um número pequeno para cada um dos parâmetros de envio em lote. É recomendável começar com um valor de 10 e ajustá-lo com base nas necessidades e no desempenho do aplicativo. Normalmente, esses parâmetros são especificados em um perfil de agente. Para obter mais informações sobre perfis, consulte Perfis do Replication Agent.

Práticas recomendadas de segurança para a sincronização da Web

Há muitas opções para configurações relacionadas à segurança na sincronização da Web. É recomendável usar a abordagem a seguir:

  • 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, o IIS dever ser instalado em um computador separado.

  • Use o protocolo SSL para criptografar a conexão entre o Assinante e o computador que está executando o IIS. Isso é necessário para a sincronização da Web.

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

    ObservaçãoObservaçã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 a especificação de contas do domínio do Windows para conexões feitas no IIS.

  • Especifique que o Snapshot Agent seja executado em uma conta de domínio do Windows, e especifique que o agente faça conexões de acordo com essa conta. (Essa é a configuração padrão.) Especifique que cada Merge Agent seja executado na conta de domínio do usuário que utiliza o computador Assinante, e especifique que o agente faça conexões segundo essa conta.

    Para obter mais informações sobre permissões requeridas pelos agentes, consulte Modelo de segurança do agente de replicação.

  • Especifique a mesma conta de domínio que o Merge Agent usa quando a conta e a senha são especificadas na página Informações do Servidor Web do Assistente para Nova Assinatura ou quando se especificam 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 de 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) executa também é a conta que se conectará ao Publicador e ao Distribuidor durante a sincronização. Essa conta deve ser mapeada para uma conta de logon do SQL no Publicador e no Distribuidor. Para obter mais informações, consulte a seção "Definindo permissões para o SQL Server Replication Listener" no Como configurar o IIS para sincronização da Web.

  • É possível usar FTP para entregar o instantâneo do Publicador ao computador que está executando o IIS. O instantâneo é sempre entregue do computador que está executando o IIS ao Assinante, usando HTTPS. Para obter mais informações, consulte Transferindo 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 conecta-se ao computador que está executando o IIS por HTTPS usando o SSL que, normalmente, é configurado para usar a porta 443. Os assinantes do SQL Server Compact 3.5 SP2 também podem ser conectados por HTTP, que é configurado normalmente para usar a porta 80.

    • O computador que está executando o IIS, em geral, conecta-se ao Publicador ou ao 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 está executando o IIS estiver separado do Distribuidor por um firewall, e um compartilhamento de FTP for usado para a entrega de instantâneo, as portas usadas para o FTP precisarão ser abertas. Para obter mais informações, consulte Transferindo instantâneos pelo FTP.

Observação importanteImportante

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 Considerações sobre segurança para uma instalação do SQL Server.