SQL 40
BC Clean sysaux - job queue By allan on 13th November 2025 02:18:14 PM
  1. -- SYSAUX Tablespace Growing Due to SYS.SCHEDULER$_JOB_OUTPUT LOB Column (Doc ID 2095104.1)    
  2.  
  3. SET LINES 200
  4. SET pages 1000
  5. COLUMN c1 heading "Owner"  format a15
  6. COLUMN c2 heading "Name"   format a35
  7. COLUMN c3 heading "Type"   format a15
  8. COLUMN c4 heading "MB"      format 99999
  9.  
  10. SELECT
  11.   owner c1,
  12.   segment_name c2,
  13.   segment_type c3,
  14.   (bytes/1024/1024) c4
  15. FROM dba_segments
  16. WHERE tablespace_name='SYSAUX'
  17. AND (bytes/1024/1024) > 50
  18. ORDER BY c4 DESC;
  19.  
  20.  
  21. SELECT *
  22. FROM dba_lobs
  23. WHERE segment_name = 'SYS_LOB0000010689C00003$$';
  24.  
  25.  
  26. SELECT COUNT(*)
  27. FROM SYS.SCHEDULER$_JOB_OUTPUT;
  28.  
  29. SELECT COUNT(*)
  30. FROM sys.SCHEDULER$_JOB_RUN_DETAILS;
  31.  
  32.  
  33. DESC SCHEDULER$_JOB_RUN_DETAILS;
  34.  
  35. EXEC dbms_scheduler.purge_log(0, 'JOB_AND_WINDOW_LOG');
  36.  
  37. -- http://webgeest.blogspot.com/2015/06/purge-loghistory.html
  38.  
  39. SELECT * FROM DBA_SCHEDULER_GLOBAL_ATTRIBUTE;
  40.  
  41. EXEC DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE('log_history','3');
  42.  
  43. EXEC DBMS_SCHEDULER.PURGE_LOG(3,which_log=>'JOB_LOG');
  44.  
  45. SELECT COUNT(1) FROM dba_scheduler_job_log WHERE log_date < sysdate-600;
  46.  
  47. EXEC dbms_scheduler.disable('PURGE_LOG');
  48. EXEC dbms_scheduler.enable('PURGE_LOG');
  49.  
  50. EXEC DBMS_SCHEDULER.PURGE_LOG();
  51.  
  52.  
  53. ALTER TABLE sys.scheduler$_event_log enable ROW movement;
  54. ALTER TABLE sys.scheduler$_event_log shrink SPACE cascade;
  55.  
  56. ALTER TABLE sys.scheduler$_job_run_details enable ROW movement;
  57. ALTER TABLE sys.scheduler$_job_run_details shrink SPACE cascade;
  58.  
  59. ALTER TABLE sys.scheduler$_event_log disable ROW movement;
  60. ALTER TABLE sys.scheduler$_job_run_details disable ROW movement;
  61.  
  62.  
  63. -- PDB version
  64. EXEC dbms_pdb.exec_as_oracle_script('alter table sys.scheduler$_event_log enable row movement');
  65. EXEC dbms_pdb.exec_as_oracle_script('alter table sys.scheduler$_event_log shrink space cascade');
  66.  
  67. EXEC dbms_pdb.exec_as_oracle_script('alter table sys.scheduler$_job_run_details enable row movement');
  68. EXEC dbms_pdb.exec_as_oracle_script('alter table sys.scheduler$_job_run_details shrink space cascade');
  69.  
  70. EXEC dbms_pdb.exec_as_oracle_script('alter table sys.scheduler$_event_log disable row movement');
  71. EXEC dbms_pdb.exec_as_oracle_script('alter table sys.scheduler$_job_run_details disable row movement');
  72.  
  73. -- To purge manually using the below command instead of Auto-Purge window:-
  74.  
  75. conn / AS sysdba;
  76.  
  77. EXEC prvt_advisor.delete_expired_tasks;
  78.  
  79. -- After the purge, do alter table WRI$_ADV_OBJECTS move; and rebuild three indexes. This will free space in the tablespace.
  80.  
  81. --SQL> alter table WRI$_ADV_OBJECTS move;
  82. ALTER INDEX WRI$_ADV_OBJECTS_PK rebuild;
  83. ALTER INDEX WRI$_ADV_OBJECTS_IDX_01 rebuild;
  84.  
  85. -- PDB version
  86.  
  87. EXEC dbms_pdb.exec_as_oracle_script('alter index WRI$_ADV_OBJECTS_PK rebuild');
  88. EXEC dbms_pdb.exec_as_oracle_script('alter index WRI$_ADV_OBJECTS_IDX_01 rebuild');

Paste is for source code and general debugging text.

Login or Register to edit, delete and keep track of your pastes and more.

Raw Paste

Login or Register to edit or fork this paste. It's free.