دیتابیس اوراکل

دیتابیس اوراکل
طبقه بندی موضوعی

۴ مطلب در آذر ۱۳۹۷ ثبت شده است

online move lob partition

SQL> alter table TEST.MESSAGE move partition MESG01 online lob (content) store as (tablespace TEST_TBS) update indexes ;

Purge UNIFIED AUDIT TRAIL

اگر بیشتر فضای SYSAUX  توسط UNIFIED AUDIT TRAILها اشغال شده باشد، برای purge کردن آن میتوان به صورت زیر اقدام کرد.

 

1-      فضای SYSAUX را توسط کوئری زیر چک میکنیم.

 

,select occupant_name

         ,occupant_desc         

         ,"(round(space_usage_kbytes / (1024 * 1024) "SPACE(G         

         ,schema_name         

         move_procedure         

  from v$sysaux_occupants

; order by 3 desc

 

2-     اگر بیشتر فضای SYSAUX توسط AUDSYS گرفته شده باشد، برای purge کردن اطلاعات آن میتوان به روش زیر اقدام کرد.


;SQL> select count(*) from unified_audit_trail

 

به 2 روش میتوان اطلاعات جدول بالا را purge کرد:

- پاک کردن تمام اطلاعات جدول


Flush from memory--

;SQL> exec dbms_audit_mgmt.flush_unified_audit_trail


Execute the Purge Procedure--

begin

  dbms_audit_mgmt.clean_audit_trail

)

,audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED

                                                     ,use_last_arch_timestamp  => FALSE

                                                 container => DBMS_AUDIT_MGMT.CONTAINER_CURRENT

;(

;end

 

 

- پاک کردن اطلاعات از یک تاریخی به بعد

 

begin

  dbms_audit_mgmt.set_last_archive_timestamp

)

,audit_trail_type    =>  dbms_audit_mgmt.audit_trail_unified

('last_archive_time => to_timestamp('02-DEC-2018','DD-MON-YYYY

 ;(

;end


;SQL> select * from dba_audit_mgmt_last_arch_ts


Flush from memory--

;SQL> exec dbms_audit_mgmt.flush_unified_audit_trail


Execute the Purge Procedure-- 

begin

 dbms_audit_mgmt.clean_audit_trail

)

 ,audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED

                                    ,use_last_arch_timestamp => TRUE

                                   container => DBMS_AUDIT_MGMT.CONTAINER_CURRENT

 ;(

;end


برای اینکه اینکار به صورت اتوماتیک انجام شود، میتوانید به صورت زیر یک job تعریف کنید.

begin


  dbms_scheduler.create_job (


    job_name        => 'PURGE_UNIFIED_AUDIT_TRAILS',


    job_type        => 'PLSQL_BLOCK',


    job_action      => 'declare

                        l_days NUMBER := 10;

                        begin 


                          dbms_audit_mgmt.set_last_archive_timestamp(DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, 

                                                                     TRUNC(SYSTIMESTAMP)-L_DAYS);

                          dbms_audit_mgmt.clean_audit_trail( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,

                                                             use_last_arch_timestamp => TRUE ,

                                                             container => DBMS_AUDIT_MGMT.CONTAINER_CURRENT );


                        END;',


    start_date        => SYSTIMESTAMP,


    repeat_interval => 'freq=daily; byhour=2; byminute=0; bysecond=0;',


    end_date         => NULL,


    enabled           => TRUE,


    comments        => 'Automatically set audit last archive time.');


end;

 

 n منابع 


online move datafile in 12c

SQL> alter database move datafile

'+DATA/FBPPRD/5E0295675F4B5286E0534911140A1EE8/DATAFILE/test_sdat.302.993730507'

to

'+SDATA';

convert timzone

select to_char((from_tz(cast(sysdate as timestamp), 'UTC') at time zone

         'ASIA/Tehran'),

         'yyyy-mm-dd hh24:mi:ss')

  from dual;