SYSAUX tablespace

Posted on 2014-02-03
Medium Priority
Last Modified: 2014-02-06
My manager has tasked me with purging some space from the SYSAUX tablespace in one of our databases that has grown large. He asked me to do this by doing the following:
Find large objects in tablespace
Export tables out
Remove OEM related data and anything else we can purge
Import back in which will remove the tablespace and renter it with the smaller data

My manager has left for a few weeks vacation and Id like to get this task complete for him although I need assistance. Im able to find the large objects in tablespace but dont know what is related to OEM, nor do I know what is capable of being purged from SYSAUX without messing up the database? Can any of you give me some insight? Thanks!
Question by:k3vsmith
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
  • 3
  • +1
LVL 38

Expert Comment

by:Geert Gruwez
ID: 39829559
see an aud$ table in sysaux tablespace ?
if so then auditing is switched on and still in sysaux tablespace.

it has to be moved to a different tablespace to be able to purge it
see here for a very detailed explanation
LVL 38

Expert Comment

by:Geert Gruwez
ID: 39829596
you could also set the purging policies to get rid of the old data in oem

allthough that might not retrieve the used tablespace

Author Comment

ID: 39829678
Thanks for the quick response.
These are the top 10 objects in SYSAUX:


Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

LVL 12

Expert Comment

by:Praveen Kumar Chandrashekatr
ID: 39830034
the most of the objects is  OEM, AWR ,ASH  and LOB related objects. A LOB segment stores data for a CLOB/BLOB table column.

Expert Comment

ID: 39831818
Bad news:
- AWR cannot be completely turned off
- *Any* manipulation of AWR data needs appropriate (paid) licenses (not included in Enterprise Edition)
- AWR snapshot size will grow over time (this is a known issue) so even deleting old snapshots is not a final solution, because the snapshot will eventually reach the size where only one snapshot fits.

Good news:
- AWR data is not needed for everyday operation, nor for mere mortals like DBAs, only for Oracle Support Requests. (you are allowed to provide them requested AWR information even if you don't have the license)
- Oracle handles the case when SYSAUX is full with no problems. In worst case some AWR stuff will fail. So what.

So you should apply two measures:
- ensure that SYSAUX tablespace is limited in size (e.g. current size + 10% would do)
- modify your DB free space checking tools so that they don't raise alarms on SYSAUX tablespace being 100% full.
LVL 38

Expert Comment

by:Geert Gruwez
ID: 39831829
That's the trap everyone falls into
this is not true
(you are allowed to provide them requested AWR information even if you don't have the license)

it's stated in the license that support will ask your for AWR data because they are oblivious to what you are entitled to by your license
it's up to you (the dba) to know if you are licensed to that

after that the license people come in: i see you use AWR but aren't license for it
here's your extra fee you need to pay

so be careful with that

Expert Comment

ID: 39831879
Well we are more foxy than that.

Oracle Support: "Please send AWR Reports"
Me: "I'm sorry but we don't have the necessary licenses."
Oracle Support: "That's no problem, Sir. Please send them."

Once we have it written in an email Oracle shouldn't complain, maybe they should subtract the license fee from the annual bonus of that given support expert. :P

Author Comment

ID: 39833254
Thank you guys for the help. Do you guys have any insight as to how best to remove AWR data?

Accepted Solution

Surrano earned 2000 total points
ID: 39834825
1. Buy license.
Otherwise you are not allowed to delete, change retention-- nothing.

2. Check snapshot range to delete:
SELECT snap_id, begin_interval_time, end_interval_time FROM SYS.WRM$_SNAPSHOT
WHERE snap_id = ( SELECT MIN (snap_id) FROM SYS.WRM$_SNAPSHOT) and instance_number=1
SELECT snap_id, begin_interval_time, end_interval_time FROM SYS.WRM$_SNAPSHOT
WHERE snap_id = ( select start_snap_id-1 from dba_hist_baseline) and instance_number=1;

Open in new window

3. If there is only one row: nothing to delete.
If there are two rows: substitute the snap_id values to the following command:
exec dbms_workload_repository.drop_snapshot_range(low_snap_id => 10147, high_snap_id=>10210); 

Open in new window

4. To persistently adjust configuration, reduce retention as follows:
select * from  DBA_HIST_BASELINE; 
-- reduce AWR moving window size (example below with 4 days, specified in days)
exec DBMS_WORKLOAD_REPOSITORY.modify_baseline_window_size(window_size => 4);
-- reduce AWR retention parameter (same 4 days, specified in minutes)
-- check results
select * from  DBA_HIST_BASELINE; 

Open in new window

But as I said even this is a temporary solution; AWR will eventually grow over time to the limits of the tablespace.

Author Closing Comment

ID: 39839779
Thank you all for your feedback. I have enough info to proceed.

Featured Post

Free Backup Tool for VMware and Hyper-V

Restore full virtual machine or individual guest files from 19 common file systems directly from the backup file. Schedule VM backups with PowerShell scripts. Set desired time, lean back and let the script to notify you via email upon completion.  

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Truncate is a DDL Command where as Delete is a DML Command. Both will delete data from table, but what is the difference between these below statements truncate table <table_name> ?? delete from <table_name> ?? The first command cannot be …
Cursors in Oracle: A cursor is used to process individual rows returned by database system for a query. In oracle every SQL statement executed by the oracle server has a private area. This area contains information about the SQL statement and the…
This video shows setup options and the basic steps and syntax for duplicating (cloning) a database from one instance to another. Examples are given for duplicating to the same machine and to different machines
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
Suggested Courses

800 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question