Lob Segmentler Nasıl Shrink Edilir ?

Bir önceki yazımda database’ deki tablolar üzerindeki fragmantasyonu nasıl tespit edebileceğimizden ve oluşan bu fragmantasyonaları nasıl elimine edebilceğimizden bahsetmiştim.
(http://www.kamilturkyilmaz.com/2012/01/15/oracle%E2%80%99-da-shrink-operasyonu-nasil-yapilir/)
Aslında aynı konu içerisinde değerlendirilmesi gereken ama yapısı itibari ile bir takım farklılıklar gösteren “lob segment” lerin üzerinde bu tarz işlemleri nasıl yapabiliriz, ondan bahsedeceğim ;

Öncelikle örnek lob data oluşturmak için; http://www.idevelopment.info/data/Oracle/DBA_tips/LOBs/LOBS_85.shtml linkindeki scriptlerden faydalandığımı belirtmek istiyorum. Buradaki scriptleri bizim testimizde kullanabileceğimiz şekliyle editleyip kullanıyor olacağım.

Lob segementler üzerinde shrink işlemine geçmeden önce üzerinde çalışacağımız test data datasını oluşturalım ;
Continue reading

Oracle’ da Shrink Operasyonu Nedir / Nasıl Yapılır …

Veritanımızdaki objeler zaman içerisinde tablo üzerinde sürekli olarak delete – insert – … işlemlerinin yapılmasından dolayı fragmantasyona uğrayıp aslında olması gereken size’ larından çok daha fazla yer işgal eder duruma gelebilirler. Bu tarz operasyonlarda bilinen en büyük yanlışlık tablodaki eski verileri belirli kritere göre silmeme rağmen neden bu tablo sürekli olarak büyüyor ? şeklindeki itirazlardır. Özellikle dba’ lerin zaman zaman tablolarda oluşan fragmantasyonları yazılımcılara bildirdiklerinde ve bunun için çözüm üretmeye çalıştıklarında sıklıkla aldıkları cevap ; biz tabloda zaten X günlük veri tutuyoruz neden büyüyor şeklinde oluyor şeklindeki dönüşlerdir. Delete işlemi tabloya yer kazandırmaz, oracle daki segment büyüme mantığı kullanılan blogun delete ile silinse dahi tekrar kullanılmadan bir sonraki blok üzerinden devam etme mantığına dayanır. (delete blok üzerindeki high water mark’ ı geri çekmez) Bu durumu bir örnekle açıklayıp tabloya orijinal size’ ını nasıl kazandırabileceğimizden bahsedelim.
Continue reading

Table–Schema–Database İstatistiklerinin Farklı Bir Database Üzerine Taşınması …

Kritik işlemler öncesinde tablo istatistiklerinin alınıp backuplanması çoğu zaman ciddi performans kayıplarının önüne bir anda geçmemizi sağlamaktadır. Bu duruma şöyle bir örnekde verebiliriz, örneğin bir report ortamını var ise bu ortamı her gece production dan yüklü miktarda veri aktararak besliyorsunuz. Hal böyle olunca reporter ortamındaki tablo istatistiklerini sürekli olarak güncellemeniz gerekecektir. Bu işlemde tablolarınızın size’ ına üzerlerindeki index yapılarına ve adetlerine bağlı olarak hem ciddi zaman almakta hemde ciddi kaynak kullanımına yol açmaktadır. Dolayısıyla bu tarz bir durumla karşılaştığınızda istatistikleri bir şekilde orjinal kaynaktan taşıyabilmeniz ciddi yarar sağlayacaktır.
Continue reading

Expdp – Impdp (Datapump) Komutları ve Kullanımı Üzerine …

Öncelikle expdp – impdp’ yi nerde ve ne zaman kullanabileceğimizden biraz bahsedelim, çok farklı nedenlerle kullanılabilmekle beraber en çok karşılaştığımız durumlar;

• Bir schema’ nın altındaki bir kısım veya tüm dataları farklı bir schema altına taşımak
istediğimizde,
• Oracle versiyonu değiştiğinde dataları taşımak için,
• Operating system değiştiğinde datayı taşımak için,
• Logical Backup almak istediğimizde

Bu yönteme sıklıkla başvururuz.

Export ve import işlemlerini nasıl yapılacağından, yapılan bu aktarım sonrasında işlemin hatasız gerçekleşip gerçekleşmediğinden ve bu işlemleri nasıl biraz daha performanslı yapabilirizden biraz bahsetmek istiyorum. Öncelikle expdp ve impdp’ da çok sık olarak kullanılan komutlara birer örnekle açıklamaya çalışalım sonrasında performansı artırmak için neler yapabiliriz ona bakalım.
Continue reading

Oracle Initial Parametreleri

Oracle da database’ ini startup ile açmaya kalktığımız da instance ilk iş olarak parametre dosyasını okumaya çalışacaktır. Dolayısıyla temel initial parametrelerinden bahsederken bizim için çok kritik file’ lerimizden biri olan spfileSID.ora dosyasından da kısaca bahsedeceğiz.

Parametre dosyaları Linux’ da;  $ORACLE_HOME/dbs,  Windos’da $ORACLE_HOME/database  altında bulunur. Database create edilmesiyle birlikte spfileSID.ora dosyamızda oluşur.  Bunun yanısıra parametre değişikliğini database içirisinden Alter system veya Alter database ile yapmak istemediğimiz veya yapamadığımız durumlarda ise kullandığımız birde pfileSID.ora dosyamız olacaktır. Bu dosya db create operasyonu sonrasında oluşmaz, bunu create etmek için sql satırında; Continue reading