User Drop Etmeye Çalışırken ORA-24005 Hatası Alınırsa …

Birkaç gün önce değerli bir arkadaşımdan user drop etmeye çalışırken aşağıda detayını paylaştığım hatayı aldığını ve bir şekilde işlemi tamamlayamadığını ve neler yapabiliriz şeklinde bir soru gelmişti. Sonrasında ortaya bloglarımız da paylaşmak adına güzel bir yazı çıkmış oldu.

Şimdi alınan hataya ve çözümümüze daha detaylı bakalım.
Aslında yapılmaya çalışılan işlem (eminimki bu güne kadar defalarca yapmışsınızdır) çok basit bir user drop işlemi, ancak bizim key’ imizde bu basit işlemi yapamayıp her seferinde aşağıdaki hata ile karşılaştık ;
Continue reading

İndex Kullanımı, Oluşturulması, Çeşitleri, Faydaları Üzerine …

İndex konusu uzun bir zamandır yazmayı planladığım birkaç konudan birisi idi. Umarım faydalı olur.

Oracle ‘ da indexler olmazsa olmazlarımızdan dır diyebiliriz. Aslında exdata gibi yeni teknolojilerle tanıştıkca yeni değişimler olsada hala indexsiz bir yaşam düşünemiyoruz. Peki çok klasik bir soruyle başlayalım o zaman ;
Nedir İndex ? Tablo üzerinde yapılan Select, İnsert, Update gibi işlemlerin daha performansla çalışması için oluşturulan nesnelerdir. Bir örnekle açıklayalım, çok büyük bir tablo üzerinde işlem yapıyorsanız ve çalıştığınız data miktarı tablonun toplam data size’ ının %5-6 ından büyük değilse ; böyle bir durumda eğer index kullanmıyorsanız çalıştığınız sorgu tablonun yer aldığı tüm blokları okumaya çalışacaktır. Eğer index kullanırsanız da sadece ilgili blokları okumayacağı çalışacağından sorgunuz daha performanslı çalışması sağlayacaktır.

İndexler genel olarak Select sorguları, Where cümleciği içeren Update sorguları ve yine Where cümleciği içeren Delete sorgularında ciddi performans artışları sağlarlar. İndexler Insert sorgularında ise performance düşürücü bir etkiye sahiptirler.Yine indexsli kolonlar üzerinde yapılacak update – delete işlemleride nispeten yavaş olacaktır.

Database’ de yer alan indexleri sorgulamak için aşağıdaki sorgulardan faydalanabiliriz ;
Continue reading

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 ;
Continue reading

Recovery Catalog Kullanarak Eski Bir Backupı Farklı Bir Hosta Nasıl Restore Edebiliriz

Anlatacağımız örneğin detayından biraz bahsetmek istiyorum. Bizim örneğimizdeki durum aslında şöyle, production databaselerimizden birinin 2010 yılına ait eski bir backupı, o günkü datalarını görebilmek için farklı bir sunucu üzerine dönmemiz gerekti. Bu çalışma aslında içerisinde birçok testide barındırıyor, rman recovery catalog üzerinden restore işlemi nasıl yapılır, tape içerisindeki eski bir backup farklı bir host üzerine recovery catalog kullanılarak nasıl dönülür gibi bir takım sorulara da cevap olacağını düşünüyorum. Restore öncesinde yapmamız gereken kontrollerden de bahsederek işlemlerimize başlayalım ;

Öncelikle production sunucusu üzerinden rman cataloga bağlanıp döneceğimiz backup’ ın statüsünü bir bakalım;
Continue reading