Oracle Veritabanı Arşiv Moduna Alma
Bugünki yazımda size aşağıdaki konulardan bahsedeceğim.
- Arşiv modda olan veritabanının işleyiş mantığı nedir?
- Oracle Veritabanımız neden arşiv moda alınmalı?
- Oracle Veritabanımız arşiv modda mı değil mi nasıl kontrol ederiz?
- Oracle Veritabanımız arşiv modda değilse nasıl arşiv moda alırız?
1. Arşiv modda veritabanının işleyiş mantığı nedir?
Oracle veritabanı ilk oluşturulduğu zaman eğer direk siz değiştirmemişseniz default olarak NoArchivelog moddadır. Bu modda Oracle Online Redo log dosyaları dolduğu zaman bunları arşivlemez belli bir süre sonra eski dosyaların üstüne yeni Log lar yazılarak eski Redo log kayıtları silinir.
Varsayılan olarak veritabanı oluşturulduğunda, her biri 50 mb olan 3 redolog dosyası oluşur. Eğer bir veritabanı arşiv modda değilse, 1. redolog dosyası dolarsa 2. ye gecer 2. dolarsa 3. ye geçer ve 3. redolog dosyası da dolarsa birincinin üzerinde yazmaya başlar.
Eğer database Arşiv modundaysa buradaki dosyalarda belirli aralıklarla switch olarak Arşivlenir. Bir nevi arşiv dosyalarının yedekleri alınmış olur.
Aşağıdadaki resimde işleyiş mantığı özetlenmiştir.
2. Oracle Veritabanımız neden arşiv moda alınmalı?
Eğer veritabanımız arşiv modda değilse, Oracle veritabanımız aniden crash olduğu zaman yeniden açılırken eski Redo log kayıtlarına ihtiyaç duyar bunlar olmadan tutarlı bir şekilde açılmaz.
Ayrıca, Veritabanının online modda, yani veritabanı açıkken yedeğinin alınabilmesi için mutlaka veritabanının arşiv modunda olması gerekmektedir. NoArchivelog modda olan bir database in RMAN ile Online Backup ı alınamaz.
Eğer veritabanımız arşiv modda değilse ve veritabanımız açıkken yedek almaya çalışırsak aşağıdaki şekilde hata alırız.
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 08/11/2021 13:18:55 ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
3. Oracle Veritabanımız arşiv modda mı değil mi nasıl kontrol ederiz?
Aşağıdaki sorgular ile veritabanımız arşiv modda mı değil mi kontrol edebiliriz.
SQL> select log_mode from v$database; LOG_MODE — — — — — — NOARCHIVELOG SQL> archive log list; Database log mode No Archive Mode
Gördüğünüz gibi şuanda veritabanımız NOARCHIVELOG yani arşiv modda değil.
4. Oracle Veritabanımız arşiv modda değilse nasıl arşiv moda alırız?
Veritabanımızı arşiv moda alabilmemiz için veritabanımız mount modda olması gerekmektedir.
Öncelikle veritabanımız hangi modda açık kontrol edelim.
SQL> select open_mode from v$database; OPEN_MODE -------------------- READ WRITE
Şuanda veritabanımız açık durumda, veritabanımızı kapatalım ve mount modda açalım.
SQL> shu immediate Database closed. Database dismounted. ORACLE instance shut down.SQL> startup mount ORACLE instance started.Total System Global Area| 413372416|bytes Fixed Size | 2253784|bytes Variable Size | 310381608|bytes Database Buffers | 96468992|bytes Redo Buffers | 4268032|bytes Database mounted.
Gördüğünüz gibi artık veritabanımız mount modda
SQL> select open_mode from v$database; OPEN_MODE -------------------- MOUNTED
Şimdi veritabanımızı arşiv moda alalım.
SQL> alter database archivelog; Database altered.
Şimdi veritabanımız arşiv modda mı tekrar kontrol edelim.
SQL> select log_mode from v$database; LOG_MODE ------------ ARCHIVELOG
Eveet gördüğünüz gibi veritabanımız artık arşiv modda artık veritabanımızı açabiliriz.
SQL> alter database open; Database altered. SQL> select open_mode from v$database; OPEN_MODE -------------------- READ WRITE
Bir yazımın daha sonuna geldik, umarım faydası dokunur sağlıcakla kalın 🙂