Myasoft Retention Guarantee

Aslında başlığı okuduğunuz da Arjantinin yerel bir futbol takımından Barcelona FC ye transfer olmuş latin futbolcu ismi anımsayabilirsiniz fakat bizim konu başka.

Undo Retention Guarantee konusunu kısaca anlatmak gerekirse Orjinal değişime uğramamış data kopyası diyebiliyoruz. Genel olarak Rollback operasyonları , Read-Consistent sorguları , Flashback ve Fail olan transactionların geri kazanılmasında kullanılan hayati bir dost eli olarak da açıklanabilir.

Ama daha açıklayıcı bir şekilde anlatmak gerekirse Örneğin Myasoft üzerinde bir çalışma yapıyorsunuz ve fark etmeden herhangi bir bölümde değişiklik yaptınız. Bu toplu fiyat değişikliği olabilir, çok kalemli bir faturanın silinmesi olabilir vs. İşte tam bu anda Oracle ‘ın nimetlerinden Retention Guarantee giriyor işin içine. Normal şartlar bir dba tarafından danışılan bu dost elini biz kendi alt yapımızda anlatacağız.

İşin bu tarafını anlattıktan sonra Flashback kavramı ile devam ediyorum. Oralce herhangi bir veriyi geri dönerken Flashback undo tablespace ‘inden yararlanıyor. Bu tablespace ler ilgili parametrelerdeki log tutma süresi kadar size geri dönüş garantisi sağlamakta.

Öncelikle bu işlemi yapabilmek için veritabanınızın archive modda olması gerekiyor. Veritabanınızın durumunu sqlplus ile sorguladığınızda eğer NORARCHIVELOG durumunda görürseniz aşağıdaki adımlar ile ARCHIVELOG moduna geçebilirsiniz.

 

Öğrenmek için ;

SQL>SELECT LOG_MODE FROM V$ORCL_DATABASE;

LOG_MODE ———— NOARCHIVELOG –> Veritabanı uygun değil, o zaman uygun hale getirelim

SQL>SHUTDOWN IMMEDIATE; SQL>STARTUP MOUNT; SQL>ALTER ORCL_DATABASE ARCHIVELOG; SQL>ALTER ORCL_DATABASE OPEN;

Güzel ilk adımı tamamladık. Peki FlashBack açık mı ?

SQL>SELECT FLASHBACK_ON  FROM V$DATABASE; FLASHBACK_ON

————

NO –> Flkashback de kapalı, sitres yapmayın default kurulumda bu şekilde geliyor. Ozaman açalım

SQL>ALTER DATABASE FLASHBACK ON;

Flashback de açıldığına göre Retention Guarantee ayarlarımızı adım adım yapabiliriz.

Undo Retention parametresinde öncelikle geçmişe dönük ne kadar log tutacağımızı hesaplamamız gerekiyor. Parametreyi herzaman saniye cinsinden vermemiz gerekiyor. Fakat öncelikle bahsetmem gereken bir husus var ne uzun geri dönüş o kadar çok kapasite.

Biz 30 dakikalık bir dönüş yapacağız. Buda 1800 saniye yapıyor ( 1800/60=30dk. )

Parametrelerimizi yazalım.

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

Şimdi biz yukarıda UNDO_RETENTION değerini 1800 yaparak 30 dakikalık bir geri dönüşü garanti altına almak istediğimizi belirttik.Bu sayede UNDOTBS1 de otomatik olarak kapasite arttırımına gidecek.

Ayarları düzgün olup olmadığını kontrol edelim.

SQL>SELECT TABLESPACE_NAME,RETENTION FROM DBA_TABLESPACES WHERE TABLESPACE_NAME=’UNDOTBS1′;   TABLESPACE_NAME

RETENTION ————— ———

UNDOTBS1           GUARANTEE

Güzel ayarlar düzgün.

Transaction Query kullanmak istiyorsanız ki biz kullanıyoruz ilişkili alanlarımız mevcut aşağıda komutu çalıştırmanız gerekiyor. Bu sayede supplementallog data aktif olacak.

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;

Bu Retention Guarantee ile içimizi azda olsa rahatlatıyoruz.

 

 

 

Facebook Yorum

bparlayan has written 112 articles

Blog sitemi boş zamanlarımda hem biraz karalamak hemde mesleki tecrübeleri paylaşmak için kullanmaktayım. Burası benim deşarj noktam. Bu paylaşımları istediğiniz gibi çoğaltabilir ve kullanabilirsiniz : ). Ufak bir teşekkür yeterli. bugra[@]bugraparlayan.com.tr adresinden iletişim kurabilirsiniz.

Leave a Reply