Existe uma maneira fácil de acionar o failover automático de um único banco de dados espelhado?


8

Eu tenho 3 bancos de dados espelhados em uma única instância do sqlserver2008-R2 em alta segurança com configuração automática de failover. Existe uma maneira de acionar o failover automático de apenas 1 banco de dados?

Quero simular onde o banco de dados está inacessível e não apenas clicar no botão 'Failover' do SSMS. Posso parar o terminal no primário, mas isso tornaria todos os 3 bancos de dados inacessíveis, pois eles usam o mesmo terminal.

Como desabilito apenas 1 db?

Respostas:


3

Se o seu espelhamento estiver configurado corretamente para alta segurança / failover automático, eu estaria inclinado a pensar que você poderia simplesmente colocar o banco de dados principal offline com isso:

alter database YourDb set offline
with rollback immediate
go

Acredito que ao colocar o banco de dados offline, você terá failover automático sem afetar os outros dois bancos de dados que não deseja fazer failover.


11
esta é a solução que eu esperava que funcionasse, mas recebo uma mensagem 1468, o banco de dados está envolvido no espelhamento, a instrução alter falhou.
dat_girl

@dat_girl, você pode primeiro tentar defini-lo como usuário único com reversão imediata e depois tentar a instrução acima?
Thomas Stringer

Isso também não funcionou no @shark, o mesmo erro. Eu acho que teria que parar de espelhar antes que qualquer alteração de 'estado' possa ser feita no banco de dados.
dat_girl

2

Para que o espelhamento faça sentido, você precisará de pelo menos uma segunda instância do SQL-Server: uma para o "principal" e outra para o "espelho".

Como instalar uma instância adicional, consulte: Configuração da instância .

Para que o failover automático entre em vigor, você também precisará de uma terceira instância (a "Testemunha" ), cujo objetivo é monitorar os estados do principal e do espelho (conexão) ("... a testemunha não atende o banco de dados. o failover é o único papel da testemunha ").

Para configurar o espelho inteiro com failover, consulte: Failover automático e espelhamento de banco de dados síncrono (modo de alta segurança) .

Depois de concluir as etapas, você pode testar sua configuração interrompendo um dos serviços do SQL-Server (principal ou espelho). O banco de dados espelhado fica disponível então.

Eu sugiro enfaticamente não executar as instâncias no mesmo servidor real, pois isso não protegerá você de desastres de hardware!


Obrigado @vorax, mas eu já tenho a configuração de espelhamento e funciona bem. Também não quero interromper o serviço, pois isso derrubaria todos os bancos de dados da instância. Eu só quero parar 1.
dat_girl

0

Hmm, é alter database whateverdb set partner failoverpreciso fazer isso, mas pode levar todo o servidor, não tenho um em mãos com o qual eu possa experimentar, e os documentos parecem irritantemente usar servidor e banco de dados de forma intercambiá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.