RedoLog Dosyaları Yönetimi

Veri tabani sistemlerinde tutarlılık olmazsa olmaz bir özelliktir. Tutarlılığı sağlamak için "shadow copy" ve "write-ahead logging" (WAL) yöntemleri kullanılır en yaygın olanı WAL’dır. Açık kaynak kodlu (open source) veri tabanlarından postreSQL isim değişikliği yapmadan direk WAL olarak bu yapıyı kullanır, Oracle ise ismini redolog olarak değiştirip kullanmaktadır.
Oracle ın redolog dosyalarının özellikleri
*Bütün değişiklikler önce bu redolog dosyalarına kayıt edilir. *Kurtarma (recovery) mekanizmalarında kullanılır. *Gruplar şeklinde organize edilir. En az iki grup olmak zorundadır. Hata toleransı için grup üyeleri (member) farklı disklerde olmalıdır. Hepsini aynı yerde tutmak isterseniz hata tolaransı olan raid mimarilerinde olmalıdır(raid1,5,10 vb.). Aynı grubun üyeleri birbirlerinin kopyasıdır.Log squence ve boyutları aynıdır. *Redolog dosyalarının grup ve üye sayısı Create database komutu ile belirtilir; maxlogfiles max log file grup sayısını maxlogmembers her gruptaki max üye sayısını *Dairesel bir çalışma şekli vardır . 3 grubumuz olduğunu düşünürsek LOGWR önce grup 1’e bitince grup 2’ye bitince grup 3’e bitince tekrar grup 1’e yazar yani bir önceki bilgilerin üzerine yazar. Grup sayısı VT’ nizin yoğunluğuna/transaction sayısına bağlıdır. Eğer grup sayınız yeterli değilse "threat cannot allocate new log" gibi hatalar alırsınız. Aşağıda anlatılan grup/üye (member) ekleme yöntemi ile yeni gruplar/üyeler ekleyebilirsiniz. Bölümün sonunda da bu kadar teorik bilgiden sonra olmazsa olmaz felaket senoryalarına yer verdim. RedoLog dosyası bozulan VT 'yi çalışır hale getireceğiz. * 6 adet statüsü vardır; Current : o an işlem gören yani işlemlerin yazıldığı redo log Active : current dan bir önceki statudur henüz bilgiler veri dosyalarına (data file lara) yazılmamıştır. (archive modda ise arşivlenme işleminin de bitmediğini gösterir) Inactive : Kullanımda olmayan redo log dosyasını ifade eder.Instance Recovery işlemleri için kullanılmaz. Unused : hiç kullanılmamış redo log dosyasını ifade eder. Invalid : Eişilemez, bozuk (corrupted) redo log dosyasını ifade eder. Stale : İçeriği tamamlanamamışredo log dosyasını ifade eder. Deleted : Kullanılmayacak redo log dosyasını ifade eder. Clearing : alter database clear logfile komutundan sonra içinin temizlenip yeniden oluşturulanredo log dosyasını ifade eder.Oluşturulduktan sonra unused statusune geçer. Felaket durumunda, son dakikaya (felaketin olduğu an) dönmek için veri tabanınızı archive moda almalısınız nasıl alınacağına linkinden erişebilirsiniz. Archive modda dolan redolog dosyaları arşivlenerek saklanır böylece commit edilmiş tüm verileri geri getirebilirsiniz. Archived modun en büyük avantajlarından biri de VT’ yi kapatmadan yedek alabilirsiniz. (Deault da VT archive modda değildir.)

Log Switch : LGWR nin bir grupdan diğerine geçmesine denir. bununla beraber checkpoint işlemi de gerçekleşir.

Değeri tutarsız kapanırsa 600 sn de ayağa kalksın anlamındadır. Buna göre log switch zamanlarını ayarlayacaktır. Sık check point performansı düşürür seyrek olması da tutarsız kapanan vt nin recover işleminin uzun sürmesine neden olur.

Komutu ile istendiğinde chkpoint yapılabilir.

RedoLog dosyaları ile ilgili bilgileri v$log ve v$file view larından alırız.

RedoLog İşlemleri
Mevcut durum,

Üye (member) ekleyelim.

Not : Test ortamı olduğu için memberları aynı dizine oluşturduk üretim ortamında farklı fiziksel diskleri oluşturulması gerekmektedir. Aynı diske oluşturulabilir lakin member oluşturmamızdaki amaç hata toleransı, disklerden birinde meydana gelebilecek bir arıza durumunda sistemin devamlılığını sağlamaktır. Ayrıca aynı diske oluşturması performansı da olumsuz etkiliyecektir. Linux ortamında disk ekleme adımlarını dokümanın sonunda bulabilirsiniz.

AlertLog a düşen log

Tekrar Sorgulayalım.

Grup Ekleyelim

RedoLog Taşıma ya da İsim Değiştirme

2 şekilde yapılabilir;

a- "rename" komutuyla

b- yeni üyeler istenilen yerde ve/veya isimde oluşturup eskisi drop edilir.

 

a-Rename Komutu ile

DB mount moda alınır.

Farklı bir lokasyona taşıma işlemi de aynı şekilde yapılır. VT kapatıldıktan sonra redo03.log yeni yerine kopyalanır ve alter database rename komutu verilir.

REDOLOG SILME (DROP)

Grup Silme

  • Burada dikkat edilmesi gereken sistemin çalışabilmesi için en az 2 gruba ihtiyaç var.
  • Statusu current ve active olan gruplar silinemez.
  • Silinen grupların işletim sistemi tarafındaki dosyaları silinmez.

Üye (member) silme (drop)

  • Çalışır durumdaki son üye ise silinemez
  • Statusu current ise önce switch edilmesi lazım
  • Database archive modda ise ve henüz arşivlenmemiş ise silinemez.
  • OMF özelliği kullanılmıyorsa işletim sistemi tarafındaki dosyaları kalır.

RedoLog ların bozulması Durumunda Yapılabileceler

test 1

Group 3 current statusunde iken oracle ve oinstall gruplarinin tum yetkileri group 3 redolog dosyalarindan alindi.

ile redo group 1 e gecildi sorun yok,

tekrar "alter system switch logfile" parametresi verildiginde takili kailiyor.

alert log dosyasinda permission denied veARC0: Failed to archive thread 1 sequence 11 (0) hatalarını veriyor.

sys kullanicisi ile tekrar sisteme giris yapılabiliyor.

sorgulamalar calisiyor.

sys kulancisi ile test tablosu create edip commit edilebiliyor.

Database altered.

Alert dosyasındaki loglar

Burasi onemli bu tarihden onceki rman ile alinan yedekler ise yaramiyor diyor ama acaba o ana mi donulemez de elinde bulunan archive loga kadar donulebilir mi ?

Yapıldıktan sonra scott kullanici ile sisteme giris yapabildim.

current group 1 oldu hatalar dışında db tekrar calışıyor.

komutunu verdiğimde

group 3 current oldu ve daha once sistem tarafindan aldigim haklar aynen geri geldi ve sistem düzgün calisiyor. Herşey normale döndü, hemen yedek alınması lazım. Yedek alındı VT kapatıldı.
Açılırken

Hatasini verip mount modda kaldi.

Komutu ile VT açılır.

test 2

alert.log doyasina

Loglarını yazdı. Mevcut sessionlarla yazma ve okuma işlemleri devam edebiliyor.

alert.log da

hatalarını vermeye başladı.

3. kez "alter system switch logfile" komutu verdiğimizde yani işlem goren grubu önce 2 ye sonra 3 ve en sonunda tekrar 1 almak istediğimizde.
alertlog asagidaki hataları vermeye başlıyor . "alter system switch logfile" komutunu kullandığımız sessionda curser işlem yaptırtmıyor.

Database altered.

alertog a düşen bilgiler.

komutunda asili kalan oturumumuz da islem yapabilir hale geliyor. yazip cizmeye devam edebiliyoruz.

işletim sistemteminden baktigmizda redo01.rdo yu yani grup 1 yeniden olusturmus. Gene de güvenmiyoruz kapatalım açalım bakalim ne olacak.


Komutulari VT’yi tekrar açabiliyoruz. Tekrar kapatıp acıyorum, sorun yok.

********************************************************************************

File System’de RedoLog ekleme
Group Ekleme

Member Ekleme

File System’de StandBYLog ekleme

ASM’de RedoLog ekleme

Alternatif olarak

Bu yöntemle +FRA disk grubuna üye(member) eklecektir.
Standby Log Ekleme

Drop (Deleting)

Arızalanmıs/okunmaz durumdaki redo log dosyası arşivlenmemişse,

Alias silme

Kategori seçin...