ORACLE FLASHBACK DATABASE TEKNOLOJĐSĐ



Benzer belgeler
Flashback Database ile Standby Üzerinden Veri Kurtarmak

ORACLE PARAMETRE DOSYALARI ( PFILE & SPFILE )

Oracle 11gR2 Üzerine Dataguard Kurulumu Türkçe

Startup ve Shutdown Yöntemleri. ORACLE STARTUP ve SHUTDOWN YÖNTEMLERİ

ORACLE DATAFILE RECOVER (KURTARMA) TESTLERĐ

ORACLE TNS (TRANSPARENT NETWORK SUBSTRATE) LISTENER YAPILANDIRMASI

ORACLE TRANSPORTABLE TABLESPACE KULLANIMI

Veritabanı Yönetim Sistemleri I HAFTA 1

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

LOG SHIPPING Yusuf KAHVECİ Senior Database

BLIND SQL INJECTION SALDIRILARI

ORACLE RMAN (RECOVERY MANAGER)

ORACLE ONLINE REDO LOG DOSYALARI

Tavsiye Edilen Önhazırlık Veritabanı kavramını öğrenmek

TROUG. RMAN (Recovery Manager) [Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi] Ergem PEKER

«BM364» Veritabanı Uygulamaları

Tavsiye Edilen Önhazırlık Veritabanı kavramınıöğrenmek. Hedefler Shrink yapılmasının amacının kavranması. Shrink yapılma yöntemlerinin öğrenilmesi.

Sorun Giderme. Genel. Disk. Aygıt Sürücüleri 3

DĐNAMĐK ve STATĐK SQL KULLANMANIN PERFORMANSA ETKĐSĐ

SQL SERVER DATABASE FILE LARINI VE TEMPDB FILE LARINI TAŞIMA OPERASYONU

PCTFREE - PCTUSED ORACLE DEĞERLERĐ

"SQL Server Management Studio" yazılımını yüklemek için alttaki resmi sitesinden 180 günlük deneme sürümünü indirebilirsiniz.

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

Üst Düzey Programlama

BACKUP BİLGİLERİ YUSUF.KAHVECİ. Yusuf KAHVECİ

Murat ÖZBEK

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

OTURUM AÇMA ADLARI. Tavsiye Edilen Önhazırlık Enterprise Manager'i kullanabilmek.

ORACLE 10G VERĐTABANINI KOMUT SATIRINDAN KURMAK (SILENT INSTALL)

UFS SNAPSHOT. Hazırlayan: Asiye Yigit Agustos

Hybrid Software Veritabanı ve Sistem 7x24 Destek &Danışmanlık Hizmetleri Veritabanı ve Sistem 7x24 Destek & Danışmanlık Hizmetleri

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

SQL TRIGGERS (Tetikleyiciler)

Windows 2000 veya XP kurarken dosya sistemini seçmeniz gerekir. Ya FAT32 dosya sistemini kullanırsınız ya da NTFS.

SQL SERVER VERİTABANINI EKLEME-ÇIKARMA ve YEDEKLEME-GERİ YÜKLEME

B-Tree Dosya Sistemi (BTRFS)

MOBİL UYGULAMA GELİŞTİRME

Bilgisayarım My Computer

Hızlı Başlangıç Kılavuzu

Veritabanı Tasarımı. Dönüşüm Fonksiyonları

Windows 2000 açılırken önce "Ctrl", "Alt" ve "Del" tuşlarına birlikte basarak login ekranını ekrana getiririz. Login ekranındaki değişiklikler

TEMEL VERİTABANI YÖNETİCİLİĞİ & UNIX / LINUX EĞİTİMİ DERS PROGRAMI

Unutulmuş Özellikler: Oracle Veritabanına Yaptığınız Yatırımı Sonuna Kadar Kullanın

ORACLE VERĐTABANINDA TABLO ve INDEX SIKIŞTIRMA

ALARM KAPALI SNOOZE ALARM AÇIK

PostgreSQL ve PL/pgSQL

30 Mayıs ETASQLMNG Programına giriş

SORGULAR. Öğr.Gör.Volkan Altıntaş

Veritabanı Tasarımı. Veritabanı Hareketleri

EKLEME SORGUSU. 2) ornekveritabani.accdb isimli veritabanınızı çift tıklayarak açınız. Sorarsa, İçeriği Etkinleştir komutunu uygulayınız.

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

Oterm EE101 Kablosuz Oda Termostatı. Oterm EE101 Kullanım Kılavuzu

Dört genel BASINÇ KALIBRASYONU SORUNU

SQL Komutları (2) Uzm. Murat YAZICI

YENİ NESİL 720 SÜRÜMÜ GENEL DEĞİŞİKLİKLER

FABREKA YAZILIM ELEKTRONİK DANIŞMANLIK TİC. LTD. ŞTİ.

Bilgisayarım My Computer. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

KAÇAK AKIM RÖLESİ. Sayfa 1

Sadece 2 İstekle MySQL Blind SQL Injection. Canberk BOLAT canberk.bolat[-at-]gmail[-dot-]com

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

YAPISAL SORGULAMA DİLİ (SQL)

AKINSOFT Tahsilex. Yardım Dosyası. Doküman Versiyon : Tarih : Sayfa-1. Copyright 2010 AKINSOFT

Windows Server 2003 sistemde oluşabilecek hataları giderebilmemiz için bize bir çok araç sunmaktadır. Bunlar:

Windows 2000 Server kurulurken "Standalone Server" olarak kurulur.. İlk defa login olduğunuzda ise, "Windows 2000 Configure Your Server" ekranı gelir:

SQL Stored Procedure

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

AKINSOFT ProKuaför. Yardım Dosyası. Doküman Versiyon : Tarih : Sayfa-1. Copyright 2010 AKINSOFT

1 ORACLE 11G DATABASE SERVER LE

Bellek Yönetimiyle İlgili Notlar ORACLE BELLEK YÖNETĐMĐYLE ĐLGĐLĐ NOTLAR

Kets DocPlace LOGO Entegrasyonu

Veritabanı Tasarımı. Büyük/Küçük Harf ve Karakter İşleme

Exchange Server Kurtarma (PowerControls)

ÜRETİM SÜREÇLERİNİ GÖZLEMLEMEK VE KONTROL ETMEK İÇİN KABLOSUZ ÇÖZÜM

1. Oracle Data Miner 11g Release 2 Kurulumu Aşamaları

İNTERNET PROGRAMCILIĞI - II

STORED PROCEDURE LER (Saklı Yordamlar)

Ortam İzleyici Kullanım Kılavuzu

Hoş Geldiniz! Yandex.Disk aracılığıyla neler yapabileceğiniz konusunda açıklamaları bu dosyada bulabilirsiniz:

SANAL SANTRAL HİZMETİ.

License. Veri Tabanı Sistemleri. Konular büyük miktarda verinin etkin biçimde tutulması ve işlenmesi. Problem Kayıt Dosyaları

Advanced Oracle SQL Tuning

Kurulum Dökümanı. v

Veri Tabanı Hafta Dersi

POSTGRESQL'de İleri Seviyede Veri Kurtarma ve Yedekleme

- İlk dikkat edilecek konu; 3B BIM modelinin her katının ayrı bir çizim dosyasında ve DWG nin de ayrı bir çizim dosyasında olmalıdır.

MultiBoot Kullanıcı Kılavuzu

Security Configuration Wizard ile güvenliği artırmak

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

İnternet Programcılığı

Gerekli bağlantıları yapıp, ACS420 V3.03 programını çalıştırınız. Program açıldığında, LMS14 ün içindeki parametrelerin okunmasını bekleyiniz.

Saati ve kronometre kollarının pozisyonunu ayarlama

Akıllı Bilet Online İşlem Merkezi Uygulaması

Cost Modülü Ay sonu İşlemleri

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

R J F M Programlarında Kurulumda dikkat edilmesi gereken alanlar

ORACLE 11G DIRECT NFS

MÜHENDİSLİ ÇİZİMLERİ LABORATUVAR UYGULAMASI

Transkript:

ORACLE FLASHBACK DATABASE TEKNOLOJĐSĐ 1

Contents 1. FLASHBACK DATABASE Özelliği... 3 2. Veritabanını Hazırlamak... 3 3. ile Recover... 7 4. Flashback ile Zamanda İleri Geri Gitme... 9 5. Flashback İçin Önemli Kontroller... 10 6. Flashback Recovery Area nın Dolması... 10 7. Kaynaklar... 11 2

1. FLASHBACK DATABASE Özelliği Flashback geniş bir konu. Drop edilen tabloların geri getirilmesinden, RMAN içinde kullanıma kadar birçok başlık bulunuyor. Konu çok geniş olduğundan bu yazıda sadece Flashback Database konusuna değineceğim. Veri kayıplarını telafi etmek için çeşitli recover yöntemleri kullanılabilir. Fakat bu yöntemlerin en büyük eksikleri, işlem süresinin uzun oluşudur. Data kaybını sıfıra indirseniz bile, bozulan birkaç tabloyu geri getirmek için harcayacağınız süre, hatrı sayılır zaman alacaktır. Pratik, hızlı ve güvenli bir yöntem gerekmektedir. Yarım saat geriden gelen bir physical standby oluşturmak anlık hataların önüne geçmek için kullanılabilecek bir yöntemdir. Fakat yetersiz kaldığı birçok nokta çıkacaktır. Oracle bu problemlerin önüne geçmek için FLASHBACK özelliğini sunmuştur. FLASHBACK özelliği sayesinde, saatler sürecek recover işlemini birkaç dakika içinde tamamlayıp; veritabanını geçmişteki bir zaman dilimine kolayca geri çekebilirsiniz. Hatta bununla kalmaz, veri tabanını geçmiş ve gelecek içinde getirip götürebilir ve read only mode da sorgular çekebilirsiniz. Fiziksel hatalardan ziyade, özellikle kullanıcı tabanlı hatalar için bir can simidi olarak düşünebiliriz. 2. Veritabanını Hazırlamak Flashback özelliğini kullanmak için üzerinden geçmemiz gereken belli başlı adımlar bulunuyor. Önce veritabanının flashback mode da olup-olmadığını kontrol ediyoruz: SQL> SELECT FLASHBACK_ON FROM V$DATABASE; FLASHBACK_ON ------------------ NO Görüldüğü gibi veritabanımızın flashback özelliği açık değil. Bunu değiştirmek amacıyla veritabanını kapatıp mount mode da açmamız gerekiyor. SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> SELECT OPEN_MODE FROM V$DATABASE; OPEN_MODE ---------- MOUNTED 3

Flashback i aktif hâle getirmeden önce ikinci bir kontrol yapıyoruz. Flashback özelliği için veritabanı ARCHIVELOG şeklinde çalışmalıdır. Bunu da kontrol edip, gerekirse değiştiriyoruz: SQL> SELECT LOG_MODE FROM V$DATABASE; LOG_MODE ------------ NOARCHIVELOG Sorgu sonucuna bakarak veritabanının arşiv modda olmadığını görüyoruz. Gerçek işlemlerin yürütüldüğü, veri kaybına toleransın gösterilemeyeceği hiçbir ortamda NOARCHIVELOG şeklinde çalışılmaz. Ancak örnek olarak kullandığım veritabanı, test amaçlı olduğundan şimdiye kadar ARCHIVELOG a çekme ihtiyacı duyulmamış. Şimdi ise flashback in kullanılabilmesi için veritabanının arşiv mode a geçmesini sağlamamız gerekiyor! Önce arşiv dosyalarının yazılacağı hedef klasörü /data2/testdb/archive/ şeklinde ayarlıyoruz: SQL> ALTER SYSTEM SET log_archive_dest_1='location=/data2/testdb/archive/'; Kontrol edelim: SQL> show parameter log_archive_dest_1 log_archive_dest_1 string LOCATION=/data2/TESTDB/archive/ Dosyaların yazılacağı lokasyon bilgisi tutuyorsa; archivelog mode desteğini açalım ve log_mode bilgisini kontrol edelim: SQL> ALTER DATABASE ARCHIVELOG; Database altered. SQL> SELECT LOG_MODE FROM V$DATABASE; LOG_MODE ------------ ARCHIVELOG Her şey tamamsa flashback için parametreleri düzenleyebiliriz. DB_FLASHBACK_RETENTION_TARGET, DB_RECOVERY_FILE_DEST_SIZE ve DB_RECOVERY_FILE_DEST olmak üzere bizi ilgilendiren üç temel parametre vardır. Bu parametreleri kısaca özetlersek: DB_FLASHBACK_RETENTION_TARGET : Veritabanını kaç dakika geriye alabileceğinizi gösterir. Örneğin 600 değerini girerseniz, 10 saatlik zaman diliminde herhangi bir noktaya gidebilirsiniz. 4

DB_RECOVERY_FILE_DEST_SIZE : Yedek işlemleri için ayrılan alanın boyutunu belirler. 200 GB lik bir disk alanına sahip olabilirsiniz. Ama 20 GB tan fazlasını tahsis etmek size cazip gelmeyebilir. Bu sebeple parametre değerini, DB_RECOVERY_FILE_DEST_SIZE=20G şeklinde ayarlayıp, n olursa olsun 20GB i geçme diye belirtmeniz mümkündür. Fakat bu parametre bir üstte gördüğümüz DB_FLASHBACK_RETENTION_TARGET değeri ile çakışabilir. Örneğin 10080 dakika (yani 7 gün) boyunca herhangi bir zamana dönebilecek şekilde DB_FLASHBACK_RETENTION_TARGET parametresini ayarlayabilirsiniz. Yalnız DB_RECOVERY_FILE_DEST_SIZE, 20G şeklinde ayarlıysa ve siz sadece bir günde 20G in üstünde flashback verisi yarattıysanız, girilen 10080 değerinin pek bir anlamı kalmayacaktır. ÖNEMLĐ BĐR NOT: 200 GB lik bir diskiniz varsa ve burayı Flashback Recovery Area için kullanma niyetindeyseniz; diskinizin tamamını bu işe ayırmak akıllıca olmayacaktır. Maksimum %90 kadar bir disk alanını (örneğimiz için 180 GB) tahsis etmek daha uygundur. Flashback Recovery Area nın dolduğuna dair uyarılar geldiğinde, panik yapmadan ve veritabanını kapatmaya gerek duymadan çözüm üretmeniz mümkün olacaktır. Müsait bir zamanda da bu duruma çözüm üretebilirsiniz. DB_RECOVERY_FILE_DEST : Flashback bilgisinin nerede tutulacağını belirtir. Arşiv dosyalarının koyulacağı lokasyonu belirten log_archive_dest_1 parametresine benzetebiliriz. Bu parametrelere göre ayarlamalarımızı yapalım. Veritabanı için Flashback recovery area yı maksimum 20GB olsun. Flash recovery area lokasyonu olarak /data2/testdb/flashback_area/ klasörünü verelim. Geri dönebileceğimiz zaman olaraksa 600 dakikalık (10 saat) bir aralık ayaralayalım. -- 10 SAAT (600 DAKIKA) FLASHBACK AYARI SQL> ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=600; System altered. -- 20GB UST LIMIT SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20G; System altered. 5

-- LOKASYON BELIRLENIYOR SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/data2/TESTDB/flashback_area/'; System altered. Bazı durumlarda aşağıdaki gibi bir hata mesajıyla karşılaşabilirsiniz: ERROR at line 1: ORA-02097: parameter cannot be modified because specified value is invalid ORA-16018: cannot use LOG_ARCHIVE_DEST with LOG_ARCHIVE_DEST_n or DB_RECOVERY_FILE_DEST Aşağıdaki adımları takip ederek, sorunu çözebilirsiniz: -- ARSIV LOKASYONUNU SIFIRLAYIN SQL> ALTER SYSTEM SET log_archive_dest=''; -- FLASHBACK ICIN KULLANILACAK ADRESI TEKRAR GIRIN SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/data2/TESTDB/flashback_area/'; -- ARSIV LOKASYONUNU TEKRAR GIRIN SQL> ALTER SYSTEM SET log_archive_dest_1='location=/data2/testdb/archive/'; Gerekli değişiklikleri yaptıktan sonra, aşağıdaki ifadeyi çalıştırıp, ayarları kontrol edebilirsiniz: SET FEEDBACK OFF SET LINES 130 COLUMN NAME FORMAT A30 COLUMN FLASHBACK_ON FORMAT A30 COLUMN LOG_MODE FORMAT A50 SELECT NAME, FLASHBACK_ON,LOG_MODE FROM V$DATABASE; COLUMN NAME FORMAT A30 COLUMN VALUE FORMAT A80 select name,value from v$parameter where upper(name) in ('DB_FLASHBACK_RETENTION_TARGET','DB_RECOVERY_FILE_DEST_SIZE', 'DB_RECOVERY_FILE_DEST','LOG_ARCHIVE_DEST_1'); NAME FLASHBACK_ON LOG_MODE ----------------------------- ------------------------------ ------------ YATIRIM NO NOARCHIVELOG NAME VALUE ------------------------------ ------------------------------------------- log_archive_dest_1 LOCATION=/data2/TESTDB/archive/ db_recovery_file_dest /data2/testdb/flashback_area/ db_recovery_file_dest_size 21474836480 db_flashback_retention_target 600 6

Bu noktaya kadar her şey doğruysa, flashback özelliğini aktif hâle getirip, veritabanını açabiliriz: -- FLASHBACK OZELLIGINI AKTIF HALE GETIRELIM SQL> ALTER DATABASE FLASHBACK ON; Database altered. -- VERITABANINI ACALIM SQL> ALTER DATABASE OPEN; SQL> SELECT OPEN_MODE FROM V$DATABASE; OPEN_MODE ---------- READ WRITE 3. ile Recover Hazırlık aşamasını anlatmam uzun sürse de, recover işlemi birkaç komuttan ibaret. Önemli olan hangi zamana dönülmesi gerektiğini bulmak. Đki şekilde recover işlemi gerçekleştirmemiz mümkündür. Bunlardan birisi, SCN System Change Number üzerinden giderek yapılır. SCN, veritabanında yapılan her işlem için sürekli olarak artan nümerik bir değerdir. Mevcut SCN değerini aşağıdaki sorguyla öğrenebilirsiniz: SQL> SELECT CURRENT_SCN FROM V$DATABASE; 34530329701 SCN değerinin hangi zamana; ya da zamanın hangi SCN değerine denk düştüğünü anlayabilmek için iki adet fonksiyon bulunmaktadır: -- SCN DEGERINI ZAMANA CEVIRIYORUZ SQL> SELECT SCN_TO_TIMESTAMP( 34530329701 ) FROM DUAL; 24.10.2008 16:46:55,000000000 -- ZAMANI SCN DEGERINE CEVIRIYORUZ SQL> SELECT TIMESTAMP_TO_SCN( TO_TIMESTAMP('2008-10-24 16:46:00', 'YYYY-MM-DD HH24:MI:SS') ) FROM DUAL; Bu yapıda ihmal edilebilecek kadar ufak tefek farklar çıkabilir. Örneğin aşağıdaki sorgunun sonucu kendisiyle aynı çıkması gerekirken, ihmal edilebilecek çok çok ufak bir fark çıkmıştır: SQL> SELECT TIMESTAMP_TO_SCN( SCN_TO_TIMESTAMP( 34530329701 ) ) FROM DUAL; 34530329700 7

SCN değeri her veritabanı için kendine özgüdür. Ve bir süre sonra geçerliliğini yitirir. Örneğin 1 ay önceki SCN değerini öğrenemezsiniz. Flashback ile recover ederken kullanabileceğiniz ikinci bir yöntemse direkt tarih vermektedir. Gerçi elinizde tarih bilgisi olduktan sonra, SCN değerini alabilir ya da SCN ile zamanı belirleyebileceğinizden söz etmiştik. Bu iki fonksiyon elinizde olduktan sonra zaman kullanarak dönmeniz çok da şart değildir. Şöyle bir durum düşünelim: Kritik bir işlem yapacağız ve beklediğimiz sonuç gelmezse geri almamız gerekiyor. Ancak işlem o kadar teferruatlı ki, basit bir rollback ile kurtulmanız mümkün olmuyor. Tablolar değişiyor; yeni prosedürler yaratılıyor; eski paketler drop ediliyor, yenileri yaratılıyor vs... Đşlemin başarısız olduğunu gördüğünüzde, birkaç dakika içinde geriye dönmek hoş olmaz mıydı? Bildiğimiz recover işlemiyle bunu yapmak saatler sürecektir. Hâlbuki Flashback ile dakikalar içinde bu dönüşü gerçekleştirebiliriz. Önemli olan işleme başlamadan önce SCN değerini almaktır. Đşleme başlamadan önce saate baktık ve 16:46:55 olarak not ettik. SCN değerini ise 34570271536 olarak kaydettik. SQL> SELECT CURRENT_SCN, SYSDATE FROM V$DATABASE; CURRENT_SCN SYSDATE ----------- ---------- 34570271536 24.10.2008 16:46:55 Problem çıktı ve veritabanını eski hâline döndürmemiz istendi. Yapmamız gereken veritabanını kapatıp, mount mode da başlatmak ve ardından flashback özelliğinden yararlanmak olacak: SQL> SHUTDOWN IMMEDIATE SQL> STARTUP MOUNT SQL> FLASHBACK DATABASE TO SCN 34570271536; Flashback complete. Şimdi de veritabanını açmamız gerekiyor: SQL> ALTER DATABASE OPEN RESETLOGS; 8

Burada dikkat etmemiz gereken en önemli konu, yapılan işlemin veritabanına ait incarnation number i değiştireceğidir. Bu durumdan standby veritabanlarınız da etkilenecektir. Pek arzu edeceğiniz bir durum değil; fakat ana ortamda data kaybı (veya bozulması) olmayacaktır. Verdiğimiz örnekte, SCN üzerinden recover ettik. Zaman kullanarak da recover etmeniz mümkündür. Aşağıdaki gibi tarih bilgisiyle de bu işi yapabilirdik: SQL> FLASHBACK DATABASE TO TIMESTAMP to_timestamp('24.10.2008 16:46:55', 'YYYY-MM-DD HH24:MI:SS'); Flashback complete. 4. Flashback ile Zamanda İleri Geri Gitme Bazı durumlarda bozulmanın ne zaman olduğunu bilemeyiz. Bizden bozulma anının hemen öncesi istenebilir. Böyle bir durumda, flashback özelliğini adım adım kullanmamız ve database i read only mode a çekerek kontrol yapmamız mümkündür. Recover adımları aynıdır. Yine tarih bilgisi veya SCN ile recover işlemi gerçekleştiririz. Fakat bu sefer open resetlogs yapmak yerine, veritabanını read only mode da açarız: SQL> FLASHBACK DATABASE TO TIMESTAMP to_timestamp('24.10.2008 16:36:55', 'YYYY-MM-DD HH24:MI:SS'); Flashback complete. SQL> ALTER DATABASE OPEN READ ONLY; Doğru zamanda değilseniz, veritabanını kapatıp, yukarıdaki işlemi farklı bir zaman dilimi vererek tekrarlayabilirsiniz. Uygun zamanı bulduğunuzda ise aşağıdaki komutu vererek veritabanını kullanıma hazır hâle getirmeniz mümkündür: SQL> ALTER DATABASE OPEN RESETLOGS; Peki bu işlemden vazgeçersek ya da son ana geri dönmek istersen ne yapacağız? O zaman aşağıdaki komutu kullanmanız yeterlidir: SQL> RECOVER DATABASE; 9

Diğer bütün flashback komutları incarnation değerini değiştirir. Ama son aşamada verdiğimiz komutta veritabanı incarnation değeri değişmeyecektir. 5. Flashback İçin Önemli Kontroller Flashback i efektif kullanmak için bazı sorguları kullanabiliriz. Örneğin ne kadar eskiye gidebileceğimiz ya da Flashback recovery area nın ne kadarının dolduğunu görmek işimize hâyli yarayacaktır. /* FLASHBACK LOG'LARI GOSTERIR */ SELECT * FROM V$FLASHBACK_DATABASE_LOGFILE; /* GIDILEBILECEK EN ESKI FLASHBACK ZAMANINI GOSTERIR */ SELECT * FROM V$FLASHBACK_DATABASE_LOG; /* BUTUN TABLESPACE'LER ICIN FLASHBACK ACIK OLMALIDIR */ SELECT NAME TBS_NAME,FILE_NAME DB_FILE,FLASHBACK_ON FB_LOGGING, ONLINE_STATUS STATUS FROM V$TABLESPACE,DBA_DATA_FILES WHERE NAME=TABLESPACE_NAME; /* FLASHBACK RECOVERY AREA DOLULUK ORANINI GOSTERIR */ select name, to_char(space_limit, '999,999,999,999') as space_limit, to_char(space_limit - space_used + space_reclaimable, '999,999,999,999') as space_available, round((space_used - space_reclaimable)/space_limit * 100, 1) as pct_full from v$recovery_file_dest; 6. Flashback Recovery Area nın Dolması Yoğun işlemin söz konusu olduğu bir veritabanında flashback recovery area için ayrılan alanın (DB_RECOVERY_FILE_DEST_SIZE) dolması mümkündür. Ancak belirlenen alanın üstüne çıkılmayacaktır. 60 GB ayrılan alan, 60 GB i geçemez. Peki bu durumda ne olur? Flashback log dosyaları (flb), sirküler bir yapıdadır. Oracle Flashback recovery area için alanın yetersiz olduğuna kanaat getirirse, eski flashback log dosyalarını tekrar kullanıma alır. Denemelerimde gördüğüm kadarıyla bunu başarıyla yapıyor. Fakat sıkıntısı, işlemin daha yavaş gerçekleşmesi ve geriye dönebileceğiniz zamanı kısmasıdır. Eski log dosyaları tekrar kullanılacağından, arzu ettiğiniz geri dönüş zamanını yakalayamayabilirsiniz. Performans konusuna gelince... Flashback recovery area hemen dolacak kadar küçük verilmemeli. Çok ufak verilirse, hızlı bir şekilde bu alan dolacak ve eski dosyaların tekrar tekrar kullanılmasından problem çıkacaktır. Şayet alan sıkıntınız varsa ve yeni alan tahsis 10

edemiyorsanız, yapabileceğiniz en uygun şey flashback log dosyalarını ara ara temizlemektir. Bunu elle, işletim sistemi üzerinden yapmak uygun değildir. Oracle dökümanlarında RMAN vb. araçlar kullanılarak yapılması öneriliyor. Benim bulduğum bir yöntem ise, flashback özelliği kapatıp, sonra tekrar açmak şeklinde. Bunu yaptığınızda, RVWR - Recovery Writer process i durmakta ve flashback e ait olan bütün log lar Oracle tarafından silinmektedir. Bu konudaki tek handikap, veritabanını kapatmanın gerekliliğidir. SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER DATABASE FLASHBACK OFF; /* ####### BU ESNADA ALERT LOG DOSYASI #######... ALTER DATABASE FLASHBACK OFF Fri Oct 24 12:15:50 2008 Stopping background process RVWR Deleted Oracle managed file /data2/testdb/flashback_area/o1_mf_4j2zm7z5_.flb Deleted Oracle managed file /data2/testdb/flashback_area/o1_mf_4j316ybk_.flb... Disabled Completed: ALTER DATABASE FLASHBACK OFF */ SQL> ALTER DATABASE FLASHBACK ON; SQL> ALTER DATABASE OPEN; Bunu işlemi pek sık yapmanız gerekmiyor. Hatta hiç yapmanız gerekmiyor. Fakat biraz daha performanslı çalışmak ya da disk alanı konusunda sıkıntı yaşadığınızda ciddi oranda tasarruf sağlamak istiyorsanız, uygulayabilirsiniz. 7. Kaynaklar http://www.psoug.org/reference/flash_db.html http://users.telenet.be/oraguy.be/flashback_database.htm http://arjudba.blogspot.com/2008/04/ora-16018-and-ora-16019-logarchivedest.html http://appsdbanew.wordpress.com/2008/06/06/enabling-flashback-on-oracle/ http://download.oracle.com/docs/cd/b28359_01/backup.111/b28270/rcmflash.htm http://www.dba-oracle.com/p_db_flashback_recovery_target.htm 11