Solucionando problemas do Utilitário do SQL Server

A solução de problemas do Utilitário do SQL Server pode incluir a resolução de uma operação malsucedida de inscrição de uma instância do SQL Server com um UCP, a solução de problemas de falha na coleta de dados que resultam em ícones cinzas na exibição da lista de instâncias gerenciadas em um UCP, a redução de afunilamentos de desempenho ou a resolução de problemas de integridade de recursos. Para obter mais informações sobre como reduzir os problemas de integridade de recursos identificados por um UCP do SQL Server, consulte Solucionando problemas de integridade de recursos do SQL Server (SQL Server Utility).

Falha na operação de inscrição de uma instância do SQL Server em um Utilitário do SQL Server

Se você se conectar à instância do SQL Server para inscrição usando a Autenticação do SQL Server e especificar uma conta proxy pertencente a um domínio do Active Directory diferente do domínio onde o UCP está localizado, a validação de instância terá êxito, mas a operação de inscrição falhará apresentando a seguinte mensagem de erro:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

Additional information: Could not obtain information about Windows NT group/user '<DomainName\AccountName>', error code 0x5. (Microsoft SQL Server, Error: 15404)

Esse problema pode ocorrer no seguinte exemplo de cenário:

  1. O UCP é um membro de "Domain_1".

  2. Uma relação de confiança de domínio unidirecional está em vigor: ou seja, "Domain_2" não tem a confiança do "Domain_1", mas o "Domain_1" tem a confiança do "Domain_2".

  3. A instância do SQL Server para inscrição no Utilitário do SQL Server também é membro de "Domain_1".

  4. Durante a operação de inscrição, conecte-se à instância do SQL Server para fazer a inscrição usando "sa". Especifique uma conta proxy de "Domain_2".

  5. A validação é bem-sucedida, mas a inscrição falha.

A solução alternativa para esse problema, usando o exemplo anterior, é conectar à instância do SQL Server para inscrição no Utilitário do SQL Server usando "sa" e fornecer uma conta proxy de "Domain_1".

Falha na validação de WMI

Se o WMI não for configurado corretamente em uma instância do SQL Server, as operações Criar UCP e Inscrever Instância Gerenciada exibirão um aviso, mas a operação não será bloqueada. Além disso, se você alterar a configuração da conta do SQL Server Agent de forma que o SQL Server Agent não tenha permissão para as classes WMI necessárias, a coleta de dados na instância gerenciada afetada do SQL Server não carregará os dados no UCP. Isso resulta em ícones cinzas no UCP.

A falha na coleta de dados resulta em ícones de status cinzas na exibição de lista do UCP para instâncias gerenciadas afetadas do SQL Server. O histórico do trabalho na instância gerenciada do SQL Server indica que sysutility_mi_collect_and_upload falhou na etapa 2 (Dados de Fase Coletados de Script do PowerShell).

As mensagens de erro simplificadas são:

A execução do comando parou porque a variável de shell "ErrorActionPreference" está definida para Parar: acesso negado.

ERRO: <Data-hora (MM/DD/YYYY HH:MM:SS)>: exceção capturada durante a coleta das propriedades de cpu. Uma consulta de WMI pode ter falhado. AVISO.

Para resolver esse problema, verifique os seguintes parâmetros de configuração:

  • No Windows Server 2003, o serviço SQL Server Agent deve fazer parte do grupo Monitoramento de Desempenho do Windows na instância gerenciada do SQL Server.

  • O serviço WMI deve ser habilitado e configurado na instância gerenciada do SQL Server.

  • O repositório WMI pode estar corrompido na instância gerenciada do SQL Server.

  • A biblioteca de desempenho pode estar faltando ou corrompida na instância gerenciada do SQL Server.

Para verificar se a instância especificada do SQL Server está configurada corretamente para relatar dados ao UCP, verifique se as classes a seguir estão disponíveis na instância especificada do SQL Server e se elas são acessíveis à conta de serviço do SQL Server Agent:

  • Win32_MountPoint

  • Win32_PerfRawData_PerfProc_Process

  • Win32_PerfRawData_PerfOS_Processor

  • Win32_Processor

  • Win32_Volume

  • Win32_LogicalDisk

É possível usar o cmdlet Get-WmiObject PowerShell em cada uma das classes para verificar se cada classe é acessível. Execute os seguintes cmdlets na instância gerenciada do SQL Server:

Get-WmiObject Win32_MountPoint -ErrorAction Stop | Out-Null
Get-WmiObject Win32_PerfRawData_PerfProc_Process -ErrorAction Stop| Out-Null
Get-WmiObject Win32_PerfRawData_PerfOS_Processor -ErrorAction Stop | Out-Null
Get-WmiObject Win32_Processor -ErrorAction Stop | Out-Null
Get-WmiObject Win32_Volume -ErrorAction Stop | Out-Null
Get-WmiObject Win32_LogicalDisk -ErrorAction Stop | Out-Null

Para obter mais informações sobre como solucionar problemas do WMI, consulte Troubleshooting WMI (em inglês). Observe que as consultas nessas operações do Utilitário do SQL Server são executadas localmente e, portanto, o conteúdo sobre DCOM e solução remota de problemas não aplica.

Falha na coleta de dados

Se eventos de coleta de dados do Utilitário do SQL Server falharem, considere as seguintes possibilidades:

  • Não altere nenhuma das propriedades do conjunto de coleta "Informações do Utilitário" em uma instância gerenciada do SQL Server, e não ative/desative a coleta de dados manualmente, pois a coleta de dados é controlada por um trabalho do agente do Utilitário.

  • Validação de WMI com falha ou sem suporte. Para obter mais informações, consulte a seção "Falha na verificação de WMI" anteriormente neste tópico.

  • Atualize os dados na exibição de lista de instância gerenciada, já que os dados em pontos de vista do Utilitário do SQL Server não são atualizados automaticamente. Para atualizar os dados, clique com o botão direito do mouse no nó Instâncias Gerenciadas, no painel de navegação do Gerenciador do Utilitário, e selecione Atualizar, ou clique com o botão direito do mouse no nome de instância do SQL Server na exibição de lista e selecione Atualizar. Observe que, depois que uma instância do SQL Server estiver inscrita em um UCP, poderá demorar até 30 minutos para os dados aparecerem pela primeira vez no painel e nos pontos de vista do painel de conteúdo do Gerenciador do Utilitário.

  • Use o SQL Server Configuration Manager para verificar se a instância do SQL Server está em execução.

  • Se houver falha na coleta ou no carregamento de dados devido a problemas de tempo limite, atualize a função dbo.fn_sysutility_mi_get_collect_script() no banco de dados MSDB. Mais especificamente, na função "Invoca-BulkCopyCommand () " adicione linha:

    $bulkCopy.BulkCopyTimeout=180
    

    O valor do tempo limite padrão é de 30 segundos.

  • Se a instância do SQL Server não for clusterizada, verifique se o serviço SQL Server Agent está em execução e definido para ser iniciado automaticamente no UCP e na instância gerenciada do SQL Server.

  • Verifique se uma conta válida está sendo usada para executar a coleta de dados na instância gerenciada do SQL Server. Por exemplo, a senha pode ter expirado. Se a senha do proxy tiver expirado, atualize as credenciais de senha no SSMS, como se segue:

    1. No Pesquisador de Objetos do SSMS, expanda o nó Segurança e, em seguida, expanda o nó Credenciais.

    2. Clique com o botão direito do mouse em UtilityAgentProxyCredential_<GUID> e selecione Propriedades.

    3. Na caixa de diálogo Propriedades de Credencial, atualize as credenciais conforme necessário para a credencial UtilityAgentProxyCredential_<GUID>.

    4. Clique em OK para confirmar a alteração.

  • O protocolo TCP/IP deve estar habilitado no UCP e na instância gerenciada do SQL Server. Habilite o TCP/IP usando o SQL Server Configuration Manager.

  • O serviço Navegador do SQL Server no UCP deve ser iniciado e configurado para iniciar automaticamente. Se sua organização impedir o uso do serviço Navegador do SQL Server, use as seguintes etapas para permitir que uma instância gerenciada do SQL Server se conecte ao UCP:

    1. Na barra de tarefas do Windows na instância gerenciada do SQL Server, clique em Iniciar e em Executar....

    2. Digite "cliconfg.exe" no espaço fornecido e clique em OK.

    3. Se for solicitado a permitir que o utilitário de configuração do cliente SQL ("SQL Client Configuration Utility EXE") seja iniciado, clique em "Continuar".

    4. Na caixa de diálogo Utilitário de Rede para Clientes do SQL Server, selecione a guia Alias e clique em Adicionar....

    5. Na caixa de diálogo Adicionar Configuração da Biblioteca de Rede:

    6. Especifique TCP/IP na lista de bibliotecas de rede.

    7. Especifique o ComputerName\InstanceName do UCP na caixa de texto Alias do Servidor.

    8. Especifique o ComputerName do UCP na caixa de texto Nome do Servidor.

    9. Desmarque a caixa de seleção Determinar porta dinamicamente.

    10. Especifique o número da porta em que o UCP está escutando na caixa de texto Número da porta.

    11. Clique em OK para salvar suas alterações.

    12. Repita essas etapas para cada instância gerenciada do SQL Server que se conectar a um UCP em que o serviço Navegador do SQL Server não está habilitado.

  • Assegure-se de que as instâncias gerenciadas do SQL Server estejam conectadas à rede.

  • Se houver bancos de dados com o mesmo nome, mas configurações distintas para diferenciação de maiúsculas e minúsculas em uma instância gerenciada do SQL Server, a identificação entre o banco de dados e seus pontos de vista poderá estar incorreta, o que resulta em falha na coleta de dados. Por exemplo, um banco de dados denominado "MYDATABASE" poderia mostrar estados de integridade para um banco de dados denominado "MyDatabase". Nenhum erro é gerado nesse cenário. A falha na coleta de dados também pode ser o resultado de discrepâncias entre maiúsculas e minúsculas em outros objetos exibidos no UCP, como nomes de arquivos de banco de dados e de grupos de arquivos.

  • Se uma instância gerenciada do SQL Server estiver hospedada em um computador com Windows Server 2003, a conta de serviço do SQL Server Agent deverá pertencer ao grupo de segurança Usuários de Monitor de Desempenho ou ao grupo Administradores local. Caso contrário, a coleta de dados falhará com um erro de acesso negado. Para adicionar uma conta do serviço SQL Server Agent ao grupo de segurança Usuários de Monitor de Desempenho, use as seguintes etapas:

    1. Abra Gerenciamento do Computador, Usuários e Grupos Locais e, em seguida, Grupos.

    2. Clique com o botão direito do mouse em Usuários de Monitor de Desempenho e selecione Adicionar ao grupo.

    3. Clique em Adicionar.

    4. Insira a conta na qual o serviço SQL Server Agent está sendo executado e clique em OK.

    5. Se a instância do SQL Server já estiver inscrita no UCP antes de o usuário ser adicionado a esse grupo, reinicie o serviço SQL Server Agent.