Flashback Nedir,Nasıl Aktif Edilir?

Flashback Nedir, Nasıl Aktif Edilir?

Flashback fiziksel bozulmalardan çok, kullanıcı hatalarını düzeltmek için kullanılan bir oracle çözümüdür. Örneğin bir tablo yanlış update edilmiş olabilir ya da yanlışlıkla drop edilmiş olabilir. Yedeklerden de veri kaybı olmadan tablonuzu bozulma öncesi haline getirebilirsiniz ama veritabanı büyüklüğüne göre uzun  zaman alabilir ve kesinti oluşturabilir. Oracle bu noktada daha az downtime için Flashback çözümünü öneriyor. Oracle veriyi geri dönerken UNDO tablespace’inden faydalanır, yapılan değişiklikler UNDO tbs üzerinde tutulur ve istenildiği zaman geri çağrılabilir.(belirlediğimiz log tutma süresi kadar)

Flashback işlemlerini yapabilmemiz için database’de bazı ayarları set etmemiz ve/veya  kontrol etmemiz gerekiyor.

Database’i Flashback işlemlerine hazırlamak

1- Database archive log modda olmalı

Database archive log modda değilse Online backup da alamayız, flashback logları da tutamayız.Database’in mevcut durumunu sorgulayalım. NOARCHIVELOG ise aşağıdaki gibi ARCHIVELOG moda alabiliriz.

SQL>SELECT LOG_MODE FROM V$DATABASE;
 
LOG_MODE
------------
NOARCHIVELOG
 
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE ARCHIVELOG;
SQL>ALTER DATABASE OPEN;

2-Flashback açık olmalı;

Mevcut durumunu görmek için;

SQL>SELECT FLASHBACK_ON  FROM V$DATABASE;
FLASHBACK_ON
------------
NO
 
SQL>ALTER DATABASE FLASHBACK ON;

3- Undo retention, retention guarantee ayarları

UNDO_RETENTION geçmişe yönelik ne kadar süre flashback logları tutulacağını gösterir(sn cinsinden) 3600 sn degeriyle 1 saatlik geri dönüşümüz mümkün olsun diyoruz.(3600/60=60 dk) Bu parametre kurulumda default 900 olarak gelir(900/60=15dk)
RETENTION GUARANTEE 1 saatlik geriye yönelik verileri garanti etsin diyoruz.
UNDOTBS1 üzerinde RETENTION GUARANTEE diyerek 1 saatlik veriyi mutlaka tutmasını istiyoruz, bu durumda UNDOTBS1 büyüme yoluna gidecektir.

SQL>ALTER SYSTEM SET UNDO_RETENTION=3600 SCOPE=SPFILE;
SQL>ALTER TABLESPACE UNDOTBS1 RETENTION GUARANTEE;
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP;

RETENTION GUARANTEE set edilip edilmediğini aşağıdaki sorgu ile görebiliriz.

SQL>SELECT TABLESPACE_NAME,RETENTION FROM DBA_TABLESPACES WHERE TABLESPACE_NAME='UNDOTBS1';
 
TABLESPACE_NAME    RETENTION
---------------    ---------
UNDOTBS1           GUARANTEE

4-Supplemental log data enable edilmeli

Transaction query kullanabilmemiz için enable edilmeli.primary key ve foreign key ilişkili kayıtlar için.

SQL>ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL>ALTER DATABASE ADD SUPPLEMENTAL LOG DATA(PRIMARY KEY) COLUMNS;
SQL>ALTER DATABASE ADD SUPPLEMENTAL LOG DATA(FOREIGN KEY) COLUMNS;

5- ReycleBin ON olmalı

Çöp kutusu default olarak kurulumla ON gelir, eğer OFF yapılmışsa ON konumuna çekmek gerekir.Drop edilen nesneleri geri döndürmek için on yapılmalıdır.

SQL>ALTER SYSTEM SET RECYCLEBIN=ON;

RECYCLEBIN Durumunu görmek için;

SQL>SELECT M.NAME,M.VALUE FROM V$PARAMETER M WHERE M.NAME LIKE '%recyclebin%';
 
Name           value
---------      ------
recyclebin     on

Artık database’imiz flashback operasyonlar için hazırdır, sonraki makalelerde flashback ile neler yapabiliriz inceleyeceğiz.

Tagged: , , , , , , , , , , , ,

1 comment

  1. […] geri alalım.İlgili flashback ayarlarının set edildiğini varsayıyorum..İlgili ayarlar için bu makaleye bakabilirsiniz.Bu örnekte scn’e göre flashback yapacağız, ama diğer yöntemlerde de […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir