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?

dat_girl
fonte

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.

Thomas Stringer
fonte
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!

MjSt
fonte
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.

Gaius
fonte