ORA-1693: max # extents XX reached in lobsegment SYS.SYS_LOBXXXXX$$

Database’ de tablespace’ lerinizde free space’ den bağımsız olarak maxextend sınırı verilerek (veya sonradan set edilerek de oluşturulmuş olabilir) create edilmiş olan nesnelerde bu max extent değerine ulaşıldığı zaman ORA-1693: max # extents XX reached in lobsegment SYS.SYS_LOBXXXXX$$ hatası almaya başlarız. Bizim örneğimizde hatayı aldığımız nesneye ve extent değerlerine ;

SELECT owner, segment_name, extents, max_extents
FROM dba_segments
WHERE segment_name = ‘ SYS_LOBXXXXX$$’;

Hata alınan alınan segmentin hangi tabloya ait olduğuna bulmak içinse ;

SQL> SELECT table_name
FROM dba_lobs
WHERE segment_name = ‘SYS_LOBXXXXX$$’

TABLE_NAME
——————-
AUD$
1 row selected.

Aud$ üzerindeki bir lobsegmentine hata alıyormuşuz. Bu tablo auditing kayıtlarının tutulduğu tablodur. Dolayısıyla sistemde auditing opsiyonunun açık olduğunu söyleyebiliriz. Aslında burada şunu söylemekte de fayda var. Eğer auditing yapıyorsanız ve bu tarz bir hata alıyorsanız , oracle artık yapılan işlemlerin auditing kayıtlarını kaydedemeyeceğinden sistemdeki bu sorun düzelene kadar yeni bir işlem yapılmasına izin vermeyecektir. Dolayısıyla bu sorunun bir production database’ inde oluştuğunu varsayarsanız sizin için ciddi bir problem oluşturacaktır.

Bu soruna poblem bulmak için ne yapabiliriz, sınırlı olan max extentimizi unlimited yapabiliriz (veya tablomuzu truncate edebiliriz ) ;

SQL> alter table sys.AUD$ modify lob (SQLTEXT) (STORAGE (MAXEXTENTS UNLIMITED));
Table altered.

Bu şekilde lobsegmentin extent problemine takılmadan tablespace içerisinde yeteri kadar alan olması durumunda hata almadan büyümeye devam etmesini sağlamış bulunuyoruz.

Be Sociable, Share!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


altı + = 13