Ora-20200: Database/instance..does Not Exist Awr_pdb_database_instance
Seguramente nos ha pasado que hemos intentado generar algún AWR en una PDB creada recientemente y nos ha arrojado el siguiente error:
Este error sucede porque no está habilitado la generación de AWR a nivel de PDB. ¿Cómo podemos configurarlo? Pues bien, lo primero que tenemos que hacer, es conectarnos a la CDB$ROOT, aunque lo hagamos a este nivel, los cambios también aplicarían a nivel de PDB (tenemos la opción de hacerlo a nivel de PDB). Además si hacemos el cambio a nivel de CDB$ROOT, cada vez que creemos una nueva PDB, automáticamente el AWR estará habilitado o no, dependiendo de esta configuración.
Revisamos el valor del parámetro awr_pdb_autoflush_enabled
Habilitamos el parámetro
Una vez habilitado, debemos configurar el intervalo de tiempo de generación snapshots de AWR con el paquete DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSH_SETTINGS.
Este procedimiento recibe los siguientes parámetros:
Retention: Tiempo de retención en minutos. El valor especificado debe estar en el mínimo (1 día) o el máximo (100 años). Si especificamos el valor ZERO, los snapshot se conservarán para siempre. Se dejará el valor que había en caso de que sea nulo.
Interval: Intervalo de tiempo entre cada snapshot en minutos, el valor mínimo son 10 minutos y el máximo 1 año. Igual que el parámetro anterior, puede ser ZERO o nulo, aquí la diferencia con el parámetro anterior, es que si es ZERO los snapshot, ya sean automáticos o manuales, se deshabilitarán.
Topnsql: Este parámetro admite valores números o de tipo varchar2, se puede especificar los valores DEFAULT, MAXIMUM, N, donde N es el número de SQL. En caso de no especificar, el valor por defecto dependerá del parámetro STATISTICS_LEVEL. Si el valor del parámetro es TYPICAL el número será 30 y en caso de que el valor sea ALL el número será 100.
Dbid: Identificador de la BBDD en AWR, en caso de ir nulo, el valor del local dbid será usado.
Tablespace_name: Especificamos un tablespace para almacenar AWR data, en caso que no se especifique, se almacenará en SYSAUX.
Una cosa a tener en cuenta, en caso de que nuestro CDB$ROOT tenga varias PDB y para evitar problemas de performance cuando se estén creando snapshots en simultaneo, deberíamos configurar el parámetro AWR_SNAPSHOT_TIME_OFFSET en 1000000 para evitar este tipo de problemas.
Una vez configurado, nos conectamos a la PDB y generamos un SNAPSHOT de forma manual, con el paquete DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT;
Esperamos el intervalo de tiempo que hemos configurado y ya podemos generar nuestros informes AWR a nivel de PDB
¡Espero que os sirva!
Subscribe to my newsletter
Read articles from David Sanz directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
David Sanz
David Sanz
Soy desarrollador, Analista, DBA Oracle y Arquitecto OCI, certificado en OCI Migration and Integration Certified Professional y Certified Architect Associate con más de 15 años de experiencia en plataformas Oracle además de especialista en temas de rendimiento.