Merhaba,
Bu yazımda Oracle veritabanı mimarisini anlatmaya devam edeceğim. Aşağıdaki şekli beyinde kalıcı olması bakımından tekrardan ekliyorum.
Database Buffer Cache: Veritabanında kullanıcı yada uygulama tarafından bir transaction başlatıldığı zaman o transaction a ait dataların tutulduğu alandır. Örneğin: Personel tablosuna bir kayıt insert, update yada delete yapıldığı zaman ilgili değişiklik direk olarak datafile lara yazılmaz bir süre buffer cache de kirli data adıyla tutulur. Veritabanında çok sık kullanılan ve en güncel olan datalar burada tutulur ve tüm kullanıcılar tarafından bu alan ortak olarak kullanılır. Buffer cache de tutulan veriler bir süre sonra data file lara yazılır yerine yeni transactionlara ait veriler gelir. Buffer cache manuel olarak aşağıdaki sorgu ile boşaltılır.
alter system flush buffer_cache;
Ancak yukardaki komutun canlı sistemlerde ihtiyaç duyulmadıkça yapılmaması gerekiyor çünkü buffer cache boşaltıldığı zaman çekilen tüm sorgular yada transactionlar fiziksel diskten I/O yapacaktır buda sorgularımızın yavaşlaması anlamına gelir.
Redo Log Buffer: Oracle veritabanı her transaction ın kaydını tutar. Kullanıcı yada uygulama bir transaction başlattığı zaman bu transaction ın kaydı ilk olarak Redo log buffer a yazılır. Belirli aralıklarla Redo log buffer alanındaki kayıtlar LGWR processi tarafından Online Redo log dosyalarına yazılır. Transactionların kayıtlarını tutmak, instance crash olduğu zaman recovery için gereklidir.
Online Redo log Files: Veritabanındaki tüm transactionların kaydedildiği işletim sistemi üzerindeki fiziksel dosyalardır. Bu dosyalar veritabanındaki tüm değişiklikleri tutar ve yukarda bahsettiğim gibi Redo log buffer alanında biriken kayıtlar belirli aralıklarla buraya kaydedilir. Eğer database Arşiv modundaysa buradaki dosyalarda belirli aralıklarla switch olarak Arşivlenir. Veritabanının online modda backup ının alınabilmesi için mutlaka arşiv modunda olması gerekmektedir. Veritabanına bir zarar geldiği takdirde backup dan dönülmek istendiğinde veritabanı o backup processi tamamlanana kadar olan arşiv dosyalarınıda isteyecektir bunları apply etmeden tutarlı bir şekilde veritabanını açamazsınız ilgili arşivler apply edildikten sonra ki kalan zaman aralığındaysa online redo log lar apply edilerek en son ana kadar ki veriler kurtarılabilir.
Veritabanı üzerinde Online Redo log dosyalarının tutulduğu mantıksal Redo log grupları vardır ve her group içerisinde genelde birbirinin aynısı 2 dosya bulunur bu yedeklilik ve tutarlılık için gereklidir bir dosya bozulduğu zaman diğerinden devam edilebilir. Siz bu member değerini 2 den fazla da yapabilirsiniz. Redo log buffer daki bilgiler Online Redo log dosyalarına yazılırken her iki member a da yada 2 den fazla ise tüm member lara aynı anda yazar. Online Redo log gruplarından herhangi birisi dolduğu takdirde yeni Redo log lar artık bir diğer gruba yazılmaya başlar bu işleme log switch denir.
Veritabanı üzerindeki online redo log ları aşağıdaki sorguyla görebilirsiniz.
bash-4.1$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Thu Oct 3 16:54:27 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> set lines 600
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
———- ———- ———- ———- ———- ———- — —————- ————- ——— ———— ———
1 1 18622 52428800 512 1 YES ACTIVE 12514027 03-JAN-13 12514404 03-OCT-13
2 1 18623 52428800 512 1 NO CURRENT 12514404 03- JAN -13 2.8147E+14
3 1 18621 52428800 512 1 YES INACTIVE 12513648 03- JAN -13 12514027 03-OCT-13
Archive log: Arşiv log modunda olan oracle veritabanında yukarda da bahsettiğim gibi switch olan online redo log dosyaları arşivlenmek üzere Archive log dosyalarına kopyalanır. Bu dosyalar backup dan dönüldüğü zaman instance sın tutarlı bir şekilde recovery edilmesi için ve istenilen zamana dönülmesi için gerekli dosyalardır. Sistem üzerindeki Archive log dosyalarına aşağıdaki sorguyla bakılır.
bash-4.1$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Thu Oct 3 17:12:20 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> set lines 900
SQL> select NAME,DEST_ID,THREAD#,SEQUENCE#,CREATOR,APPLIED from v$archived_log where rownum<3;
NAME DEST_ID THREAD# SEQUENCE# CREATOR APPLIED
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— ———- ———- ———- ——- ———
/oracle/ARCH/1_15266_821030721.arc 1 1 15266 ARCH NO
/oracle/ARCH/1_15267_821030721.arc 1 1 15267 ARCH NO
SQL>
Bir yazımın daha sonuna gelmiş bulunmaktayım bir sonraki yazımda Oracle Veritabanı mimarisini anlatmaya devam edeceğim şimdilik Esen Kalın.
Mehmet Salih Deveci
Oracle Veritabanı Yöneticisi
Mehmet Salih Deveci
Latest posts by Mehmet Salih Deveci (see all)
- Oracle Data Guard Mimarisi - Şub 19, 2014
- Oracle RMAN ( Recovery Manager ) -4 - Şub 15, 2014
- Oracle RMAN ( Recovery Manager ) -3 - Şub 12, 2014