5 – Oracle Redo ve Undo

Oracle Eğitimleri - Oracle Redo Undo

Bu kısımda Oracle içindeki iki önemli data kaynağını açıklayacağız. Redo dosyalarında transaction işlemleri online (ve arşiv) halde tutulurlar. Bir yeniden yükleme durumunda transaction’lar Redo log dosyalarından okunurlar. Aynı şekilde bir rollback, reverse işleminde de Undo log dosyalarından faydalanılır. Şimdi bu log dosyalarını inceleyelim.

Redo Nedir?

Redo log file’lar Oracle database için çok önemlidir. Redo üzerinde daha önce de bahsettiğimiz gibi tüm transactionlar tutulur. Oracle iki tip Redo log file tutar: Online ve Archived. Herhangi bir instance crash durumunda veya disk arızası durumunda recovery işlemini yapabilmek için kullanır.

Bir DML işlemi yürüttükten sonra “commit” komutunu çalıştırdığınızda success sonucu dönmüşse temelde yapılan işlem aslında fiziksel data file’lar üzerinde gerçekleştirilmezler. Yapılan işlem ise önce transaction komutu Redo Log File’a kayıt edilir, sonrasında ram üzerindeki block’lar değiştirilirler. Doğal olarak Oracle’da success olmuş bir transaction’ın kayıp olması gibi bir durum söz konusu değildir; ama elbette Redo dosyasını arşivlemiyorsanız ve Redo Log’lar zarar görmediyse! Zaten Redo’nun önemi de buradadır.

Her bir transaction için SCN (System Change Number) tutulduğundan bahsetmiştik. Bu numara control file ve tablespace header’da tutulmaktadır. Sistemde herhangi bir çökme, elektrik kesintisi, abort ederek instance’ın kapatılması gibi durumlarda değişiklik yapılmış kayıtlar fiziksel data file’lara yazılmayacaktır. Instance yeniden başlatıldığında ilk önce control file okunur ve tablespace header’daki SCN numaraları ile karşılaştırır, işlenmemiş transaction’ları data file’lara işler (redo log dosyasından recover eder) ve tüm SCN’ler eşitlendikten sonra instance open haline getirilir. Eğer Redo dosyamız olmazsa sistemde data kaybı olması kaçınılmazdır.

Standart olarak bir instance’ta Online Redo Log’un iki tane olduğunu daha önce de söylemiştik, bu sayının artırılması önemlidir, tavsiye edilen en az üç tanedir ve her birinin en az 20 dakikada swap ediliyor olmasına özen göstermeniz tavsiye edilir, aksi halde sürekli fiziksel dosyalara yazma olacağından bir performans problemi yaşamanız kaçınılmazdır.

ArchiveLog modunuz açıksa (ki varsayılan olarak kapalıdır), ARCH process’i tarafından Online Redo Log’ların bir kopyası FRA (Flash Recovery Area) üzerinde saklanır. Bunun açık olmadığını düşünürsek, Redo Log’ları arşivlenmeyeceği için herhangi bir zarar görme durumunda, diskte bir bad sektör oluşması gibi Redo Log okunamayacak duruma gelirse kaçınılmaz olarak veri kaybı yaşarsınız. Warehouse (Veri Ambarı) gibi sistemlerde buna gerek olmayabilir elbette, çünkü data toplaması bittikten sonra genel olarak DML (Select hariç) işlemi yürütülmediği için Redo Log’un arşivlenmesi çok hayati değildir; ama bir OLTP sistemi için oldukça hayati olduğunu söylemek doğru olacaktır.

Undo Nedir?

Undo, Redo’nun tam tersi bir işleve sahiptir. Redo ilerleyen kayıtları tutarken, Undo değişen kayıtların eski halini saklar. Tahmin edebileceğiniz gibi bir rollback yapmak istediğimizde veya kayıtların eski haline ulaşmak istediğimizde bu Undo aracılığı ile yapılır. Undo, Redo’nun aksine özel bir segmentte saklanır, Undo Segment.

Redo konusunda da belirttiğimiz üzere transaction’lar anında fiziksel dosyalara işlenmezler, bellekteki data block’larda bir değişiklik yapılır. DML komutu işletildiği anda ilk önce tablonun o anki snapshot’ı alınır ve Undo Segment üzerine kayıt edilir, sonra transaction komutu (komutun etkilediği data block’ları değil, sadece komutun kendisi) Redo’ya kayıt edilir ve gerekli data block’ları değiştirilir.

İlerleyen zaman içerisinde yapılan işlemden vazgeçilir ve rollback edilmek istenirse veya değişimden önce hali hakkında bir bilgi elde edilmek istenirse bu bilgi Undo tarafından karşılanır ve istenilen zamana dönülür veya görüntülenir.

0
0

Patreon

üzerinden bize destek olabilirsiniz!

.

Birlikten kuvvet doğar! Sizde #patreon üzerinden bizim yanımızda olabilirsiniz. Yaptığımız gönüllü çalışmaları arttırmak için bize destek olun.

Ücretli ve Ücretsiz Eğitimler

Türkiye'nin en büyük veri bilimi topluluğu ile kariyerinizi inşa edin.

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.