Reconecte o servidor de espelhamento do SQL Server 2008 R2


10

O servidor de failover possui status (Espelho, Desconectado, Em recuperação) e o servidor principal possui status (Principal, Desconectado).

Qual é o processo para reconectar esses servidores?


Aqui está uma pergunta relacionada que se parece muito com esta. Dê uma olhada e veja se isso ajuda: Quebrando e restaurando um espelho Aqui estão algumas etapas rápidas sobre como pausar ou retomar o espelhamento de banco de dados Se você ainda estiver com problemas depois de ler esses tópicos, atualize sua postagem com o que você já tentou e nós vamos de lá.
Aaron

Respostas:


6

Às vezes, reiniciar o terminal de espelhamento no servidor principal resolverá isso.

Para fazer isso, use o seguinte T-SQL.

ALTER ENDPOINT Endpoint_Name STATE = STOPPED

ALTER ENDPOINT Endpoint_Name STATE = STARTED

Para obter o nome do terminal.

SELECT * FROM sys.endpoints
WHERE type = 4

Consulte o KB 2490051 para obter mais detalhes.


11
Eu tive que reiniciar o nó de extremidade no servidor espelho, como sugerido pela KB como segunda opção.
Jan Zahradník

4

Primeiro, tente fazer com que eles se reconectem com este comando T-SQL no principal:

ALTER DATABASE AdventureWorks2012 SET PARTNER RESUME;

Se isso falhar, você terá um problema de comunicação entre o diretor e o espelho, e é aí que a diversão começa. Pode ser qualquer coisa, desde conectividade IP até segurança nos pontos finais de espelhamento e diferentes métodos de criptografia. Eu recomendaria o livro Pro SQL Server 2008 Mirroring de Robert Davis, se você precisar entrar em uma profunda solução de problemas.


2

No nosso caso, estamos usando autenticação de certificado para conectar pontos de extremidade de espelhamento, e o problema ocorreu porque um dos certificados que os pontos de extremidade de espelhamento estavam usando havia expirado.

Você pode verificar a data de validade do certificado envolvido na autenticação do terminal, executando

SELECT * FROM sys.certificates  

Se for esse o caso, você precisará criar novos certificados para o ALTER ENDPOINTque tiver expirado e depois fazer a importação.


1

Corrigi esse problema nas próximas etapas, reiniciar o endpoint apenas no PRIMARY não ajudou

  1. Em PRIMÁRIO:

    SELECT * FROM sys.endpoints WHERE type = 4
    
    ALTER ENDPOINT Mirroring STATE = STOPPED
    
    ALTER ENDPOINT Mirroring STATE = STARTED
    
  2. No MIRROR:

    SELECT * FROM sys.endpoints WHERE type = 4
    
    ALTER ENDPOINT Mirroring STATE = STOPPED
    
    ALTER ENDPOINT Mirroring STATE = STARTED
    
  3. De volta ao PRIMARY:

    ALTER DATABASE PACXDSite SET PARTNER RESUME;

0

Caso:

Quando você executa o comando abaixo no servidor Principal:

alter database  'Database_Name' set partner off

Após executar o comando acima, seu banco de dados entra em [mirror, disconnected]estado no servidor espelho.

Resolução:

Etapa 1: execute a consulta abaixo no espelho

exec sp_resetstatus 'Database_Name'

Etapa 2: Após executar o comando abaixo, seu banco de dados estará disponível.

restore database 'Database_Name' with recovery

Nota: A etapa 2 levará algum tempo para se recuperar.


Isso faz com que espelham totalmente desconectado e você tem que estabelecer espelhamento novamente
Alexey F

0

Se "RESUME PARTNER" não funcionar

ALTER DATABASE AdventureWorks2016 SET PARTNER RESUME;

Eu quebraria o espelho para esse banco de dados e o reconfiguraria.

- PASSO 1 EM PRINCIPAL, quebre o espelho para um banco de dados

ALTER DATABASE AdventureWorks2016 SET PARTNER OFF;

- PASSO 2 NO ESPELHO, quebre o espelho para um banco de dados

ALTER DATABASE AdventureWorks2016 SET PARTNER OFF;

- PASSO 3 NO ESPELHO

RESTORE LAST FULL BACKUP DATABASE WITH NO RECOVERY 
RESTORE TRAN BACKUP DATABASE WITH NO RECOVERY

- PASSO 4 NO ESPELHO

ALTER DATABASE AdventureWorks2016 SET PARTNER = 'TCP://PRINCIPAL.MyDomain.COM:5022';

- PASSO 5 EM PRINCIPAL

ALTER DATABASE AdventureWorks2016 SET PARTNER = 'TCP://MIRROR.MyDomain.COM:5022';

- PASSO 6 EM PRINCIPAL, se uma TESTEMUNHA já estiver configurada

ALTER DATABASE AdventureWorks2016 SET WITNESS = 'TCP://WITNESS.MyDomain.COM:5022';

Vale ressaltar que tudo isso pode ser feito durante o horário de trabalho, pois o banco de dados principal estará sempre online e disponível.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.