Artigo: 321822 - Última revisão: segunda-feira, 2 de Fevereiro de 2004 - Revisão: 3.1

COMO: Replicar entre computadores com o SQL Server em domínios não fidedignos ou através da Internet

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo poderá conter hiperligações para conteúdo em inglês (ainda não traduzido).

Nesta página

Expandir tudo | Reduzir tudo

Sumário


Nesta tarefa


Configurar a replicação entre dois computadores com o SQL Server

Considere as seguintes questões quando configurar a replicação entre dois computadores com o SQL Server em execução.

Contexto de segurança do agente de replicação

Pode configurar o agente de replicação (incluindo o Log Reader Agent, o Merge Agent, o Distribution Agent e o Snapshot Agent):
  • Represente a conta de agente do SQL Server no servidor local (uma ligação fidedigna).

    - ou -
  • Utilize a autenticação do SQL Server.
O ficheiro executável para o agente (incluindo Logread.exe e Replmerg.exe) é executado no contexto da conta de agente do SQL Server do servidor onde o agente está a ser executado. As duas opções anteriores determinam o modo como os agentes de replicação estabelecem ligação ao serviço SQL Server no servidor de destino. Estas opções não controlam a forma como as comunicações ocorrem ao nível do sistema operativo. Tendo a noção de que estas opções não controlam as comunicações a este nível, poderá resolver a maior parte dos problemas relacionados com a segurança que ocorram durante a configuração da replicação.

Biblioteca de rede de cliente predefinida

A partir do SQL Server 2000 (Microsoft Data Access Component [MDAC] 2.6), a biblioteca de rede (Net-Library) de cliente predefinida é configurada como TCP/IP. Em versões anteriores do SQL Server, a biblioteca de rede de cliente predefinida é configurada como pipes nomeados. Se o computador cliente utilizar pipes nomeados para comunicar com o servidor utilizando um alias ou devido ao facto de o cliente ter uma versão anterior do MDAC, e de os servidores se encontrarem em domínios fidedignos, o ficheiro executável do agente de replicação cria um pipe nomeado (um ficheiro ao nível do sistema operativo) no servidor de destino para estabelecer uma ligação.

O ficheiro executável cria um pipe nomeado utilizando o contexto de segurança da conta de agente do SQL Server no servidor de origem. Se o servidor de destino não conseguir verificar as credenciais desta conta, a ligação não terá êxito e o utilizador receberá a seguinte mensagem de erro:
SQL server does not exist or access is denied.
Para obter informações mais pormenorizadas sobre esta mensagem de erro, a Microsoft recomenda que tente estabelecer uma ligação do servidor de origem para o servidor de destino utilizando uma ferramenta como o Isql.exe do ODBC DSN Wizard. Receberá uma mensagem de erro do sistema operativo semelhante a uma das seguintes mensagens de erro:
  • 10060 - Connection timed out
  • 10061 - Connection refused
Receberá estes erros se o servidor de destino se encontrar num domínio não fidedigno ou se os servidores forem autónomos e estiverem ligados através da Internet. Não é possível estabelecer ligações por pipe nomeado entre dois servidores autónomos diferentes, através da Internet. Para testar ligações por pipe nomeado entre dois servidores, pode usar os utilitários Makepipe e Readpipe. Para obter mais informações sobre os utilitários Makepipe e Readpipe, consulte o tópico "Named Pipes Client Connections" no SQL Server Books Online.

Se utilizar TCP/IP, a ligação é estabelecida utilizando as chamadas da API Winsock efectuadas utilizando a biblioteca de rede de sockets. A ligação estabelece uma sessão de TCP subjacente utilizando o protocolo TCP de handshake tridireccional. O computador cliente abre uma porta de origem e comunica para uma porta de destino.

Problemas que podem decorrer da utilização de um endereço IP para configurar a replicação


Se tentar registar o servidor (editor [Publisher] ou subscritor [Subscriber]) utilizando um endereço IP em vez de um alias de cliente, ou se o alias de cliente for diferente do nome de NetBIOS real do SQL Server, o agente de intercalação poderá falhar e receberá as seguintes mensagens de erro:
  • Erro 20084:
    The process could not connect to subscriber 'IP address'.
  • Erro 18456:
    Login failed for user 'administrador'
  • The subscription to publication 'teste' is invalid.
  • Erro 14010:
    The remote server is not defined as a subscription server.
    Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
    217395  (http://support.microsoft.com/kb/217395/PT/ ) PRB: Error 18482: "Unable to Connect to Site . . ."
  • Could not configure [nome do SQL Server] as the distributor for [nome do SQL Server].
  • Erro 18483:
    Could not connect to server [nome do SQL Server] because 'distributor_admin' is not defined as a remote login at the server.
Para evitar receber estas mensagens, crie sempre um alias com o mesmo nome do servidor que está a tentar registar no SQL Server Enterprise Manager.




Configurar a replicação entre dois computadores com o SQL Server através da Internet

Exemplo 1: O subscritor tem esquema e data e não é necessário o instantâneo inicial.


Subscrição de emissão (Push Subscription)
  1. A partir de uma linha de comandos, efectue um ping do editor a partir do subscritor e, em seguida, efectue um ping do subscritor a partir do editor, para se certificar de que conseguem estabelecer ligação entre si.

    É necessária a resolução de nomes para que exista comunicação entre o editor e o subscritor.
  2. No registo de erros do SQL Server do subscritor, anote a porta em que o computador com o SQL Server escuta.
  3. Utilize as seguintes informações para criar, no editor, um alias de TCP/IP para o subscritor, utilizando o Client Network Utility:
    • Server alias: nome do subscritor
    • Net-Library: TCP/IP
    • Connection parameters
    • Server name: endereço IP do subscritor
    • Port number: número da porta do subscritor (por predefinição, esta é a porta 1433)
  4. Solicite a criação de uma conta de início de sessão do SQL Server no subscritor, com permissões suficientes na base de dados do subscritor. Para obter mais informações sobre como configurar a segurança, consulte os seguintes tópicos no SQL Server 2000 Books Online:
    • "Agent Login Security"
    • "Connecting to the Distributor"
    • "Replication Security"
    • "Security Considerations (Location: Replication)"
  5. Registe o subscritor no SQL Server Enterprise Manager do editor utilizando a autenticação do SQL Server.
  6. No editor, active o servidor de destino como subscritor. Para tal, siga estes passos:
    1. NO SQL Server Enterprise Manager, no menu Tools, aponte para Replication e clique em Configure Publishing, Subscribers, and Distribution.
    2. Clique no separador Subscribers e clique no botão (...) de propriedades.
    3. Clique no separador General, clique em Using SQL server authentication of this account para especificar que os agentes de replicação utilizam a autenticação do SQL Server e adicione as informações de conta do passo 4.
Subscrição de solicitação (Pull Subscription)


Para solicitar a subscrição, crie um alias para o editor no subscritor e, em seguida, siga estes passos:
  1. No SQL Server Enterprise Manager do subscritor, no menu Tools, aponte para Replication e clique em Configure Publishing, Subscribers, and Distribution.
  2. Clique no separador Publishers.
  3. Clique no editor e clique no botão (...) de propriedades.
  4. Clique no separador General, clique em Using SQL server authentication of this account para especificar que os agentes de replicação utilizam a autenticação do SQL Server e especifique uma conta que tenha permissões suficientes na base de dados de publicação.

Exemplo 2: O subscritor não tem o esquema e a data e é necessária a subscrição inicial do editor.

Este exemplo necessita que configure o serviço FTP do editor e que configure o subscritor para transferir o instantâneo inicial do site de FTP. Para obter mais informações, consulte os seguintes tópicos no SQL Server Books Online:
  • "Security and Replication Over the Internet"
  • "Publishing Data Over the Internet Using TCP/IP and FTP"
  • "Configuring a Publisher or Distributor to Listen on TCP/IP"
  • "Configuring a Publication to Allow Subscribers to Retrieve Snapshots Using FTP"
  • "Configuring a Subscription to Use FTP to Retrieve a Snapshot"
  • "Generating the Initial Snapshot"
Certifique-se de que a biblioteca de rede de cliente predefinida do servidor em que é executado o agente de replicação está configurada como TCP/IP.


Utilizar a autenticação do Windows para configurar a replicação entre dois computadores com o SQL Server em domínios não fidedignos


Se tiver configurado a replicação através de dois domínios ou grupos de trabalho não fidedignos utilizando a autenticação do Windows, tem de configurar a autenticação pass-through. Configure uma conta local do Windows, no editor e no subscritor, que tenha o mesmo nome e palavra-passe. Depois de configurar esta conta, utilize-a para iniciar o serviço Agent do SQL Server do editor para subscrições de emissão e do subscritor para subscrições de solicitação. Certifique-se de que esta conta está configurada de acordo com o tópico "Setting up Windows Services Accounts" do SQL Server Books Online.

Se o utilizador tentar estabelecer uma ligação de rede com um computador remoto que se encontre num domínio não fidedigno, o início de sessão prossegue como se o utilizador estivesse a ligar a uma conta no computador remoto. O computador remoto autentica as credenciais de início de sessão baseando-se na base de dados do directório. Se a conta não estiver definida na base de dados do directório, mas a conta de convidado no computador remoto estiver activada e não tiver uma palavra-passe definida, o utilizador iniciará sessão com permissões de convidado. Se a conta de convidado não estiver activada, o início de sessão falha.

Importante: nos exemplos anteriores, se existir um firewall entre os dois servidores, certifique-se de que o mesmo está configurado de acordo com o seguinte artigo:
287932  (http://support.microsoft.com/kb/287932/PT/ ) INF: TCP Ports Needed for Communication to SQL Server Through a Firewall

Referências

Para obter informações adicionais, clique nos números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
320499  (http://support.microsoft.com/kb/320499/PT/ ) HOW TO: Manually Synchronize Replication Subscriptions by Using Backup or Restore
312292   (http://support.microsoft.com/kb/312292/PT/ ) HOW TO: Enable Replication Agents for Logging to Output Files in SQL Server
299903   (http://support.microsoft.com/kb/299903/PT/ ) FIX: sp_scriptpublicationcustomprocs Generates Replication Stored Procedures

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbhowtomaster KB321822