Failover e recuperação de bancos de dados espelhados em um único farm
Atualizado em: 2009-03-05
Este artigo descreve como realizar failover e recuperar um farm do Microsoft Office SharePoint Server 2007 que foi configurado para usar o recurso de espelhamento do banco de dados de alta disponibilidade, seguindo os procedimentos no artigo Configurar disponibilidade em um único farm usando espelhamento de banco de dados do SQL Server.
Este artigo inclui as seguintes seções:
Processo de failover automático para um banco de dados espelhado
Processo de failover manual para um banco de dados espelhado
Monitor e alerta no failover de espelhamento
Trabalho: realizar failover em todos os bancos de dados restantes
Trabalho: atualizar aliases de conexão
Failback
Resumo
Quando ocorrer failover no ambiente do Office SharePoint Server 2007 que esteja executando bancos de dados espelhados, o seguinte processo deverá ocorrer:
Um ou mais bancos de dados no servidor principal realizar failover no espelho, automática ou manualmente.
Todos os outros bancos de dados no servidor principal são forçados a realizar failover.
É recomendável que você use alertas e trabalhos do Microsoft SQL Server 2005 para monitorar o espelhamento e forçar todos os bancos de dados a realizarem failover.
Aliases de conexão em todos os servidores Web e computadores front-end que fazem referência a bancos de dados são redefinidos para apontar para o servidor espelho.
Processo de failover automático para um banco de dados espelhado
O failover automático ocorre quando o servidor principal perde a comunicação com o restante da configuração do espelhamento do banco de dados, e os servidores espelho e testemunha mantêm a comunicação.
Dica
Se todas as instâncias de servidor perderem a comunicação, o failover automático não ocorrerá, mesmo se os servidores de testemunha e espelho posteriormente recuperarem a comunicação.
O seguinte processo ocorre quando o failover automático é disparado:
Se o servidor principal ainda estiver em execução, ele alterará o estado do banco de dados principal para DISCONNECTED e desconectará todos os clientes do banco de dados principal.
Os servidores de testemunha e espelho registram que o servidor principal não está disponível.
Se os logs estiverem aguardando na fila de Refazer, o servidor espelho concluirá o roll forward do banco de dados espelho. O tempo necessário para aplicar o log depende da velocidade do sistema, da carga de trabalho recente e do tamanho dos logs na fila de refazer.
Quando o servidor principal anterior reingressa na sessão, ele reconhece que seu parceiro de failover agora possui a função principal. O servidor principal anterior assume a função do servidor espelho e o banco de dados principal anterior torna-se o banco de dados espelho. O novo servidor espelho sincroniza o novo banco de dados espelho com o banco de dados principal o mais rápido possível. Assim que o novo servidor espelho sincronizar os bancos de dados, o failover será novamente possível, mas na direção contrária.
Para obter uma descrição mais detalhada do failover automático, consulte o artigo sobre failover automático (https://go.microsoft.com/fwlink/?linkid=83690\&clcid=0x416).
Processo de failover manual para um banco de dados espelhado
O failover manual em geral ocorre quando os servidores principal e espelho ainda estão em execução. O administrador toma uma decisão consciente para alternar o banco de dados ativo do principal para o espelho.
O seguinte processo ocorre durante um failover manual:
O administrador se conecta ao servidor principal e emite os seguintes comandos Transact-SQL para cada banco de dados:
USE master; ALTER DATABASE <database_name> SET PARTNER FAILOVER; -- where database_name is the mirrored database.
Esta instrução inicia uma transição imediata do servidor espelho para a função principal.
No primeiro servidor principal, os clientes são desconectados do banco de dados e transações não confirmáveis são revertidas.
Quando você executa o failover manual com uma configuração de failover automático que inclui um servidor testemunha, os servidores principal e espelho alteram as funções automaticamente.
Monitor e alerta no failover de espelhamento
Use alertas do SQL Server para monitorar o espelhamento e executar trabalhos que forcem o failover. Os trabalhos e os alertas devem ser usados em instâncias principal e espelho do SQL Server.
Alerta: detectar uma opção de banco de dados único do principal para o espelho
No alerta, um comando Transact-SQL é usado para detectar se algum dos bancos de dados foi alternado para o banco de dados espelho correspondente.
SELECT * FROM Database_MIRRORING_STATE_CHANGE
WHERE State=8 AND (databasename='Central Administration' OR databasename='Configuration'
ORdatabasename='SSP'
OR databasename=’SSP Content'
OR databasename='SSP Search'
OR databasename='WSS Search'
OR databasename='Content_<port>' )
Trabalho: realizar failover em todos os bancos de dados restantes
Depois que ocorrer o alerta de detecção, execute um trabalho para realizar failover em todos os bancos de dados nos bancos de dados espelho correspondentes.
O exemplo a seguir fornece um script Transact-SQL que você pode usar em um trabalho para realizar failover de todos os bancos de dados espelhados:
USE master;
DECLARE i CURSOR
READ_ONLY
FOR
SELECT name FROM sys.databases WHERE database_id IN
(SELECT database_id FROM sys.database_mirroring WHERE mirroring_state=4)
DECLARE @name varchar(255)
DECLARE @cmd varchar(1000)
OPEN i
FETCH NEXT FROM i INTO @name
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
set @cmd = 'ALTER Database [' + @name + '] SET PARTNER FAILOVER;'
exec (@cmd)
DECLARE @message varchar(100)
SELECT @message = 'Failover for : ' + @name
PRINT @message
END
FETCH NEXT FROM i INTO @name
END
CLOSE i
DEALLOCATE i
GO
Trabalho: atualizar aliases de conexão
Após o failover, o nome do servidor de banco de dados associado ao alias de conexão do SQL Server deve ser alterado do servidor principal para o servidor espelho em todos os computadores que estão executando o Office SharePoint Server 2007.
Dica
A referência em cada aplicativo Web não é alterada. Portanto, nenhum trabalho é necessário no Office SharePoint Server 2007 após o failover.
Crie um trabalho do SQL Server a ser executado após a conclusão do failover. No trabalho, execute um comando para alterar a configuração do Registro referente ao valor do alias para o espelho:
\Registry\Machine\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo
<alias> = REG_SZ DBMSSOCN,DBMirror
Dica
A conta que você está usando para executar os trabalhos e os alertas do SQL Server deve ter as permissões adequadas para alterar os valores do Registro nos computadores que estão executando o Office SharePoint Server 2007. Para obter mais informações, consulte o artigo sobre atribuição de permissões a uma chave do Registro (https://go.microsoft.com/fwlink/?linkid=116137&clcid=0x416).
Para obter um exemplo de como criar esse trabalho, consulte Estudo de caso de alta disponibilidade para SharePoint usando espelhamento de banco de dados (white paper).
Failback
Para fazer failback para o servidor principal, você deve fazer manualmente o failback dos bancos de dados. Você pode usar os mesmos trabalhos do SQL Server para automatizar o failback e redefinir os aliases de conexão do cliente do SQL Server. É necessário alterar os valores nos trabalhos antes de executá-los.
Resumo
Depois de configurar o espelhamento em um ambiente de farm único, recomendamos que você teste seu processo, alertas, trabalhos e scripts quanto a failover e a failback. Se um único banco de dados realizar failover, talvez você queira escrever scripts que primeiro tentem o failback para o servidor principal antes de realizar o failover de todos os outros bancos de dados para o servidor espelho.
Baixar este manual
Este tópico está incluído no seguinte manual baixável para facilitar a leitura e a impressão:
Planejar e configurar a disponibilidade em um farm do Office SharePoint Server 2007 (em inglês)
Consulte a lista completa de manuais disponíveis na página de download de manuais do Office SharePoint Server 2007.