O
repositório do AWR (Automatic Workload Repository) é gerado automaticamente durante
a criação do banco de dados, porém algumas vezes o DBA pode ter a necessidade
de recriá-lo, neste artigo a demonstraremos os passos necessários.
1. Conectar-se
no SQL*Plus
$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0
Production on Mon Nov 4 10:43:53 2013
Copyright (c) 1982, 2009,
Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise
Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real
Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application
Testing options
SQL>
2. Verificar
os seguintes parâmetros (cluster_database, statistics_level, sga_target),
SQL> show parameter cluster_database;
NAME
TYPE VALUE
------------------------------------ -----------
------------------------------
cluster_database
boolean TRUE
cluster_database_instances integer 2
SQL> show parameter statistics_level
NAME
TYPE VALUE
------------------------------------ -----------
------------------------------
statistics_level
string TYPICAL
SQL> show parameter sga_target
NAME TYPE VALUE
------------------------------------
----------- ------------------------------
sga_target big integer 8000M
Importante: Caso os valores sejam diferentes dos apresentados
acima, deve-se alterar para os valores propostos para que o AWR funcione
corretamente.
3.
“Restartar”
o banco de dados em modo restrito.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shutdown.
SQL> startup restrict;
ORACLE instance started.
4.
Para
remover o catálogo do AWR executar o script abaixo:
SQL> @$ORACLE_HOME/rdbms/admin/catnoawr.sql
5.
Para
recriar o catálogo do AWR executar.
SQL> alter system flush shared_pool;
System altered.
SQL> @$ORACLE_HOME/rdbms/admin/catawrtb.sql
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
SQL> @$ORACLE_HOME/rdbms/admin/execsvrm.sql
6.
“Restartar”
o banco de dados.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shutdown.
SQL> startup;
ORACLE instance started.
7.
Verificar
objetos inválidos no banco de dados, caso você encontre deve-se recompilar os
objetos.
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
8.
Verificar
os “status” dos componentes do banco de dados, executar a consulta abaixo:
SQL> SET PAGESIZE 500
SQL> SET LINESIZE 100
SQL> SELECT
SUBSTR(COMP_NAME,1,40) COMP_NAME, STATUS, SUBSTR(VERSION,1,10) VERSION
FROM DBA_REGISTRY
ORDER BY COMP_NAME;
COMP_NAME STATUS VERSION
----------------------------------------
----------- ----------
JServer JAVA Virtual
Machine VALID 11.2.0.1.0
Oracle Database Catalog
Views VALID 11.2.0.1.0
Oracle Database Java
Packages VALID 11.2.0.1.0
Oracle Database Packages
and Types VALID 11.2.0.1.0
Oracle Enterprise
Manager VALID 11.2.0.1.0
Oracle Expression
Filter VALID 11.2.0.1.0
Oracle Real Application
Clusters VALID 11.2.0.1.0
Oracle Rules Manager VALID 11.2.0.1.0
Oracle Text VALID 11.2.0.1.0
Oracle Workspace
Manager VALID 11.2.0.1.0
Oracle XDK VALID 11.2.0.1.0
Oracle XML Database VALID 11.2.0.1.0
12 rows selected.
SQL> SELECT
SUBSTR(OBJECT_NAME,1,40) OBJECT_NAME, SUBSTR(OWNER,1,15) OWNER,OBJECT_TYPE
FROM DBA_OBJECTS
WHERE STATUS='INVALID'
ORDER BY OWNER, OBJECT_TYPE;
no rows selected
SQL> SELECT OWNER,OBJECT_TYPE,COUNT(*)
FROM DBA_OBJECTS
WHERE STATUS='INVALID'
GROUP BY OWNER,OBJECT_TYPE
ORDER BY OWNER,OBJECT_TYPE;
no rows selected
Importante: Caso algum componente ou objeto esteja inválido no
banco de dados, deve-se providenciar a validação para o funcionamento adequado
do AWR.
9. Gerar o primeiro “snapshot” no AWR, usar:
PL/SQL procedure successfully
completed.
Com o
primeiro “snapshot” as tabelas do AWR irão armazenar as estatísticas do banco
de dados.
10. Verificar a
periodicidade de atualização do AWR, executar a consulta abaixo:
SQL> SET
LINES 200
SQL> COL
SNAP_INTERVAL FOR A20
SQL> COL
RETENTION FOR A20
SQL>
SQL>
SELECT * FROM DBA_HIST_WR_CONTROL;
DBID SNAP_INTERVAL RETENTION TOPNSQL
----------
-------------------- -------------------- ----------
9999000001 +00000 01:00:00.0 +00020 00:00:00.0 DEFAULT
O resultado da consulta mostra que
o AWR será executado em intervalos de uma hora e a retenção dos dados é de
vinte dias (em vermelho).
Referências: Oracle®
Database Performance Tuning Guide 11gR2 (11.2)
Oracle®
Database Concepts 11gR2 (11.2)
MSc.
Rubens Oliveira
DBA Oracle Consultor