Oracle Veritabanı Arşiv Moduna Alma

Oracle Veritabanı Arşiv Moduna Alma

Bugünki yazımda size aşağıdaki konulardan bahsedeceğim.

  1. Arşiv modda olan veritabanının işleyiş mantığı nedir?
  2. Oracle Veritabanımız neden arşiv moda alınmalı?
  3. Oracle Veritabanımız arşiv modda mı değil mi nasıl kontrol ederiz?
  4. 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 🙂

Kişisel Web sayfama hoş geldiniz..