OBJETIVO

Auxiliar o gestor do sistema a identificar uma possível causa de crescimento de base e fazer a correção. 

DESCRIÇÃO

Caso o gestor do sistema possua conhecimento em banco de dados e acesso, ele pode seguir o passo a passo para realizar o ajuste caso a base apresente um crescimento de maneira atípica. 


PASSOS PARA REPRODUÇÃO

Para a primeira parte desse procedimento e necessário verificar o tamanho das tabelas do banco dados e vamos utilizar o seguinte comando; 

 

select r.rdb$relation_id, r.rdb$relation_name , count (*)* (select mon$page_size from mon$database) as table_size 

from rdb$pages p 

inner join rdb$relations r on r.rdb$relation_id = p.rdb$relation_id 

where p.rdb$page_type in (4,5,6,7,8) 

group by r.rdb$relation_id, r.rdb$relation_name 

order by 3 desc 

Após rodar o comando note que ele irá apresentar as tabelas do banco de dados e o tamanho delas. 

Abaixo das tabelas note que há o campo “SUM” ele mostra o tamanho real do banco de dados, para fazer essa somatória clique no “∑” que se encontra na barra de ferramentas do IBepert. 

Note que neste caso a tabela “WTSWF_CONTEXTS” está com um tamanho acima do normal. 


A “WTSWF_CONTEXTS” e responsável pelo workflow e consequentemente se o cliente estiver com algum problema no workflow como por exemplo um looping ele irá fazer essa tabela crescer descontroladamente. 

Ao identificar essa tabela com um tamanho desproporcional vamos rodar o seguinte select; 

  • select * from wtswf_timers where awaketime<'today' 

Este select e responsável por verificar os timers do workflow, ele mostra os timers que não rodaram no dia e desde quando o timer não está rodando. 

Note que neste caso a tabela possui 3471 registros e timers que estão tentando rodar desde 2018, isso acaba criando gerando dados que vão parar na tabela “WTSWF_CONTEXTS” consequentemente causando crescimento dela. 


Feito isso vamos rodar o seguinte delete; 

  • delete from wtswf_timers where awaketime<'today' 

Este delete apaga todos os timers que não estão sendo utilizados no dia. 

 

Em seguida fazer o seguinte comando; 

  • update wtswf_contexts set data = null where active = 'F' 

Ele e responsável pela desativação dos timers que não está sendo utilizado. 

Obs: Para todo procedimento realizado na base de dados e necessário fazer um backup da mesma, parando os serviços do wtsGuard, wtsBroker, wtsMessenger, o serviço do firebird e os seus respectivos processos. 

Ao fazer o backup da base com sistema no ar o sistema pode corromper a base de dados causando até a sua perca total.

Obs2: Este procedimento se aplica a base de dados Firebird

TAXONOMIAS SUGERIDAS PARA ABERTURA E ENCERRAMENTO DE TAREFAS

Classificação da Solicitação:

Unidade de Negocio: MILLENNIUM

Tipo de Solicitação: INCIDENTE

Produto: E-MILLENIUM

Módulo: TÉCNICO

Sub módulo: OUTROS

Funcionalidade: Auxiliar o gestor do sistema caso a base dedados apresente crescimento atípico da base de dados

Indisponibilidade: Não

Alternativa: Não


Classificação da Encerramento: TÉCNICO

Dimensão: OUTROS

Detalhe: Documento para auxiliar o gestor do sistema caso a base dedados apresente crescimento atípico da base de dados 


Validado por: 

Carlos Vagner Miranda Rocha

NPS: O chamado foi concluído! Em breve chegará em seu e-mail uma pesquisa para avaliar sua experiência com meu atendimento. Por favor, responda! Sua opinião é muito importante para nós!

  • Sem rótulos