statpack installation - liamlamth/blog GitHub Wiki
-
reference: https://www.dbi-services.com/blog/statspack-with-oracle-database-19c-and-multitenant/
-
build in cdb and pdb level
-
sqlplus / as sysdba
SQL> create tablespace STATPACK datafile '/oracle/psft/SEdbhome/oradata/CDBHRSE/statpack.dbf' size 200M autoextend on maxsize 4G; SQL> @?/rdbms/admin/spcreate Enter value for perfstat_password: Enter value for default_tablespace: STATPACK Enter value for temporary_tablespace: TEMP SQL> grant create job to perfstat;
-
sqlplus perfstat/perfstatpwd
SQL> exec STATSPACK.MODIFY_STATSPACK_PARAMETER (i_snap_level=>7) SQL> @?/rdbms/admin/spauto.sql SQL> create or replace procedure extended_purge( num_days IN number ) is BEGIN statspack.purge(i_num_days => num_days, i_extended_purge => TRUE); END extended_purge; / SQL> exec dbms_scheduler.create_program(program_name => 'SP_PURGE_PROG', program_type => 'STORED_PROCEDURE', program_action => 'PERFSTAT.extended_purge', number_of_arguments => 1, enabled => FALSE); SQL> exec DBMS_SCHEDULER.define_program_argument (program_name => 'SP_PURGE_PROG', argument_name => 'i_num_days', argument_position => 1, argument_type => 'NUMBER', default_value => 30); SQL> exec dbms_scheduler.enable(name => 'SP_PURGE_PROG'); SQL> exec dbms_scheduler.create_schedule (schedule_name => 'SP_PURGE_SCHED', repeat_interval => 'freq=weekly; byday=SUN; byhour=0; byminute=20',end_date => null, comments => 'Schedule for Statspack purge'); SQL> exec dbms_scheduler.create_job (job_name => 'SP_PURGE_JOB', program_name => 'SP_PURGE_PROG', schedule_name => 'SP_PURGE_SCHED', enabled => TRUE, auto_drop => FALSE, comments => 'Statspack Job for purge');
-
checking
col owner format a15 SQL> select owner, job_name from dba_scheduler_jobs; col SCHEMA_USER format a15 col INTERVAL format a15 col WHAT format a15 SQL> select name,snap_id,to_char(snap_time,'DD-MON-YYYY:HH24:MI:SS') "Date/Time" from stats$snapshot,v$database;