read-only table komutu

Dba’ ler olarak sıkça database’ deki tablolar üzerinde bir takım admin işlemleri yapıyoruz. Zaman zaman da bir tablo üzerinde çalışırken tabloya erişim olmasını daha doğrusu çalışma yaptığımız süre boyunca tabloda herhangi bir verinin değişmemesini isteriz. 11g öncesinde bu iş biraz sıkıntılı idi, üzerinde çalıştığımız tablo hangi tablespace’ de ise ya o tablespace’ i read only moda alırdık yada tabloyu rename edip aynı structure da yeni bir tane oluşturup ondan sonra işleme devam ederdik veya başka bir takım yöntemlere başvurmak zorunda kalırdık. 11g ile birlikte bizim de işimizi çok kolaylaştıran çok güzel bir özellik geldi. Artık tablo seviyesinde read only mod özelliğini kullanabiliyoruz.

Nasıl yapabildiğimizi bir örnekle açıklayalım ;
Continue reading

ddl_lock_timeout parametresi hakkında

Oracle 11g öncesinde eğer bir tablo üzerinde bir DML komutu çalıştırılmış ve transaction sonlanmadan önce başka bir session tarafından yine bu tablo üzerinde bir DDL komutu çalıştırdığınızda oracle hiç beklemeden size “ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired” hatasını veriyor idi. Defaultta bu durum aslında 11g’ dede aynısı, test edelim ;

Üzerinde test yapabilmemiz için bir tane tablo create ediyoruz ;

SQL> create table k1 as select * from dba_tables
Table created.

Şimdi bu tablo üzerinden bir DML komutu çalıştırıp başka bir sessiondan DDL çalıştımayı deneyelim;
Continue reading

db_ultra_safe parametresi hakkında

Oracle 11g ile birlikte yeni tanışmış olduğumuz bir parametrenin kullanımından bahsetmek istiyorum. 11g öncesinde, database’ de data corruption oluşması riskini göze almak istemiyorsak ve bir miktar performans kayıplarını da göze alabiliyorsak kullanacağımız iki tane parametremiz vardı . Bunlar db_block_checking ve db_block_checksum parametreleri idi. 11g ile birlikte data corruptionlarını önlemek için tek bir parametre değişikliği yeterli hale getirildi. Dolayısıyla 11g ile birlikte artık sadece db_ultra_safe parametresi ile oynayarak data corruption’ ların önüne geçmek mümkün ancak burada ki en önemli nokta, db_ultra_safe parametresini kullanmaya başladığınız da oracle arka tarafda 3 tane parametreyi kullanıyor. Dolayısıyla siz database’ ninizin doğası gereği bu 3 parametreyi aynı anda kullanmak istemeyebilirsiniz. Bu tarz durumlarda db_ultra_safe yerine 10g’ de olduğu gibi tek tek bu parametreleri set ederek kullanmaya devam edebilirsiniz.

db_ultra_safe parametresinin kullandığı parametreler neler şimdi onlara bakalım ;
Continue reading