Resolução de problemas de cluster de failover

Aplica-se a:SQL Server

Este artigo fornece informações sobre os seguintes problemas:

Passos de resolução de problemas básicos

A primeira etapa de diagnóstico é executar uma nova verificação de validação de cluster. Para detalhes sobre a validação, consulte Criar um Cluster de Failover: Validar a Configuração. Isso pode ser concluído sem qualquer interrupção do serviço, pois não afeta nenhum recurso de cluster online.

A validação pode ser executada a qualquer momento após a instalação do recurso Failover Clustering, incluindo antes do cluster ter sido implementado, durante a criação do cluster e enquanto o cluster está em execução. Na verdade, testes adicionais são executados quando o cluster está em uso, o que verifica se as práticas recomendadas estão sendo seguidas para cargas de trabalho altamente disponíveis. Nessas dezenas de testes, apenas alguns deles afetam cargas de trabalho de cluster em execução e todos eles estão dentro da categoria de armazenamento, portanto, ignorar toda essa categoria é uma maneira fácil de evitar testes com interrupções.

O cluster de failover vem com uma medida de proteção integrada para evitar tempo morto acidental ao executar os testes de armazenamento durante a validação. Se o cluster tiver grupos online quando a validação for iniciada e os testes de armazenamento permanecerem selecionados, ele solicitará ao usuário a confirmação se deseja executar todos os testes (e causar tempo de inatividade) ou ignorar o teste dos discos de qualquer grupo online para evitar tempo de inatividade. Se toda a categoria de armazenamento foi excluída do teste, esse prompt não será exibido. Isso permite a validação do cluster sem tempo de inatividade.

Como revalidar o seu cluster

  1. No snap-in Cluster de Failover, na árvore de console, verifique se Gerenciamento de Cluster de Failover está selecionado e, em Gerenciamento, selecione Validar uma Configuração.

  2. Siga as instruções no assistente para especificar os servidores e os testes e execute os testes. A página Resumo aparece após a execução dos testes.

  3. Ainda na página Resumo , selecione Exibir relatório para exibir os resultados do teste.

    Para exibir os resultados dos testes depois de fechar o assistente, veja %SystemRoot%\Cluster\Reports\Validation Report date and time.html onde %SystemRoot% está a pasta na qual o sistema operacional está instalado (por exemplo, C:\Windows).

  4. Para exibir artigos de ajuda que ajudam a interpretar os resultados, selecione Mais sobre testes de validação de cluster.

Para exibir artigos de ajuda sobre validação de cluster depois de fechar o assistente, no snap-in Cluster de Failover, selecione Ajuda, selecione Tópicos da Ajuda, selecione a guia Conteúdo, expanda o conteúdo da ajuda do cluster de failover e selecione Validando uma Configuração de Cluster de Failover. Após a conclusão do assistente de validação, o Relatório de Resumo exibirá os resultados. Todos os testes devem ser aprovados com uma marca de verificação verde ou, em alguns casos, com um triângulo amarelo (aviso). Ao procurar áreas problemáticas (Xs vermelhos ou pontos de interrogação amarelos), na parte do relatório que resume os resultados do teste, selecione um teste individual para revisar os detalhes. Quaisquer problemas de X vermelho precisam ser resolvidos antes de iniciar a resolução de problemas no SQL Server.

Instalar atualizações

A instalação de atualizações é uma parte importante para evitar problemas com o seu sistema. Ligações úteis:

Recuperação de falha de cluster de alta disponibilidade

Normalmente, a falha do cluster de failover é o resultado de uma das duas causas:

  • Falha de hardware num nó de um cluster de dois nós. Essa falha de hardware pode ser causada por uma falha na placa SCSI ou no sistema operacional.

    Para se recuperar dessa falha, remova o nó com falha do cluster de failover usando o programa de Instalação do SQL Server, resolva a falha de hardware enquanto o computador está offline, reinicie a máquina e, em seguida, adicione novamente o nó reparado à instância do cluster de failover.

    Para obter mais informações, consulte Criar uma nova instância de cluster de failover Always On (Configuração) e Recuperar de falha de instância de cluster de failover.

  • Falha do sistema operacional. Nesse caso, o nó está offline, mas não está irremediavelmente quebrado.

    Para corrigir um erro no sistema operativo, recupere o nó e teste a funcionalidade de failover. Se a instância do SQL Server não fizer failover corretamente, você deverá usar o programa de Instalação do SQL Server para remover o SQL Server do cluster de failover, fazer os reparos necessários, trazer o computador de volta para cima e adicionar o nó reparado de volta à instância de cluster de failover.

    A recuperação de uma falha do sistema operacional dessa forma pode levar tempo. Se a falha do sistema operacional puder ser recuperada facilmente, evite usar essa técnica.

    Para obter mais informações, consulte Criar uma nova instância de cluster de failover Always On (Configuração) e Recuperar de falha de instância de cluster de failover.

Resolver problemas comuns

A lista a seguir descreve problemas comuns de uso e explica como resolvê-los.

Problema: Uso incorreto da sintaxe do prompt de comando para instalar o SQL Server

Problema Nº 1: É difícil diagnosticar problemas de configuração ao usar o parâmetro /qn no prompt de comando, pois o parâmetro /qn suprime todas as caixas de diálogo e mensagens de erro da Configuração. Se o interruptor /qn for especificado, todas as mensagens do Setup, incluindo mensagens de erro, serão registadas nos ficheiros de log do Setup. Para obter mais informações sobre arquivos de log, consulte Exibir e ler arquivos de log da Instalação do SQL Server.

Resolução 1: Use o /qb comutador em vez do /qn comutador. Se você usar a /qb opção, a interface do usuário básica em cada etapa será exibida, incluindo mensagens de erro.

Problema: o SQL Server não consegue se conectar à rede depois de migrar para outro nó

Nº 1: As contas de serviço do SQL Server não conseguem contactar um controlador de domínio.

Resolução 1: Verifique os logs de eventos em busca de sinais de problemas de rede, como falhas no adaptador ou problemas de DNS. Verifique se você pode executar ping no controlador de domínio.

Problema 2: As senhas da conta de serviço do SQL Server não são idênticas em todos os nós do cluster, ou o nó não reinicia um serviço do SQL Server que migrou de um nó com falha.

Resolução 2: Altere as senhas da conta de serviço do SQL Server usando o Gestor de Configuração do SQL Server. Se você não fizer isso e alterar as senhas da conta de serviço do SQL Server em um nó, também deverá alterar as senhas em todos os outros nós. O Gestor de Configuração do SQL Server faz isso automaticamente.

Problema: o SQL Server não consegue aceder aos discos de cluster

Problema 1: O firmware ou os drivers não estão atualizados em todos os nós.

Resolução 1: Verifique se todos os nós estão usando as versões corretas de firmware e as mesmas versões de driver.

Problema 2: Um nó não pode recuperar discos de cluster que foram migrados de um nó com falha para um disco de cluster compartilhado com uma letra de unidade diferente.

Resolução 2: As letras da unidade de disco para os discos de cluster devem ser as mesmas em ambos os servidores. Se não estiverem, reveja a instalação original do sistema operativo e do Microsoft Cluster Service (MSCS).

Problema: Falha de um serviço do SQL Server causa failover

Resolução: Para evitar que a falha de serviços específicos faça com que o grupo do SQL Server faça failover, configure esses serviços usando o Administrador de Cluster no Windows, da seguinte maneira:

  • Desmarque a caixa de seleção Afetar o grupo no separador Avançado da caixa de diálogo Propriedades de Texto Completo. No entanto, se o SQL Server causar um failover, o serviço de pesquisa de texto completo será reiniciado.

Problema: o SQL Server não inicia automaticamente

Resolução: Use o Administrador de Cluster no MSCS para iniciar automaticamente um cluster de failover. O serviço SQL Server deve ser definido para iniciar manualmente; o Administrador de Cluster deve ser configurado no MSCS para iniciar o serviço SQL Server. Para obter mais informações, consulte Gerenciando serviços.

Problema: O nome da rede está offline e você não pode se conectar ao SQL Server usando TCP/IP

Nº 1: O DNS está a falhar quando o recurso de cluster está definido para necessitar de DNS.

Resolução 1: Corrija os problemas de DNS.

Questão 2: Um nome duplicado está na rede.

Resolução 2: Use nbtstat para encontrar o nome duplicado e, em seguida, corrigir o problema.

Nº 3: O SQL Server não está se conectando usando pipes nomeados.

Resolução 3: Para se conectar usando pipes nomeados, crie um alias usando o Gestor de Configuração do SQL Server para se conectar ao computador apropriado. Por exemplo, se você tiver um cluster com dois nós (Nó A e Nó B) e uma instância de cluster de failover (Virtsql) com uma instância padrão, poderá se conectar ao servidor que tem o recurso Nome da Rede offline usando as seguintes etapas:

  1. Determine em qual nó o grupo que contém a instância do SQL Server está sendo executado usando o Administrador de Cluster. Para este exemplo, é o Nó A.

  2. Inicie o serviço SQL Server nesse computador usando net start. Para obter mais informações sobre como usar o net start, consulte Iniciando o SQL Server manualmente.

  3. Inicie o Configuration Manager do SQL Server no nó A. Veja o nome do tubo no qual o servidor está a escutar. Deve ser semelhante a \\.\$$\VIRTSQL\pipe\sql\query.

  4. No computador cliente, inicie o Gestor de Configuração do SQL Server.

  5. Crie um alias SQLTEST1 para se conectar através de Named Pipes a este nome de pipe. Para fazer isso, digite Nó A como o nome do servidor e edite o nome do pipe como \\.\pipe\$$\VIRTSQL\sql\query.

  6. Conecte-se a esta instância usando o alias SQLTEST1 como o nome do servidor.

Problema: A instalação do SQL Server falha em um cluster com erro 11001

Questão: Uma chave de registo órfã no HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.X\Cluster.

Resolução: Verifique se o MSSQL.X hive do registo não está a ser utilizado de momento, e elimine a chave do cluster.

Problema: Erro de configuração do cluster: "O instalador não tem privilégios suficientes para aceder a este diretório: unidade<\>Microsoft SQL Server. A instalação não pode continuar. Faça logon como administrador ou entre em contato com o administrador do sistema"

Questão: Este erro é causado por uma unidade compartilhada SCSI que não está particionada corretamente.

Resolução: Recrie uma única partição no disco compartilhado usando as seguintes etapas:

  1. Exclua o recurso de disco do cluster.
  2. Exclua todas as partições no disco.
  3. Verifique nas propriedades do disco se o disco é um disco básico.
  4. Crie uma partição no disco compartilhado, formate o disco e atribua uma letra de unidade ao disco.
  5. Adicione o disco ao cluster usando o Administrador de Cluster (cluadmin).
  6. Execute a Instalação do SQL Server.

Problema: os aplicativos não conseguem inscrever recursos do SQL Server em uma transação distribuída

Questão: Como o Coordenador de Transações Distribuídas da Microsoft (MS DTC) não está completamente configurado no Windows, os aplicativos podem falhar ao inscrever recursos do SQL Server em uma transação distribuída. Esse problema pode afetar servidores vinculados, consultas distribuídas e procedimentos armazenados remotos que usam transações distribuídas. Para obter mais informações sobre como configurar o MS DTC, consulte Antes de instalar o cluster de failover.

Resolução: Para evitar esses problemas, você deve habilitar totalmente os serviços do MS DTC nos servidores onde o SQL Server está instalado e o MS DTC está configurado.

Para habilitar totalmente o MS DTC, use as seguintes etapas:

  1. No Painel de Controlo, abra Ferramentas Administrativas e, em seguida, abra Gestão do Computador.

  2. No painel esquerdo de Gerenciamento do Computador, expanda Serviços e Aplicativos e selecione Serviços.

  3. No painel direito do Gerenciamento do Computador, clique com o botão direito do mouse em Coordenador de Transações Distribuídas e selecione Propriedades.

  4. Na janela Coordenador de Transações Distribuídas , selecione a guia Geral e, em seguida, selecione Parar para interromper o serviço.

  5. Na janela Coordenador de Transações Distribuídas , selecione a guia Logon e defina a conta NT AUTHORITY\NetworkServicede logon.

  6. Selecione Aplicar e OK para fechar a janela Coordenador de Transações Distribuídas . Feche a janela Gerenciamento do computador . Feche a janela Ferramentas administrativas .

Problema: o SQL Server Agent não consegue ligar-se a uma instância de cluster de failover multi-sub-net numa porta personalizada

Problema: O SQL Server Agent não consegue ligar-se ao Database Engine local quando todas as seguintes condições são verdadeiras:

  1. O SQL Server está instalado como uma instância de cluster de failover de várias sub-redes.
  2. A instância do cluster de failover é uma instância padrão.
  3. O Database Engine escuta numa porta TCP fixa diferente da 1433 padrão.
  4. O SQL Server Agent liga-se à instância local durante o arranque.

Para uma instância de cluster de failover multi-sub-net, a ligação inicial do SQL Server Agent utiliza MultiSubnetFailover=Yes. Esta configuração faz com que o cliente use TCP. A ligação não recorre, como alternativa, à memória partilhada nem a pipes com nome. Quando o alvo está (local) e nenhuma porta é especificada, a ligação tenta a porta TCP 1433. A ligação falha se o Database Engine não estiver a ouvir nessa porta.

Pode ver uma ligação semelhante à seguinte num rastreio ODBC:

DRIVER=ODBC Driver 17 for SQL Server;SERVER=(local);APP=SQLAgent - Initial Boot Probe;DATABASE=master;MultiSubnetFailover=YES;

Resolução: Crie um alias TCP que direcione a ligação do SQL Server Agent para o nome da rede virtual e a porta TCP configurada da instância do cluster de failover. Configure o alias em cada nó que possa alojar a instância do cluster de failover.

Passo 1: Confirmar a porta TCP configurada

  1. No nó ativo, abra o Gestor de Configuração do SQL Server.
  2. Expanda a Configuração de Rede do SQL Server e depois selecione Protocolos para MSSQLSERVER.
  3. Abra TCP/IP e depois selecione o separador de Endereços IP .
  4. Se o Listen All estiver definido para Sim, note o valor da porta TCP em IPAll.
  5. Se Listen All estiver definido para Não, note o valor da porta TCP para cada endereço IP ativado usado pela instância do cluster de failover.
  6. Confirme que o registo de erros do SQL Server mostra que o Database Engine está a ouvir na porta esperada.

Para mais informações, consulte Configurar o SQL Server para escutar numa porta TCP específica.

Passo 2: Criar o alias TCP em cada nó do cluster

Complete estes passos em cada nó que possa alojar a instância do cluster de failover:

  1. Abra a ferramenta de configuração de alias cliente SQL Server que se aplica à versão instalada do SQL Server.
  2. Cria um novo pseudónimo.
  3. Em Alias Name, introduza um nome único para a ligação local ao SQL Server Agent. Use o mesmo nome de alias em cada nó.
  4. Selecione TCP/IP como protocolo.
  5. No Servidor, introduza o nome da rede virtual da instância do cluster de failover. Não introduza o nome físico do nó.
  6. Em N.º da porta, introduza a porta TCP fixa identificada no passo 1.
  7. Guarda o pseudónimo.

Para instruções detalhadas e requisitos de versão, consulte Criar ou eliminar um alias de servidor para uso por um cliente.

Importante

Um alias SQL Server é uma configuração de cliente. Crie um alias idêntico em cada nó que possa possuir a instância do cluster de failover. Caso contrário, o SQL Server Agent poderá falhar depois de a instância mudar para um nó onde o alias não está configurado.

Passo 3: Configure o SQL Server Agent para usar o alias

  1. No SQL Server Management Studio, ligue-se à instância do cluster de failover.
  2. No Object Explorer, expande a instância.
  3. Clique com o botão direito no SQL Server Agent e depois selecione Propriedades.
  4. Em Selecionar uma página, selecione Ligação.
  5. No servidor anfitrião local Alias, introduza o nome do alias criado no passo 2.
  6. Selecione OK.
  7. Reinicie o SQL Server Agent.

Para mais informações, consulte Definir um alias SQL Server para o serviço SQL Server Agent.

Passo 4: Validar a configuração

  1. Confirme que o SQL Server Agent inicia com sucesso.
  2. Revise o registo do SQL Server Agent e confirme que o Agente se ligou à instância local pretendida do Database Engine.
  3. Executar um trabalho simples do SQL Server Agent para confirmar que os trabalhos conseguem estabelecer ligação à instância.
  4. Numa altura em que não interrompa as atividades normais do negócio, move a instância do cluster de failover para outro possível nó proprietário.
  5. Confirme que o SQL Server Agent é iniciado e que a tarefa de teste é concluída com êxito nesse nó.
  6. Repita o teste para cada nó proprietário possível.

Usar procedimentos armazenados estendidos e objetos COM

Ao utilizar procedimentos armazenados estendidos com uma configuração de cluster com suporte a failover, todos os procedimentos armazenados estendidos devem ser instalados em um disco de cluster que depende do SQL Server. Isso garante que, quando um nó faz failover, os procedimentos armazenados estendidos ainda possam ser usados.

Se os procedimentos armazenados estendidos usarem componentes COM, o administrador deverá registrar os componentes COM em cada nó do cluster. As informações para carregar e executar componentes COM devem estar no registro do nó ativo para que os componentes sejam criados. Caso contrário, a informação permanece no registo do computador no qual os componentes COM foram registados pela primeira vez.