Şirket bünyesinde kullanmakta olduğumuz önemli bir database’ imizin eşleniği prod ortamdan çıkan archiveların disaster tarafına manuel olarak apply edilmesi ise tutuluyor. Hafta sonu yaptığımız prod database’ in upgrade’ i (10gR1 den 11gR2 ye) öncesinde disasterdaki bu ortamıda son çıkan archive’ ı apply ederek herhangi bir olumsuz durumda ayağa kaldıracak şekilde hazır tutmaktı. Ancak disaster tarafındaki bu standby database’ imiz son archive’ ları apply ederken bir anda ORA-00308: cannot open archived log hatası verip sonrasında 1,5 sene önceki bir archive’ ı isteyerek hata verdi. Sonrasında konuyu biraz araştırdıkdan sonra benzer sorunların control file dosyasında oluşan corruption dan kaynaklanabileceğini tespit ettik. Control file dosyası içerisinde database tarafından üretilen archive’ ler ile ilgili bilgilerde tutulduğundan prod ortamdan standby control file create edip, disaster tarafındaki control file’ leri ezerek yenilerini prod ortamdan tekrar atmış oluşturmuş olduk. Yapılan bu işlemler ile ilgili scriptler ve adımlara ait detayları aşağıdaki adım adım anlatmaya çalıştım.
Continue reading
ORA-30036: unable to extend segment by 8 in undo tablespace
Zaman zaman database’ de tablolara yüklü miktarda insert işlemleri olur. Özellikle bahsettiğimiz bir raporlama database’ ise bu işlem kaçınılmaz olur ve yapılan işlemin boyutu undo tablespace’ inizin boyutundan fazla olduğunda (undo tbs autoextend olmadığını varsayarsak) “ORA-30036: unable to extend segment by 8 in undo tablespace ‘UNDOTBS2’” hatasını almanız kaçınılmaz olacaktır. Ora-30036 hatasının önüne geçmek için yapılan insert işlemini parçalamak ve daha ufak bölümlerde yapmak sizin için kaçınılmaz bir çözüm olacaktır. Bu işlemi de yaparken tablo içerisindeki bir alana göre bir den fazla where conditionı ile sorgu yazmak yerine tek sorgu ile ama belirli sayıda data üzerinde sırayla işlem yaparak undo’ ya fazla yüklenmeden tabiri caizse patlatmadan işleminizi gerçekleştirebilirsiniz. Örnek olması açısından şöyle bir bilgi verebilirim, raporlama database’ lerimizden birinde yer alan 54 gb bir datayı farklı bir schema altına aşağıdaki script ile yaklaşık 1 saat gibi bir sürede taşımıştım. (Aşağıda belirtmiş olduğum tuning yöntemlerinden hiçbirini kullanmadan) Tabi bu süreyi etkileyen diğer faktörleride göz önünde bulundurmak lazım. (işlemin yapıldığı andaki database deki yoğunluk, kullanılan server’ ın kapasitesi, taşınan tablespace’ lere ait dbf’ ler üzerindeki o anki i/o durumu vs.)
Continue reading
2010 Oracle Day Üzerine ….
Merhaba,
Bugün 2010 Oracle Day etkinliğine katıldım. Çok başarılı bir etkinlik olduğunu söyleyebilirim. Özellikle TROUG’ un tanıtımı başta Tonguç ve Zekeriya Hoca olmak üzere diğer tüm arkadaşlar tarafından başarıyla yapıldığını söyleyebilirim. İnsanların tanışmaları ve tecrübelerin paylaşılması adına bu grubu çok önemsiyorum.
Oracle Day’ da emeği geçen tüm arkadaşları şahsım adına canı gönülden tebrik ederim.
Bikaç cümlede oluşturmaya çalıştığım blog hakkında bişeyler söylemek istiyorum.
Blog oluşturmayı aslında uzun zamandır düşünüyordum ama bir türlü bunun için fırsat bulamamıştım. Blog’ u oluşturmaya başlamadan önce bu işin bu kadar zevkli olabileceğini tahmin etmezdim. Henüz çok yeni aslında daha bikaç aylık ama zaman içerisinde sanırım ortaya güzel bişeyler çıkacak. (yani umarım çıkar :))
Arkadaşlar, eklediğim notlar ile ilgili olarak, eleştirilerinizi, sorularınızı benimle paylaşırlasınız inanın çok mutlu olurum. Bunlarıda burada paylaşmakdan zevk duyarım. Bana kamil.turkyilmaz@gmail.com adresinden ulaşabilirsiniz.
Başka bir yazıda görüşmek üzere ….
Oracle upgrade (from 10gR1 – 10gR2 to 11gR2) – 2
Upgrade operayonuna devam 🙂
Yeni ORACLE_HOME/bin adresinden DBUA çalıştırılır.
Listede upgrade etmek istediğimiz database yoksa etc/oratab (/var/opt/oracle altında da olabilir)dosyasında adı geçip geçmediği kontrol edilir.
Daha önceden almadıysak eğer eski database’in yedeğini al seçeneği işaretlenir. DBUA upgrade öncesi database’i kapatarak cold backupını alır. Dbf’lerin yanısıra bunları geri dönmek için gerekli db_name_restore.sh scriptini de oluşturur. (Bu işlemi biz yapmış olduğumuzu varsayarak devam ediyoruz)
Continue reading
Oracle upgrade (from 10gR1 – 10gR2 to 11gR2) – 1
Oracle zaman içerisinde yeni sürümlerini piyasaya sürdükçe bizlerde zamanı geldikçe kullandığımız oracle versiyonlarımızı bir üst sürüme upgrade etmek durumunda kalıyoruz. Oracle son 3 versiyonuna destek verdiğinden dolayı metalink üzerinden destek alıyorsanız kullandığınız versiyonunuz mutlaka 9i veya sonrası olmak zorunda, ki çok yakın bir tarihde 9i’ ninde desupported olacağını tahmin etmek zor olmasa gerek.
Bugün bu upgrade işlemi ile ilgili olarak öncesinde ve sonrasında yapılması gerekenleri anlatmaya çalışacağım.
Aşağıdaki örnekde 10gR1 – 10gR2 den 11gR2 ye upgrade işlemini kapsamaktadır.
Continue reading