Tuesday, January 21, 2014

Veritabanı Sunucularında AUD$ Tablosunun SYSTEM Tablespace’inden Farklı bir Tablespace Altına Taşınması

Veritabanı ile ilgili audit kayıtları veritabanı içinde saklanacaksa SYSTEM şeması altındaki aud$ tablosunu kullanır. Ancak bu durumda aud$ tablosu aşırı büyüme göstereceği için SYSTEM tablespacei büyüyecektir. SYSTEM tablespace’inin SYS objeleri dışında büyümesi istenen bir durum değildir.

Bu yüzden aud$ tablosundan dolayı büyüyen SYSTEM tablespaceini shrink etmek mümkün olmadığı için sistemde fazla yer kaplamasının ve yedekten dönme işlemlerinde yine büyük boyutlarda oluşmasını engellemek için aud$ tablosunu farklı bir tablespace altına taşımak gerekmektedir.


1-      AUDIT Tablosu İçin Yeni Bir Tablespace Oluşturmak
Audit tablosunu (AUD$) taşımadan önce yeni bir tablespace oluşturmak gerekmektedir. Mevuct tablespacelerin kullanım amacı farklı olduğundan ve bakım işlemlerinin kolay olması için farklı bir tablespace olması önerilir.


CREATETABLESPACE TS_AUDIT
DATAFILE'/data/oradata/<oracle_sid>/ts_audit01.dbf'
SIZE100MAUTOEXTENDONNEXT10MMAXSIZE5120M;



2-      AUDIT Tablosunu Yeni Oluşturulan Tablespace Altına Taşımak

Audit tablosunu manuel olarak move edebileceğimiz gibi apiler yardımıyla da taşıyabiliriz.


Aşağıdaki komut yardımıyla AUD$ tablosu taşınır.

BEGIN
  DBMS_AUDIT_MGMT.set_audit_trail_location(
    audit_trail_type           => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
    audit_trail_location_value => 'TS_AUDIT');
END;
/

Değişikliği aşağıdaki gibi görebiliriz.


TS_AUDIT tablosu altında AUD$ tablosunu görmekteyiz.


3-      AUDIT Modunu DB,EXTENDED Şekilde Ayarlamak

Daha kapsamlı bir audit mekanizması için db,extenden modda audit yönetimi yapılmalıdır. Ayrıca SYS işlemleri de auditlenmelidir. Aşağıdaki komutlarla bu istekler uygulanabilir.

ALTER SYSTEM SET audit_trail=db,extended SCOPE=SPFILE;

ALTER SYSTEM SET audit_sys_operations=TRUE scope=spfile;

Bunun haricinde veritabanı genelinde bir audit yönetimi yapılması gerekmektedir.

No comments :

Post a Comment