Ana içeriğe atla

FLASHBACK RECOVERY:

Flashback özelliğinin kullanımı ile ilgili kısa bir örnek yapalım.
Bu örnekte test çalışmasında kullanılmak database'in flashback özelliğinin açarak bir restore point yaratıp, testlerin ardından yaratılan restore point'e dönerek database'i test öncesindeki haline getiririz.

ilk önce veritabanının flashback için kullanacağı alanı ayarlarız. Aşağıdaki parametrelerden bu alanın ayrılmadığını görebiliriz.
SQL> show parameters db_recovery;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 0

Bu alanı aşağıdaki gibi set edebiliriz.
alter system set db_recovery_file_dest_size=2g;
alter system set db_recovery_file_dest='/app/oracle/flash_recovery_area';
init.ora dosyasına aşağıdaki satırlar yazılır:
*.db_recovery_file_dest='/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648

Bu işlemleri yaptıktan sonra tekrar parametreleri kontrol ederek aşağıdaki gibi set edildiğini görebiliriz.
SQL> show parameters db_recovery;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /app/oracle/flash_recovery_area
db_recovery_file_dest_size big integer 2G

Bu alanı ayarladıktan sonra flashback özelliğini açmak için veritabanını kapatarak mount modda açarız.
SQL> shu immediate
SQL> startup mount
Mount modda açtığımız database'in flashback özelliğini açarak test'lerin ardından geri dönebilieceğimiz restore point i yaratırız.
SQL> alter database flashback on;
SQL> create restore point Before_Test_Point guarantee flashback database;

test işlemlerine başlanabilmek için database açılır.
SQL> alter database open;

***************************************************************
TEST işlemleri yapılır.
****************************************************************

Test'ler bitince yarttığımız restore point noktasına dönmek için database i tekrar kapatarak mount modda açarız.
SQL> Startup mount force;
flashback işlemini yaparız:
flashback database to restore point Before_Test_Point;

Bu işlemden sonra artık test çalışmaları öncesine dönmüş olduk. Bundan sonra flashback özelliği kapatılarak yarttığımız restore point i drop ederiz.
SQL> alter database flashback off;
SQL> drop restore point Before_Test_Point;

flashback de kullanılmak üzere belirlediğimiz alanı kapatmak için init.ora dosyasına eklenen açşağıdaki satırlar kaldırılır.
*.db_recovery_file_dest='/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648

Database kapatılarak test aşamasında redo.log'lara yazılan bilgiyi temizlemek için resetlogs ile açılır.
shu immediate;
startup mount;
alter database open resetlogs;


İşinize yaraması dileğimle...


Serkan YILMAZ

Yorumlar

Bu blogdaki popüler yayınlar

Oracle 11G - Interval Partitioning Özelliği

Bilindiği üzere devasa tablolara erişimde performans sıkıntılarının giderilmesi, data arşivleme, büyük hacimlerdeki eski dataların silinmesi gibi durumlarda partitioning hayat kurtarıyordu. Bununla birlikte 11g öncesi versiyonlarda bu tabloların sürekli yeni partition'larının oluşturulması gibi bir maliyet söz konusuydu. Önceki versiyonlarda partition yaparken belirtilen zaman aralığı dışında bir veri girmeye çalıştığımız zaman "ORA-14400: inserted partition key does not map to any partition" hatasını alıyorduk, çünkü girmek istediğiniz verinin konumlandırılacağı bir partition bulunmamaktaydı. 11g ile partition create ederken "interval" ifadesini de ekleyerek tablomuza belirtilen aralıkların dışında bir data gelmesi durumunda ilgili partition'ı kendisi oluşturuyor. 11g ile gelen bu yeni özellik sayesinde artık partitioning seçeneğine daha bir ısındım diyebilirim.  Aşağıda bir örnekle açıklamaya çalıştım. Bu örnekte eski dataları, farklı bir arşiv tables...

Veritabanı dosyalarını(datafile) başka bir dizine taşıma

Bu işlem veritabanı kapalıyken veya açıkken yapılabilir. 1 ) Veritabanı Kapalıyken: * Database kapatılır. SQL > shutdown imeediate * Datafile yeni dizine kopyalanır veya move edilir. $ cp /old_location/dbfilename01.dbf /new_location/ Taşımayıp kopyaladıysanız eski lokasyondaki datafile'ı kullanmasını önlemek adına ek önlem için rename edebiliriz. $ mv /old_location/dbfilename01.dbf /old_location/dbfilename01.dbf_OLD * Database mount mode'da açılarak datafile rename edilir. SQL > startup mount SQL > alter database rename file '/old_location/dbfilename01.dbf' to '/new_location/dbfilename01.dbf'; * Database open mode'a alınır. SQL > alter database open; 2 ) Veritabanı Açıkken: Bunu yapabilmek için database'in archive log mode'da olması gerekiyor. Bunu aşağıdaki komutla kontrol edebilirsiniz. SQL> select log_mode from sys.v_$database; LOG_MODE ------------ ARCHIVELOG * Datafile offline'a alınır. SQL> al...

RMAN:DUPLICATE DATABASE İLE YENİ BİR VERİTABANI YARATMA

Veritabanımızın son alınan mevcut backup'ından yeni bir test ortamı oluştururken hazırladığım aksiyon planını aşağıdaki gibi paylaşmak istedim. Eklemek istediğiniz veya yanlış olduğunu düşündüğünüz hertürlü konuyu paylaşırsanız sevinirim. Tanımlar: prd: kopyası oluşturalacak production sistemi prdserver: production veritabanı server ı test: oluşturulacak test sistemi. testserver: test veritabanı server ı catalogdb: rman katalog bilgilerinin bulunduğu veritabanı catdbserver: katalog veritabanı server ı Test ortamında listener düzenlemesi: * oluşturulacak test ortamının mevcut listener.ora dosyasına aşağıdaki satırlar eklenir. (SID_DESC = (GLOBAL_DBNAME = prd) (ORACLE_HOME = /app/oracle/product/11.1.0/db_1) (SID_NAME = prd) ) TNS tanımlarınını yapılması: * test ortamının tnsnames.ora dosyasına catalog ve prod veriabanlarının tns tanımları eklenir. catalogdb = (DESCRIPTION = (ADDRES...