Configurar a sincronização da Web
Aplica-se a:SQL Server
A opção de sincronização da Web para a Replicação de Mesclagem do SQL Server permite a replicação de dados usando o protocolo HTTPS pela Internet. Para usar a sincronização da Web, primeiro você precisa executar as seguintes ações de configuração:
Crie novas contas de domínio e mapeie logons do SQL Server.
Configure o computador que está executando o Microsoft Internet Information Services (IIS) para sincronizar assinaturas.
Configure uma publicação de mesclagem para permitir a sincronização da Web.
Configure uma ou mais assinaturas para usar a sincronização da Web.
Observação
Se você planeja replicar grandes volumes de dados ou usar grandes tipos de dados, como varchar(max), leia a seção "Replicando grandes volumes de dados" neste tópico.
Para configurar com êxito a sincronização da Web, você deve decidir como configurará a segurança para atender aos 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 usando contas locais é descrita, para maior brevidade. Essa configuração simplificada é adequada para instalações em que o IIS e o SQL Server Publisher and Distributor estão sendo executados no mesmo computador, embora seja muito mais provável (e recomendado) que você use uma topologia de vários servidores para uma instalação de produção. Você pode substituir as contas de domínio pelas contas locais nos procedimentos.
Criando novas contas e mapeando logons do SQL Server
O SQL Server Replication Listener (replisapi.dll) se conecta ao Publisher representando a conta especificada para o pool de aplicativos associado ao site de replicação.
A conta usada para o SQL Server Replication Listener deve ter permissões conforme descrito em Merge Agent Security, na seção "Conectar-se ao editor ou distribuidor". Em resumo, a conta deve:
Ser membro da Lista de Acesso à Publicação (PAL).
Ser mapeado para um login associado a um usuário no banco de dados de publicação.
Ser mapeado para um login associado a um usuário no banco de dados de distribuição.
Tenha permissões de leitura na partilha de instantâneo.
Se esta for a primeira vez que você estiver usando a Replicação do SQL Server, 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, recomendamos que você leia a seção "Práticas recomendadas de segurança para sincronização da Web" neste tópico. Para obter mais informações sobre a segurança de sincronização da Web, consulte Security Architecture for Web Synchronization.
Configurando o computador que está executando o IIS
A sincronização da Web requer que você instale e configure o IIS. Você precisará da URL para o site de replicação antes de configurar uma publicação para usar a sincronização da Web.
A sincronização da Web é suportada no IIS a partir da versão 5.0. O Assistente para Configurar Sincronização da Web não é suportado no IIS versão 7.0. A partir do SQL Server 2012, para usar o componente de sincronização da Web no servidor IIS, recomendamos que os usuários instalem o SQL Server com replicação. Esta pode ser a edição gratuita do SQL Server Express.
TLS é necessário para sincronização da Web. Você precisará de um certificado de segurança emitido por uma autoridade de certificação. Apenas para fins de teste, você pode usar um certificado de segurança autoemitido.
Para configurar o IIS para sincronização da Web
SQL Server Management Studio: Configurar o IIS para sincronização da Web
SQL Server Management Studio: Configurar o IIS 7 para sincronização da Web
Criando um Web Garden
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 Maximum Worker Processes do pool de aplicativos. Por padrão, essa propriedade é definida como 1.
Você pode oferecer suporte a um maior número de operações de sincronização simultâneas por CPU aumentando o valor da propriedade Processo de Trabalho Máximo. A expansão aumentando o número de processos de trabalho por CPU é conhecida como a criação de um "jardim da Web".
A jardinagem na Web permitirá que mais de dois assinantes sincronizem ao mesmo tempo. Ele também aumentará a utilização da CPU em replisapi.dll, o que pode afetar negativamente o desempenho geral do servidor. É importante equilibrar essas considerações ao escolher um valor para Processos de Trabalho Máximos.
Para aumentar o máximo de processos de trabalho no IIS 7
No Gerenciador de Serviços de Informações da Internet (IIS) , expanda o nó do servidor local e clique no nó Pool de Aplicativos .
Selecione o pool de aplicativos associado ao site de sincronização da Web e clique em
Configurações Avançadas no painel Ações . Na caixa de diálogo Configurações Avançadas, sob o título Modelo de Processo, clique na linha rotulada Máximo de Processos de Trabalho. Altere o valor da propriedade e, em seguida, clique em OK.
Configurando a publicação
Para usar a sincronização pela Web, crie uma publicação da mesma forma que faria para uma topologia de mesclagem padrão. Para obter mais informações, consulte Publicar dados e objetos de banco de dados.
Depois que a publicação for criada, habilite a opção para permitir a sincronização da Web usando um dos seguintes métodos: SQL Server Management Studio, Transact-SQL ou RMO (Replication Management Objects). Para habilitar a sincronização da Web, você precisará fornecer o endereço do servidor Web para conexões de assinante.
Se você estiver usando um Publicador pela primeira vez, também deverá configurar um Distribuidor e um compartilhamento de instantâneo. O Merge Agent em cada Assinante deve ter permissões de leitura no compartilhamento de snapshot. Para obter mais informações, consulte Configurar Distribuição e Proteger a Pasta de Snapshots.
gen é uma palavra reservada em arquivos XML do WebSync. Não tente publicar tabelas contendo colunas denominadas gen.
Configurando a assinatura
Depois de habilitar uma publicação e configurar o IIS, crie uma assinatura pull e especifique que a assinatura pull deve ser sincronizada usando o IIS. (A sincronização da Web é suportada apenas para subscrições pull.)
Atualização de uma versão anterior do SQL Server
Se você tiver uma topologia de sincronização da Web existente configurada e atualizar o SQL Server, deverá garantir que a versão mais recente do Replisapi.dll seja copiada para o diretório virtual usado pela sincronização da Web. Por padrão, a versão mais recente do 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 máximo padrão de 100 MB para o arquivo XML usado para transferir alterações. O limite pode ser aumentado definindo 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 esse parâmetro como um valor alto não garante que você possa sincronizar essa quantidade de dados. O limite efetivo é limitado pela quantidade de memória contígua disponível no computador do assinante. Se tiver de ter um valor superior a 100 MB, recomendamos que aumente o valor de forma incremental e teste o consumo de memória com uma carga de trabalho típica no Subscritor.
O tamanho máximo do arquivo XML é de 4 GB, mas a replicação sincroniza as alterações desse arquivo em lotes. O tamanho máximo do lote de dados e metadados é de 25 MB. Você deve garantir que os dados em cada lote não excedam aproximadamente 20 MB, o que permite metadados e qualquer outra sobrecarga. Este limite tem as seguintes implicações:
Não é possível replicar qualquer coluna que faça com que os dados e metadados excedam 25 MB. Isso pode ser um problema quando você está replicando linhas que contêm tipos de dados grandes, como varchar(max).
Se você replicar grandes volumes de dados, talvez seja necessário 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 pequeno número para cada um dos parâmetros de lote. Recomendamos que você comece com um valor de 10 e, em seguida, ajuste 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 Replication Agent Profiles.
Práticas recomendadas de segurança para sincronização da Web
Há muitas opções para configurações relacionadas à segurança na sincronização da Web. Recomendamos a seguinte abordagem:
O Distribuidor e o Publicador do SQL Server podem estar no mesmo computador (uma configuração típica para replicação de mesclagem). No entanto, o IIS deve ser instalado em um computador separado.
Use o Transport Layer Security (TLS), anteriormente conhecido como SSL (Secure Sockets Layer), para criptografar a conexão entre o Assinante e o computador que executa o IIS. Isso é necessário para a sincronização da Web.
Use a Autenticação Básica para conexões do Assinante ao IIS. Usando a Autenticação Básica, o IIS pode fazer conexões com o Editor/Distribuidor em nome do Assinante sem exigir delegação. A delegação é necessária se você usar a Autenticação Integrada.
Observação
A Autenticação Básica é o método pelo qual as credenciais são passadas para o IIS. A Autenticação Básica não impede a especificação de contas de domínio do Windows para conexões feitas ao IIS.
Especifique que o Snapshot Agent deve ser executado em uma conta de domínio do Windows e especifique que o agente deve fazer conexões como essa conta. (Esta é a configuração padrão.) Especifique que cada Merge Agent deve ser executado na conta de domínio do usuário que usa o computador do Assinante e especifique que o agente deve fazer conexões como essa conta.
Para obter mais informações sobre as permissões exigidas pelos agentes, consulte Replication Agent Security Model.
Especifique a mesma conta de domínio que o Merge Agent usa ao especificar uma conta e uma palavra-passe na página Web Server Information do Assistente de Nova Assinatura ou ao especificar 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 na qual o SQL Server Replication Listener (Replisapi.dll) é executado também é a conta que se conectará ao Publicador e ao Distribuidor durante a sincronização. Esta conta deve ser mapeada para uma conta de login 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 Configurar o IIS para sincronização da Web.
Você pode usar o FTP para entregar o instantâneo do Publisher para o computador que está executando o IIS. O instantâneo é sempre entregue do computador que está executando o IIS para o Assinante usando HTTPS. Para obter mais informações, consulte Transferência de Instantâneos por FTP.
Se os servidores na topologia de replicação estiverem protegidos por um firewall, talvez seja necessário abrir portas no firewall para habilitar a sincronização da Web.
O computador do Assinante se conecta ao computador que está executando o IIS por HTTPS usando TLS, que normalmente é configurado para usar a porta 443. Os assinantes do SQL Server Compact também podem se conectar por HTTP, que normalmente é configurado para usar a porta 80.
O computador que está executando o IIS normalmente se conecta ao Publicador ou Distribuidor usando a porta 1433 (instância padrão). Quando o Publicador ou Distribuidor é uma instância nomeada em um servidor com outra instância padrão, a porta 1500 normalmente é usada para se conectar à instância nomeada.
Se o computador que executa o IIS estiver separado do Distribuidor por um firewall e um compartilhamento FTP for usado para entrega de instantâneo, as portas usadas para FTP deverão ser abertas. Para obter mais informações, consulte Transferência de Instantâneos por FTP.
Importante
Abrir portas no firewall pode deixar o servidor exposto a ataques mal-intencionados. Certifique-se de que compreende os sistemas de firewall antes de abrir portas. Para obter mais informações, consulte Considerações de segurança para uma instalação do SQL Server.