26 Kasım 2010 Cuma

Flashback Technologies


Flashback Query.


Query values in a table at a point in time.

select * from rays.VIMPORTANTDATA
as of timestamp to_timestamp('25-FEB-2010 08:10:00',
'DD-MON-YYYY HH24:MI:SS');

or

select * from rays.VIMPORTANTDATA
as of timestamp to_timestamp('25-FEB-2010 08:10:00',
  'DD-MON-YYYY HH24:MI:SS');
where employee_name = 'Smith';

It can also be used with an insert data to restore data

Insert into rays.VIMPORTANTDATA (
select * from rays.VIMPORTANTDATA
as of timestamp to_timestamp('25-FEB-2010 08:10:00',
  'DD-MON-YYYY HH24:MI:SS');
where employee_name = 'Smith');

WARNINGS
1) Does not work for truncated data (not in undo),
2) Subject to UNDO retention rules.
3) LONG columns cannot be selected in this way


25 Kasım 2010 Perşembe

ORACLE FLASHBACK DATABASE TEKNOLOJİSİ

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. 

Hibernate'e Genel Bir Bakış

Nesneye yönelik yazılım ve ilişkisel veritabanı kullanımı günümüzde oldukça
yaygındır. Bu iki gözde modelin beklide en önemli problemi en az onlar kadar yaygın ve
dahası önü açık olan kuruluş uygulamaları(enterprise applications) ile birlikte
kullanıldıklarında oldukça karışık, yorucu ve zaman alıcı olmalarıdır. Hibernate bir
nesne/ilişkisel eşleme (Object/Relational Mapping)  aracıdır. Burada nesne/ilişkisel eşleme
terimi nesne modelindeki veri tanımlarının ilişkisel veri modeline eşleme (mapping) tekniğini
ifade etmektedir.

Hibernate yalnızca Java sınıflarından veritabanı tablolarına veya Java veri tiplerinde
SQL veri tiplerine dönüşümü yapmaz. Hibernate veri sorgulama(data query) ve veri
çekme(data retriaval) işlemlerini de kullanıcı için sağlar. Bu özellikleriyle Hibernate
geliştirme kolaylığı ve zamandan kazanç sağlar. Hibernate kullanımı olmadan tüm adı anılan
işlemler için SQL ve JDBC’nin olanaklarından faydalanılarak el ile(manual)  veri işleme(data
handling) gerçekleştirilmesi zaruri olacaktır.

SQL OPTIMIZER NEDİR ?

Herhangi bir SQL sorgusu çalıştırıldığında, istenilen bilgiye nasıl ulaşılacağına “Optimizer” adı verilen
veri tabanı optimizasyon birleşeni karar vermektedir. Oracle, kullanıcılarına tahminler üzerine çalışan
“Rule-Based Optimizer” ve daha çok akıl yürütme yöntemi ile çalışan “Cost-Based Optimizer” olmak
üzere iki adet optimizasyon seçeneği sunmaktadır.
Rule-Based Optimizer

Veri tabanına ulaşılırken, Rule-Based Optimizer (RBO) ile önceden tanımlanmış kurallar seti
kullanılarak hangi yolun izleneceğine karar verilir. Burada bahsedilen kurallar “SELECT /*+ RULE
*/. . .”  şeklinde kullanılmaktadır ve böylece veri tabanında hangi indeksin kullanılacağı gibi ek
bilgiler verilmektedir. Eğer bu yöntem kullanılacaksa, RDBMS‘de aşağıdaki tanımlamaların yapılması
gerekmektedir: