flashback technology & managing memory

8
20 Temmuz 2013

Upload: burakkarip

Post on 07-Dec-2015

226 views

Category:

Documents


4 download

DESCRIPTION

.

TRANSCRIPT

Page 1: Flashback Technology & Managing Memory

20 Temmuz 2013

Page 2: Flashback Technology & Managing Memory

FLASHBACK TECHNOLOGY

UNDO Tablespace sizeına göre belirlenen retention süresi kadar eskisini

görmemize imkan tanır.

[SINAV SORUSU] : Yukarıdaki tablo çok önemli sınavlarda özellikle hangi özellikler

undodan faydalanmaz gibi sorular çıkabiliyor.

sql > show parameter undo;

**Defaultta undo retention 900 saniye.

**Örneğin undo 1 saatlik retention guarante verdik ve 32 gb datafile doldu.Bu durumda datafile eklemezsek

database hang olur.

**Advisora tanışarak 1 saatlik ne kadar alan tutacak bilgi alabiliriz.

**Advisor ile çalışırken doğru periyodu belirleyip analiz etmek lazım. Az iş olan bir periyodda analiz yaptırırsak

tavsiyeler yanlış olur.

FLASHBACK QUERY :

select salary from hr.employees as of timestamp sysdate-5/1440

**5 dakika eskiye götürür.

**Datayı görüntüler, değiştirmez.

Page 3: Flashback Technology & Managing Memory

FLASHBACK VERSION QUERY :

select version_xid,employee_id,salary from hr.employees versions between

timestamp sysdate -20/1440 and sysdate where department_id=20

**20 dakikalık periyodlardaki bütün değişiklikleri gösterir.

select version_xid,,version_starttime,version_endtime,employee_id,salary from

hr.employees versions between scn minvalue and maxvalue where

department_id=20

**görebildiğin en eski ve en yeni arasındaki değişiklikleri gösterir. Undo ne kadar eskiye kadar gidiyorsa

gösterir.

Recyclebin drop edilmiş table getirme

sql>show parameter recycle

**recycle bin parametresi on değilse drop edilmiş tabloyu geri getiremeyiz

sql> drop table hr.emp;

**hr şemasındaki emp drop edilir.

sql>show recyclebin;

**Sorgusu ile hiçbir şey göremeyiz. Çünkü drop edilen tablo hangi şemada drop edildiyse o şemanın altındaki

recyclebinde tutulur.

**Şema user ile tablespace bağlanıp ordan sorgulanır.

sql>conn hr/oracle_4U

sql>show recyclebin;

**Drop işlemi aslında tablonun adını değiştirir.

sql>flashback table hr.emp to before drop;

!![SINAV SORUSU] : Tabloyu geri aldığımızda indexler,constraintler herşeyi geri alır. Ancak index isimlerini

aynen geri getiremez.

sql>purge recyclebin;

sql>drop table hr.emp purge;

Page 4: Flashback Technology & Managing Memory

AS OF TIMESTAMP FLASHBACKLE undo büyüklüğü kadar eskiyi sorgulayabiliriz.

Ancak undo transactionı fazla olduğu ve üstüne yazma ihtimali olduğu için

büyük şirketlerde 1 gün öncesini bile görmek mümkün olmuyor.

Böyle durumlarda TOTAL RECALL ile undodaki veriyi sürekli tutan bir tablespace

oluşturuyoruz. Bu şekilde Undodaki değişen verinin bir kopyası oluşturduğumuz

tablespace yazılır.

**Bütün database için değilde özellikle kritik tabloları historical flashback tutabilmek için ayrı bir tablespace

flashback archive yaparız.

CREATE FLASHBACK ARCHIVE FDA1 TABLESPACE FDA_TBS1 QUOTA 10M

RETENTION 1 YEAR;

**10 megabyte dolana kadar yada 1 yıllık periyodda veriyi saklar.

ALTER TABLE HR.EMPLOYEES FLASHBACK ARCHIVE FDA1;

alter flashback archive fla1 set DEFAULT;

**Flashback Archieve Default olarak ayarlarız.

alter flashback archive fla1 modify retention 2 year;

**5 yıllık retentionı 2 yıla indirmeye çalışırız ama izin vermez.

**Böyle bir durumda 2 yıldan eski veriler purge edilir ve tekrar alter yapılır.

alter flashback archive fla1 purge before timestamp(systimestamp - interval '1'

day);

[SINAV SORUSU] : FLASHBACK ARCHIEVE AÇIK OLAN TABLO DROP EDİLEMEZ

dba_flashback_archieve

dba_flashback_archive_ts

dba_flashback_archive_tables

** sorguları ile database/tablespace/table flashback durumları görülebilir.

[SINAV SORUSU] : Flashback process o anki ssession ayarlarını kullanır. Eski tarih formatı farklı olabilir. Şuanki

ayarlara göre çevirilip getirilir.

Page 5: Flashback Technology & Managing Memory

!!! Eğer tablespacede büyüyecek yer yoksa çöpteki verilerin üzerine yazılabilir. Çöpte görünür ama geri

getirelemez.

[SINAV SORUSU] : where can_undrop='YES' kriteri ile işaretlenir.

----------------------------------------------------------------------------------------------------------------------------------------------

FLASHBACK DATABASE

Defaultta kapalı bir özellik. Açılınca flashback logları tutulur.(FRA'da tutulur.)

Üretilen logların tersini tutar, flashback yapınca ters loğları çalıştırır.

**Test ortamlarında çok kullanılır. Oluşturulmuş test database gün için kullanılıp bozulursa database geri

sarabilirsin.

**enterprise manager flashback recovery areada flashback logs görüntülenebilir.

ZORUNLUKLARI :

ARCHIVELOG AÇIK OLMA

FRA KULLANILMALI(DB_RECOVERY_FILE_DEST BOŞ İSE KULLANILMAZ)

**SINAV SORUSU : FRA BOŞ ve FLASHBACK DATABASE açılırsa ne olur.

!! Fiziksel değişikliklerde flashback database yapılamaz. Datafile silinirse veya

tablespace drop edilirse geri getirilemez. Datafile boyutu değişir veya control file

değişirse yine aynı şekilde flashback yapılamaz.

ADIMLAR :

sql>SHUTDOWN IMMEDIATE

STARTUP MOUNT

ALTER DATABASE ARCHIVELOG

ALTER SYSTEM SET DB_FLASHBACK_RETENTION 2880

**2880 : Dakika olarak 2 gün karşılık geliyor.

ALTER DATABASE OPEN

Page 6: Flashback Technology & Managing Memory

RMAN>FLASHBACK DATABASE TO TIME="TO_DATE('2009-05-27 16:00:00','YYYY-

MM-DD HH22:MI:SS')"

**Rman’den sorgulama (SQL’de sorgulamak hata verebilir.)

SQL > FLASHBACK DATABASE TO TIMESTAMP(SYSDATE-1/24)

SQL> FLASHBACK DATABASE TO RESTORE POINT B4_LOAD;

**SQL üzerinden sorgulama

CREATE RESTORE POINT BEFORE_UPGRADE GUARENTEE FLASHBACK DATABASE;

**RESTORE POINT OLUŞTURULUR.

Flashback loglarını görebileceğimiz tablolar:

v$FLASHBACK_DATABASE_LOG

V$FLASHBACK_DATABASE_STAT

MANAGING MEMORY :

AMM : Automatic memory management

Memory target verilir .SGA PGA otomatik ayarlanır.

**memory targetten farklı olarak bir de memory max target verilir.Bu Durumda meory target sıkışırsa

maksimum memory max targete kadar genişleyebilir.

[enterprise manager] -> Memory advisors bölümünden memory tavsiyeleri

alınabilir.

sql > show parameter sga

**Parametre değerlerinde size sıfır ise otomatik yönetiliyor demektir. max_size maksimum çıkabileceği değer

show parameter pga

**Parametre değerlerinde size sıfır ise otomatik yönetiliyor demektir.

Page 7: Flashback Technology & Managing Memory

show parameter cache

**Parametre değerlerinde size sıfır ise otomatik yönetiliyor demektir.

sql>show parameter memory

**memory target , max target değerleri verilmiştir. Defaultta %80-%20 dağıtıyor.

[enterprise manager] -> Memory advisors

**Memory grafiğinden ne kadar memory arttırımı yapılırsa dbtime olarak sorgularda ne kadar azalma olacak

görülebilir. Grafik yukarı doğru giderse memory 2 katına çıkarırsan dbtime şu kadar düşer gibi tavsiye verir.

select * from v#memory_advise

Automatic Mermory management disable ediyoruz. Manuel değer vereceğiz.

Automatic Shared memory management ayrıca disable edebiliyoruz.

**Shared pool , buffer cache ,large pool vb. tek tek ayarlayabiliriz.

**10g öncesi komple manuel yapılıyordu. Örneğin akşam backup alırken large pool memory arttırıp sabah

gelince tekrar eski hale çekiliyordu.

**Artık SGA’ya verilen memory’e Shared pool , buffer cache ,large pool vb. ihtiyacına göre otomatik artıp

azaltılır.

Buffer Cache Durumları

[SINAV SORUSU] :

Pinned(şuan update olan)

Dirty(update olmuş,commitlenmiş ancak database writer başka işlerle

uğraştığı için henüz diske yazılamamış)

**dirty görmemek lazım. dbwr_io_slaves parametresi arttırılır(defaultta sıfır-1tane databasewriter vardır.)

Clean(Daha önce kullanılmış , datafile tarafına gitmiş ve yazmış,ezilebilir.)

Free/unusued(hiç kullanılmamış memory alanları)

Page 8: Flashback Technology & Managing Memory

!! BUFFER CACHE Alt grupları :

db_recycle_cache_size(Az kullanılan ,anlık çalışma tabloları recycleda

yaratırız. İlk bunlar ezilir.)

db_keep_cache_size (ezilmesini istemediğimiz , diskten okuması yavaş olan

tablo/index vs. keep koyulur. Database kapanana kadar garanti veriyoruz

ezilmez.)

db_cache_size (defaultta kullanılan yer)

**KEEP VE RECYCLE DEFAULTTA KULLANILMIYOR.

örnek :

create index idx STORAGE(BUFFER_POOL KEEP);

ALTER TABLE customers storage(BUFFER_POOL RECYCLE)

**(Örneğin Çağrı merkezini bir kere arıyoruz bir daha 3 sene sonra arıyoruz. Bizi cachede tutmasına gerek yok)

**ÇOK DİKKATLİ OLARAK KULLANILMASI GEREKİR.PERFORMANS İÇİN YAPILAN AYARLARDIR.

ALTER TABLE customers storage(BUFFER_POOL KEEP)

ALTER TABLE customers storage(BUFFER_POOL DEFAULT)

!!!Shared pool altında result cache alanı vardır

**memoryde result tutan tek cache alanı. Oracle normalde data tutar.11 g ile geldi.Toplam müşteri alanlarını

hesaplatıp buraya koyarsak, bir daha hesaplanmadan gelir.