29 Aralık 2011 Perşembe

Yeni Başlangıçlar için 2012

Merhabalar,

Günlüğümü takip eden herkese sağlıklı, huzurlu ve mutlu yeni bir yıl dilerim. Umarım her şey dilediğiniz gibi olur.

2011'e dönüp baktığımda belkide hayatımdaki en önemli yıllardan birini geçirdiğimi söyleyebilirim (evliliğimden sonra :). Sırasıyla; Ocak 2011'de OCA, Şubat 2011'de OCP sertifikalarını aldıktan sonra 1 Ağustos 2011'den geçerli olmak üzere Oracle'da kıdemli satış danışmanı pozisyonuna geçtim. Bu sene toplamda 50'den fazla makale yazdım ve Ocak 2008'den beri yazdığım günlüğümdeki en çok makale yayımladığım yıl, 2011 oldu. Seminerlere katıldık, tartıştık, sunum yaptık ve paylaşımlarımıza devam ettik. Her şeyden önemlisi, bütün bunlar olurken çok şükür sağlığımız ve ağzımızın tadı bozulmadı.

2012 yılında hedefim 60'dan fazla makale yayımlamak, daha çok Oracle seminerine katılmak, Oracle olarak çok daha fazla Üniversitede "Are You Job Ready" sunumları gerçekleştirerek, yüzlerce öğrenciye iş hayatıyla ilgili bilgiler aktarmak. Bu sene Oracle günlüğümde işletme yönetimiyle ilgili birkaç makale daha yayımlamayı planlıyorum. Biraz daha farklı bir açıdan işleri ele almak istiyorum ve makalelerin içeriği okumayı çok sevdiğim organizasyon kültürü ve değişimleri ile ilgili olabilir.

Bu sene Türkiye'deki Oracle topluluğunun daha fazla büyümesini, daha çok sertifikalı uzmanın sektörde yer almasını, insanların daha fazla paylaşımda bulunmasını ve ACE ödüllerinin devam etmesini umuyorum. Üniversitelerdeki sunumlarımızı takip etmek isterseniz linkedin profilimden tarih ve üniversite bilgilerini öğrenebilirsiniz.

Herkese iyi seneler!

Ogan

23 Aralık 2011 Cuma

SWITCH DATAFILE ALL ve ORA-01157

Merhaba,

ORA-01157 hatasıyla ilgili tecrübelerimi aktarmak istiyorum. Hatanın tam açılımı aşağıdaki gibidir;

ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
Bu hatanın Türkçe karşılığı şu, kontrol dosyası data file 1'i bulamıyor ve DBWR trace dosyasına konuyla ilgili bir bilgi basılıyor. Kontrol dosyasının içinde bütün data file'ların SCN'leri ile birlikte bilgileri tutulmaktadır. SCN'si geride olan bir data file olduğu durumda ya da ilgili data file fiziksel olarak yerinde olmadığında veya fiziksel olarak yerinde olsa bile kontrol dosyasında adı başka türlü gözüküyorsa veritabanını open moduna getiremezsiniz. Buradaki hatanın oluşma nedenlerinden birisini göstereceğim.

Öncelikle veritabanımızın bir yedeğini alıyoruz;

RMAN> backup database;
Sonra başka bir ortamda restore işlemi yapıyoruz;

run {
restore spfile from autobackup;
restore controlfile from autobackup;
restore database;
recover database;
}

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '+DATA/orcl/datafile/system.256.659541263'

SQL>
Bu hatayı almış olmanızın muhtemel nedeni her iki tarafında ASM olması ve db_file_name_convert parametrenizin ayarlanmamış veya SET NEWNAME FOR DATAFILE komutu ile datafile'ların yeni yerlerini kontrol dosyasına nasıl restore etmesi gerektiğini göstermemiş olmanızdır. Yalnız, ASM'de şöyle de bir durum var ki ASM instance'ı her restore'dan sonra datafile'ların isim uzantılarına değiştiriyor EĞER ilgili datafile başka bir ASM disk grubundan restore edilmişse. Bu durumda gönderdiğiniz SET NEWNAME FOR DATAFILE komutuna ya da ayarladığınız DB_FILE_NAME_CONVERT parametresine ek olarak --> SWITCH DATAFILE ALL; komutunu da run bloğunda vermeniz gerekiyor. Bu komutla data file'ın ASM bilgileri, kontrol dosyasında restore edildiği gibi değiştiriliyor ve veritabanını open resetlogs açabiliyorsunuz.


run{
SWITCH DATAFILE ALL;
}

datafile 1 switched to datafile copy
input datafile copy recid=1 stamp=677435474 filename=+DATA/orcl/datafile/system.291.677435389
datafile 2 switched to datafile copy
input datafile copy recid=2 stamp=677435474 filename=+DATA/orcl/datafile/undotbs1.304.677435423
datafile 3 switched to datafile copy
input datafile copy recid=3 stamp=677435474 filename=+DATA/orcl/datafile/sysaux.284.677435369
datafile 4 switched to datafile copy
input datafile copy recid=4 stamp=677435474 filename=+DATA/orcl/datafile/users.307.677435423
datafile 5 switched to datafile copy
input datafile copy recid=5 stamp=677435474 filename=+DATA/orcl/datafile/undotbs2.303.677435421
datafile 6 switched to datafile copy
input datafile copy recid=6 stamp=677435474 filename=+DATA/orcl/datafile/undotbs3.299.677435417

switch komutunu teker teker de verebilirsiniz;

RMAN> switch datafile 1 to copy;

datafile 1 switched to datafile copy
input datafile copy recid=1 stamp=677435474 filename=+DATA/orcl/datafile/system.291.677435389

Bir ASM instance'ından diğer bir ASM instance'ına geçiş yaparken her zaman switch datafile all; komutunu vermeniz gerekmiyor aslında. Örneğin bir Exadata makinesinde varsayılan olarak 3 tane ASM instance'ı vardır. Bunlardan birincisi DATA diğeri SYSTEM ve diğeri de RECO. Backup'ını aldığınız veritabanındaki bütün datafile'lar DATA'da ise restore ederken switch datafile all; komutunu vermeniz gerekmiyor. Ancak, diyelim backup'ını aldığınız veritabanındaki datafile'ların yanlışlıkla RECO'da yaratılmış. Bir kısmının bu şekilde olduğunu düşünün. Bu durumda o datafile'lar için switch datafile all; komutunu vermeniz gerekiyor çünkü SET NEWNAME FOR DATAFILE komutu ile isim ayarlamak isteseniz bile ASM disk grubu değişince datafile'ın sonundaki uzantı da değişiyor. Bu değişikliği switch komutu ile de kontrol dosyasına göstermek gerekiyor.

Bu makaledeki önemli nokta ve vermek istediğim mesaj, yukarıdaki yoldan geçtiyseniz veritabanının tamamını yeniden restore etmeye çalışmayın ve vakit kaybetmeyin. Belirttiğim komutla işleri yoluna koyabilirsiniz.

İyi çalışmalar.

Ogan
Takip et: @oganozdogan