Replicação transacional do SQL Server 2008 R2 sobre VPN

3

Estou com dificuldades para configurar a replicação em uma VPN.

Eu tenho um banco de dados do SQL Server 2008 R2 Enterprise Edition em um servidor Windows 2008 R2.

O SQL Server está sendo executado em uma porta não padrão. Eu o configurei para que ele esteja agindo como seu próprio distribuidor e configurei um editor neste servidor. Ele é definido como uma publicação transacional atualizável (sim, isso é necessário).

Neste servidor, eu tenho o Roteamento e Acesso Remoto habilitado para poder estabelecer conexões VPN. Ele é configurado com um pool de endereços IP estáticos, dos quais o primeiro no intervalo é sempre atribuído ao servidor. Eu atribuí um usuário de teste a um endereço estático dentro desse intervalo (não sei se isso é necessário ou não).

Todos os clientes serão versões 2008 R2, mas poderão ser SQL Express ou instâncias autônomas de desenvolvedor do produto completo.

Eu posso estabelecer uma conexão VPN a partir do cliente sem problemas e posso ver que os endereços IP corretos estão alocados.

Após conectar-me ao banco de dados para testar se posso estabelecer uma conexão, percebi que precisava conectar-me ao banco de dados usando o nome do servidor em vez de um endereço IP - necessário para replicação - que não funcionaria inicialmente . Eu criei uma entrada no arquivo hosts para o servidor no cliente usando o nome NETBIOS do servidor e agora posso me conectar ao servidor, a partir do cliente, usando a sintaxe SERVER\INSTANCE, PORT , sobre a VPN. Como é a instância padrão no servidor, também posso me conectar com a sintaxe SERVER, PORT .

Depois disso, ainda recebo o seguinte erro: SQL Server replication requires the actual server name to make a connection to the server. Connections through a server alias, IP address, or any other alternate name are not supported. Specify the actual server name, 'SERVER\INSTANCE'. (Replication.Utilities) .

O que eu perdi? Como faço para que isso funcione?

TIA

    
por enashnash 13.04.2011 / 15:18

5 respostas

1

Experimente este comando:

select name from sys.servers

Veja o que é retido. Você precisa usar esse nome para se conectar ao saque enquanto configura a replicação.

Ou altere para o nome que você deseja usar:

sp_dropserver 'currentname'
go
sp_addserver 'changedname' , 'local'
O mecanismo do

db precisa ser reinicializado

    
por 17.02.2012 / 21:09
0

Altere a porta de volta para o número da porta padrão. Você não está fazendo nada mudando o número da porta além de dificultar sua vida.

    
por 14.04.2011 / 04:37
0

Apenas um divagar, provavelmente muito tarde para você, mas útil para os googlefiers: com base no que li, acho que você precisa adicionar um alias ao servidor local, pois é um pouco difícil encontrar uma instância nomeada. O cliente do SQL Server irá para o SQL Browser para obter informações sobre instâncias nomeadas - o que parece indisponível via VPN. Mas antes disso, ele verifica aliases locais se o nome do host é especificado lá. Você pode adicioná-lo no SQL Server Configuration Manager - Aliases. Um conselho para salvar vidas: mantenha seus aliases de 32 bits e 64 bits em sincronia. Período.

    
por 12.12.2011 / 11:10
0

Eu resolvi isso no passado criando um alias do lado do servidor (cliconfig) com o mesmo nome que o servidor remoto mostra em sys.servers, mas o nome do servidor e a porta apontam para o endereço IP e a porta SQL, já que havia sem resolução de nomes.

    
por 15.07.2012 / 07:38
-2

Um pouco não relacionado, mas usei o Double Take para obter uma camada adicional de replicação do SQL Server em todo o nível do servidor. Dependendo dos seus requisitos de plano de DR, é uma boa opção a considerar. O failover pode ser manual ou totalmente automatizado e pode ser mais barato que uma implementação do VM-Ware.

    
por 17.02.2012 / 22:23