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!