In 11g Release 2 you have 1 build-in package to do this easily.
First you must initialize purge process:
begin  
    sys.dbms_audit_mgmt.init_cleanup( 
        audit_trail_type     => sys.dbms_audit_mgmt.audit_trail_all, 
        default_cleanup_interval    => 30*24 
    ); 
end; 
 | 
 
select * from DBA_AUDIT_MGMT_CLEANUP_JOBS 
 | 
 
Next, to perform the actual purge:
begin 
  dbms_audit_mgmt.clean_audit_trail( 
    audit_trail_type =>  dbms_audit_mgmt.audit_trail_all 
  ); 
end; 
 | 
 
When the initial purge is complete, you may want to set up an automated process to execute this periodically. You will need to create a DBMS Scheduler Job as shown below:
begin 
  dbms_audit_mgmt.create_purge_job
  ( 
    audit_trail_type    => dbms_audit_mgmt.audit_trail_all, 
    audit_trail_purge_interval  => 7*24, 
    audit_trail_purge_name => 'all_audit_trails_job' 
  ); 
end; 
 | 
 
Since the above SQL performs a DELETE operation, it is not very conducive to a large delete operation. You may want to break it into chunks:
For Database Audit
  trails 
begin 
 dbms_audit_mgmt.set_audit_trail_property( 
  audit_trail_type           => dbms_audit_mgmt.audit_trail_aud_std, 
  audit_trail_property       => dbms_audit_mgmt.db_delete_batch_size, 
  audit_trail_property_value => 100000); 
end; 
For FGA 
begin 
 dbms_audit_mgmt.set_audit_trail_property( 
  audit_trail_type           => dbms_audit_mgmt.audit_trail_fga_std, 
  audit_trail_property       => dbms_audit_mgmt.db_delete_batch_size, 
  audit_trail_property_value => 100000); 
end; 
 | 
 
You can recheck your config:
select * from
  dba_audit_mgmt_config_params; 
 | 
 
Then using a special package you will move the AUD$ table to the new tablespace:
begin 
  dbms_audit_mgmt.set_audit_trail_location( 
    audit_trail_type            => dbms_audit_mgmt.audit_trail_aud_std, 
    audit_trail_location_value  => 'AUDIT_TS' 
  ); 
end; 
 | 
 
To move the FGA_LOG$ table to this tablespace:
begin 
  dbms_audit_mgmt.set_audit_trail_location( 
    audit_trail_type  => dbms_audit_mgmt.audit_trail_fga_std, 
    audit_trail_location_value  => 'AUDIT_TS' 
  ); 
end; 
 | 
 
List of values for audit_trail_type parameter:
| 
   
Parameter 
 | 
  
   
Purpose: to remove: 
 | 
 
| 
   
dbms_audit_mgmt.audit_trail_aud_std 
 | 
  
   
The normal AUD$ audit
  train the database 
 | 
 
| 
   
dbms_audit_mgmt.audit_trail_fga_std 
 | 
  
   
The FGA_LOG$ table,
  for Fine Grained Auditing 
 | 
 
| 
   
dbms_audit_mgmt.audit_trail_db_std 
 | 
  
   
Both normal and FGA
  audit trails 
 | 
 
| 
   
dbms_audit_mgmt.audit_trail_os 
 | 
  
   
The OS file audit
  trails 
 | 
 
| 
   
dbms_audit_mgmt.audit_trail_xml 
 | 
  
   
The XML audit trail
  files 
 | 
 
| 
   
dbms_audit_mgmt.audit_trail_files 
 | 
  
   
Both the OS and XML
  audit trails 
 | 
 
| 
   
dbms_audit_mgmt.audit_trail_all 
 | 
  
   
All of the above 
 | 
 
No comments:
Post a Comment