Oracle 12c New Features ; Tablo Bazında Recover İşlemi

Oracle 12c ile birlikte dba’ ler olarak aslında bizim en çok beklediğimiz bikaç özellikden biride tablo bazında recover işlemini yapabilmekti. Bu aslında çokda karşılaştığımız “Nasıl yani sadece bir tabloyu dönemiyormusunuz” gibi sorularada cevap olmuş oldu. Ama burda şunu da söylemeden geçemiycem umarım developerların bu özellikden çok da haberleri olmaz. Tabiki çalıştığım veya tanıdığım çok iyi yazılımcılarda var ama olmayanlarda var. Dolayısıyla her yapılan hata sonrasında bu tarz restore taleplerininde kaçınılmaz gibi gözüküyor.

Örneğimize geçmeden önce tablo bazından restore derken temelde neleri kastediyoruz ve ksıtlarımız neler kısaca bunlardan bahsedelim;

• Bir tabloyu restore edebileceğimiz gibi sadece bir partitionı da restore edebiliriz,
• Recover edilen tabloyu yeni bir isimle başka bir tabloya veya bir partitiona insert edebiliriz,
• Recover etmeye çalıştığımız tablonun exportunu alıp database’ de import etmeyebiliriz de,
• Bütün bu işlemleri yapabilmemiz için database archive modde ve read/write olarak açılmış olmalıdır,
• Recover edeceğimiz tabloya ait kullanılabilir bir RMAN backupımız olmalıdır.

Bu işlemi aynı zamanda bir point in time recover işlemi olarak da düşünebilirsiniz dolayısıyla biz point in time recover yaparken nasıl SCN, spesifik bir zaman dilimi veya sequence numarası verebiliyor isek aynı durum burda da geçerlidir. Bu 3 opsiyonu kullanarak da tablomuzu recover edebiliriz.

Tablo bazında recover işlemini yaparken yapılabilecek olası hatalardan da bahsetmek istiyorum. Böylelikle sizinde bu tarz işlemler de karşılaşma ihtimali yüksek olan bazı hataları farketme şansınız olacaktır.

İlk olarak tablo bazında recover ederken set until clause’ unu kullanmadan recover başlatırsanız ;

Continue reading

12c – Container ve Pluggable Database Startup – Shutdown Aşamaları

12c ile tanışmış olduğumuz Multitenant yapı sonrasında daha öncesinde bildiğimiz o klasik database kapatıp açma komutlarınında ciddi bir takım değişimler olmuş oldu. Start ve shutdown etme olayını burda iki aşamalı olarak düşünebiliriz. Yani container database’ i kapatıp açmak farklı pluggable database’ leri kapatıp açmak farklı bir konudur.

Container database ‘ i nasıl kapatıp açabileceğimiz den anlatmaya başlayalım.

Container database opsiyonu ile kurulan bir database’ e localdan direkt olarak sqlplus ile bağlandığınız da aslında container db’ ye bağlanmış olursunuz.

Continue reading

12c – Pluggable Database Üzerinde Point-in-Time Recovery İşlemi

Aslında bu işlemi sadece pluggable database için düşünmemek lazım. Her zaman hata yapılabilir. Eğer bu yapılan hata database’ in sürekliliğini (daha doğrusu tutarlılığını) etkileyecek boyutta ise database hatanın yapıldığı zamanın hemen öncesine dönmemiz gerekebilir. Böylesi bir durumda ne yapabiliriz ona bakıyor olacağız.

Normal restore’ dan farkı point in time recovery ‘ den bashettiğimiz için db’ yi resetlog opsiyonu ile açıyor olmamızdır.

Bir örnek üzerinden gidelim ;

Hangi pluggable db üzerinde çalışıyoruz;

Test için bir test tablosu oluşturalım.
Continue reading

12c New Features : Pluggable Database Restore – Recover

Aslında bu yazıyıda bir anlamda new features olarak düşünebiliriz. Sonuçda container database 12c ile birlikte geldi. 12c öncesindeki versiyonlarda standalone database yapısı olduğundan her bir database için ayrı bir backup alır ve o backup’ ı kullanarakda yine o database için restore işlemlerimizi yapıyoruz. 12c ile bilirkte yapı RMAN tarafında biraz değişti. Örneğin bir container database’ iniz ve altında bir sürü pluggable database’leriniz olduğunu düşünürsek burda sadece container database’ in backupını alıp sonrasında bu backup içerisinden istenilen pluggable database’ i restore edebilirsiniz. Yani sizin bir container db altında 10 tane ppluggable db’ iniz varsa her biri için ayrıca backup almanız gerekmiyor. İsterseniz tabi ayrı ayrı da alabilirisiniz.

Container database’ in backupı alındığında burada kullanılan pluggable database’ lerden bir tanesini nasıl restore edebiliriz ona bakalım ;

Spfile ve controlfile container bazında olduğu için onları sonrasında anlatıyor oluruz. Şimdi databafile’ lerden başlayarak testimizi yapmaya çalışalım ;

Restore testi yapacağımız database’ i mount moda alıyoruz;

SQL> alter session set container=pdbt11;
Session altered.

SQL> shu immediate
Pluggable Database closed.

SQL> select name,dbid,open_mode from v$pdbs where name =’PDBT11′;
NAME DBID OPEN_MODE
—————————— ———- ———-
PDBT11 87534229 MOUNTED
Continue reading

12c New Fetures : Read Any Table Yetkisi Kullanımı

Oracle 12c versiyonu ile birlikte gelen read any table yetkisinin neyi ifade ettiğinden ve daha önceki versiyonlarda sıkça kullandığımız Select any table yetkisinden ne farkı olduğunu anlatmaya çalışacağım.

11g ve daha önceki versiyonlarda kullandığımız (12c versiyonu ile de kullanmaya devam ediyoruz bu arada) Select any table yetkisini bir kullanıcıya verdiğimiz de aslında o kullanıcının select attığı tabloyu LOCK edebilme yetkisini de vermiş oluyoruz. Kullanıcı aslında bunu iki şekilde sahip olmuş oluyor. Test edelim ;

Test1 adında yeni bir user create edip sadece bir tabloya select yetkisi verip neleri yapabildiğine bakalım.

===> create user test1 identified by test1
User created.
===> grant connect to test1
Grant complete.
===> grant select on kamil.test_table to test1
Grant complete.

Test tablomuzu bu user ile lock etmeye çalışalım (lock koymaya çalışalım);
Continue reading