Export File’ in Header Satırlarını Nasıl Okuyabiliriz

Bu örnekde oracle 11gR2 olan bir database’ imizden alınmış olan bir export file’ in (parallel olarak almıştım o yüzden sadece bir parçasına bakıyor olacağız) header’ ında hangi bilgilerin olduğunu nasıl görebilirize bakıyor olacağız.

Öncesinde yine dmp içerisinde yer alan DDL komutlarını görmek isterseniz exp ile alınmış bir backup için import komutunun içerisine “show=y” parametresini expdp ile alınmış bir backup içinde yine import komutu içerisine “SQLFILE=file_name.sql” parametresini ekleyebilirsiniz. Böylelikle dmp file içerisinden çalışacak olan DDL komutlarını görme şansını yakalamış olursunuz.

Gelelim bizim örneğimize;

Aşağıdaki gibi bir procedurumuz var. Kaynak kısmında belirtmiş olduğum linkden de indirebileceğiniz bu proceduru database’ imize create ediyoruz;

Continue reading

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 – 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

Tek Komutla Dataguard Kurulumu

Primary ve Standby sunucuları üzerinde yapılacak olan basit bir takım değişikliklerden sonra aslında sadece tek bir komutla standby database kurabilirsiniz.

Bahsetmiş olduğumuz komutu çalıştırmadan önce primary ve standby sunucularındaki tns ve listener dosyalarındaki aşağıdaki değişiklikler yapılır ;

1. Primary sunucunun tns dosyasına stby olacak db’ nin satırları eklenir ;

ORATEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Node1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = oratest)
)
)

ORATESTSTBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Node2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = oratests)
)
)
Continue reading