Arquivo mensal: abril 2017

Configurando Schedule e Gerando Relatórios com o STATSPACK

No último post eu mostrei como instalar e configurar o STATSPACK, neste post mostrarei como configurar uma coleta automática de dados para o STATSPACK.

Statspack não é um processo automático. Ele requer configuração manual, um DBA precisa configurar um scheduler para Statspack Collection e Statspack purge.

Podemos automatizar a tomada de snapshots do STATSPACK executando DBMS_JOB ou programando-o através do crontab. No exemplo que usaremos mostraremos a configuração do scheduler para o STATSPACK  via DBMS_JOB.

Cabe ao DBA, descobrir quantas vezes precisa estar executando o STATSPACK. Como os dados devem ser coletados e escritos em algum lugar, certifique-se de que você não está coletando dados com muita freqüência, a coleta de dados em excesso pode tornar o servidor de banco de dados mais lento.

Abaixo mostraremos como configurar uma coleta  automática para o STATSPACK.

Depois do STATSPACK  instalado e funcionando, podemos agendar a coleta automática de dados. O script spauto.sql pode ser usado para agendar coletas de snapshots do sistema a cada hora.

SQL> @?/rdbms/admin/spauto.sql

OBS: De acordo com a necessidade do ambiente é possível alterar o intervalo de execução deste job.

Para uma coleta manual usamos o comando abaixo, conectados com o usuário perfstat.

SQL> EXEC STATSPACK.snap

 PL/SQL procedure successfully completed.

SQL>

 1 – Gerando Relatórios

Após mais de um snapshot coletado, estarei gerando um relatório com a análise do ambiente. Assim como no AWR, para gerar o relatório do STATSPACK, devemos selecionar um snapshot inicial e um snapshot final e posteriormente definimos o nome do arquivo a ser gerado, que pode ser precedido pelo local de destino.

Segue abaixo a sintaxe da execução do relatório de coleta  STATSPACK.

SQL> @?/rdbms/admin/spreport.sql

Segue abaixo um modelo do relatório STATSPACK (como o relatório é extenso somente coloquei a parte inicial).

STATSPACK report for

Database    DB Id    Instance     Inst Num  Startup Time   Release     RAC

~~~~~~~~ ———– ———— ——– ————— ———– —

           196335337  orcl               1 20-Apr-17 12:52 11.2.0.1.0  NO

Host Name             Platform                CPUs Cores Sockets   Memory (G)

~~~~ —————- ———————- —– —– ——- ———

     localhost.locald Linux x86 64-bit           2     2       1     2.0

Snapshot       Snap Id     Snap Time      Sessions Curs/Sess Comment

~~~~~~~~    ———- —————— ——– ——— ———–

Begin Snap:          3 20-Apr-17 16:00:03       40       5.1

  End Snap:          4 20-Apr-17 17:00:05       40       5.1

   Elapsed:      60.03 (mins) Av Act Sess:       0.4

   DB time:      25.94 (mins)      DB CPU:      13.92 (mins)

Cache Sizes            Begin        End

~~~~~~~~~~~       ———- ———-

    Buffer Cache:       188M              Std Block Size:         8K

     Shared Pool:       288M                  Log Buffer:     2,160K

Load Profile              Per Second    Per Transaction    Per Exec    Per Call

~~~~~~~~~~~~      ——————  —————– ———-  ——

      DB time(s):                0.4                0.0        0.01   0.06

       DB CPU(s):                0.2                0.0        0.00   0.03

       Redo size:           20,766.2            2,092.1

   Logical reads:              548.5               55.3

   Block changes:              138.3               13.9

  Physical reads:               22.9                2.3

Physical writes:               16.5                1.7

      User calls:                7.0                0.7

          Parses:                9.2                0.9

     Hard parses:                0.0                0.0

W/A MB processed:                1.8                0.2

          Logons:                0.1                0.0

        Executes:               62.6                6.3

       Rollbacks:                0.0                0.0

    Transactions:                9.9

2 – Purgar/remover dados desnecessários

É possível limpar dados desnecessários do esquema PERFSTAT usando sppurge.sql. Este script exclui snapshots que estão entre o intervalo inicial e final do Snapshot Id especificado. Segue abaixo a sintaxe de execução:

@?/rdbms/admin/sppurge.sql

OBS: O script acima executa uma remoção manual dos snapshots coletados, esse procedimento pode ser feito de forma automática pelo DBA.

3 – Desinstalando o STATSPACK

Para remover o statspack, basta executar o comando spdrop.sql.

@?/rdbms/admin/spdrop.sql

Referências:

Documentação Oracle

Oracle FAQ

AKADIA