Statspack es un conjunto de herramientas de monitorización y rendimiento que permiten obtener estadísticas e instantáneas de las bases de datos Oracle.
En este artículo planteo dos escenarios; uno en el que la instalación se realiza en limpio, desde cero, y otro en el que lo reinstalamos debido a un problema en la instalación actual. Para la instalación en limpio, simplemente seguid los pasos del punto 2.
Eliminar esquema actual de statspack
Por defecto, statspack se instala en el schema PERFSTAT. Si tenemos algún problema en el mismo, la solución más rápida es «reinstalarlo», podemos hacerlo borrando y creando el schema gracias al script spdrop.SQL
.
El script lo ejecutamos con un usuario con privilegios de SYSDBA, lo que hace internamente es eliminar las tablas, sinónimos y finalmente el usuario:
SQL> CONNECT / AS SYSDBA SQL> @spdrop
Algunos ejemplos de errores que pueden provocar la necesidad de reinstalar statspack:
10:32:56 server1:SYS.BD1>ALTER PACKAGE STATSPACK COMPILE BODY; ALTER PACKAGE STATSPACK COMPILE BODY * ERROR at line 1: ORA-04043: el objeto STATSPACK no existe
BEGIN perfstat.statspack.snap; END; * ERROR at line 1: ORA-04063: package body "PERFSTAT.STATSPACK" tiene errores ORA-06508: PL/SQL: no se ha encontrado la unidad de programa llamada : "PERFSTAT.STATSPACK" ORA-06512: en l�nea 1
Instalar statspack
Una vez eliminado, o en caso de instalación nueva, la instalación es sencilla, simplemente se ejecuta este otro script SPCREATE.SQL
, que se encarga de crear todo el entorno de statspack:
SQL> CONNECT / AS SYSDBA SQL> @spcreate
En caso de que no sea una reinstalación, tened en cuenta que habrá que disponer de un tablespace para almacenar las tablas (PERFSTAT tablespace, por ejemplo). También habrá que asignar una contraseña para el usuario PERFSTAT. Ejemplo ed creación de TBS:
SQL> create tablespace perfstat 2 datafile '/u01/oradata/prodb1/perfstat.dbf' size 500m;
Una vez instalado, ya se pueden ejecutar snapshots de statspack:
SQL> CONNECT perfstat/perfstat SQL> EXECUTE statspack.snap;