segunda-feira, 4 de abril de 2016

VMWare vCenter não inicializa o banco de dados

Não estava conseguindo me conectar no VMWare vSphere Client e identifiquei que o motivo era o vCenter não estava iniciado.

Devido a isso, me conectei diretamente no Host que hospeda o vCenter para subir o serviço, mas ao tentar subir o serviço, depois de muito tempo tentando, era retornada a mensagem abaixo nos logs do Windows.

The description for Event ID 1000 from source VMware VirtualCenter Server cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

CREATE DATABASE or ALTER DATABASE failed because the resulting cumulative database size would exceed your licensed limit of 10240 MB per database.

Could not allocate space for object 'dbo.VPX_HIST_STAT1_220'.'IX_VPX_HIST_STAT1_220_TIME_ID' in database 'VIM_VCDB' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

Ou seja, o vCenter estava informando que não consegui subir, pois o banco de dados Sql Server Express havia atingido o limite do database e não era possível expandir esse database.

Na documentação da própria VM Ware: (Limpando dados antigos do banco de dados usado pelo VMware vCenter Server (2037293)) é explicado que o banco de dados do vCenter, por padrão, guarda as estatísticas de desempenho dos últimos 365 dias dentro do próprio banco e com isso, pode ocorrer do banco lotar, caso seja utilizado o SQL Express.

Executei os procedimentos descritos no KB acima e após reiniciar o servidor, o vCenter voltou a subir normalmente.

Segue o resumo do procedimento:

Para limpar os dados na tabela VPX_EVENT:

  1. Conecte-se a Servername\SQL Database e faça login com as credenciais adequadas.
  2. Clique em databases para expandir e selecione VIM_VCDB > Tables.
  3. Clique com o botão direito do mouse na tabela dbo.VPX_PARAMETER e selecione Open.

Observação: Se você estiver usando o SQL Server 2008, clique com o botão direito do mouse na tabela dbo.VPX_PARAMETER e clique em Edit Top 200 Rows.

Modifique event.maxAge para 30 e modifique o valor event.maxAgeEnabled para true.
Modifique task.maxAge para 30 e modifique o valor task.maxAgeEnabled para true.

Observação: para diminuir o tempo gasto na limpeza de dados, realize as etapas anteriores em vários intervalos. Para tal, certifique-se de manter o valor padrão de event.maxAge e de task.maxAge, e execute a etapa 6 para realizar a limpeza. Em seguida, reduza os valores event.maxAge e task.maxAge em 60 e execute a limpeza. Repita as etapas até que o valor atinja 30 para o processo final de limpeza.

Execute o procedimento armazenado integrado:

  1. Vá até VIM_VCDB > Programmability > Stored Procedures.
  2. Clique com o botão direito do mouse em dbo.cleanup_events_tasks_proc e selecione Execute Stored Procedure.

Isso limpa os dados das tabelas vpx_event, vpx_event_arg e vpx_task na data especificada em maxAge.

Quando essa etapa tiver sido concluída com êxito, feche o SQL Management Studio e inicie o serviço do VMware Virtual Center Server.

Para garantir que o Statistics Level padrão esteja definido como 1:

  1. Usando o vSphere Client, conecte-se ao vCenter Server como administrador.
  2. Vá até Administration > vCenter Server Settings > Statistics.
  3. Em Statistics Intervals, verifique se a coluna Statistics Level está definida como 1.

Para alterar o valor, selecione o Interval Duration, clique em Edit e selecione Level 1 no menu suspenso.

Nenhum comentário:

Postar um comentário