Oracle Dataguard Role Transition Switchover/Failover

Oracle Dataguard Role Transition Switchover/Failover

Switchover: Primary ve standby database’in yerlerinin degismesi demektir. Swicth over 0 (sıfır) data kaybi vardir. Bakim, upgrade, hardware operasyonlari , test vs gibi islemler icin yapilir.

Failover: Standby database’in primary database’e donusmesidir. Eger primary database’de flashback database disable ise, geri donusu yoktur yani tekrar failover yapamazsınız. Eğer fast start failover kullaniyorsanız (10g R2) failover islemi otomatik olarak yapilabilir.

Okumaya devam et “Oracle Dataguard Role Transition Switchover/Failover”

Oracle Delete Join

Aşağıda örnek oracle delete join örneğini bulabilirsiniz.

DELETE
FROM
( t1, t2
WHERE t1.N1 = t2.N1
AND t2.N1=2)

Tayfur Böler
Database Administrator
www.mysqlsupport.net

Oracle Backup Reports

Oracle da aşağıdaki query i kullanarak backup kontrolu (full,incremental ve archive log ) yapabilirsiniz.


col STATUS format a9
col hrs format 999.99
select
SESSION_KEY, INPUT_TYPE, STATUS,
to_char(START_TIME,'mm/dd/yy hh24:mi') start_time,
to_char(END_TIME,'mm/dd/yy hh24:mi') end_time,
elapsed_seconds/3600 hrs
from V$RMAN_BACKUP_JOB_DETAILS
order by session_key;

Aşağıdaki query ile de sadece full ve incremental backup raporu alabilirsiniz.

col STATUS format a9
col hrs format 999.99
select
SESSION_KEY, INPUT_TYPE, STATUS,
to_char(START_TIME,’mm/dd/yy hh24:mi’) start_time,
to_char(END_TIME,’mm/dd/yy hh24:mi’) end_time,
elapsed_seconds/3600 hrs
from V$RMAN_BACKUP_JOB_DETAILS
where input_type=’DB INCR’
order by session_key;

Tayfur Böler
Database Administrator
www.mysqlsupport.net

Oracle Open Session Count

Oracle da açık olan sessionların adetini öğrenmek için aşağıdaki queryi kullanabilirsiniz.


select count(*), inst_id from gv$session where type='USER' group by inst_id;

Tayfur Böler
Database Administrator
www.mysqlsupport.net

ORACLE REDO LOG

ORACLE REDO LOG GİRİş

Oracle’da veri girişleri direk olarak veritabanı dosyalarına yapılmaz.
İlk önce veriler redo log denilen dosyalara yazılır. Daha sonra da
belirli işlemlerden sonra veritabanı dosyalarına yazılır.

Redo log dosyaları minumum 2 veya daha fazla olabilir. Yoğun
trafiğe sahip databaselerde 2 redo log dosyası var ise veri girişleri
ve update işlemleri sırasına sık sık “Thread 1 cannot allocate new log,sequence”
hatası alırsınız.

LGWR (Log Writer): Bufferdaki redo bilgilerini redo log dosyasına yazmakla
yükümlüdür. Ek olarakda redo log dosyalarının statulerini günceller.

LGWR, redo log dosyaları dolduğunda bir sonraki redo log dosyasının
veritabanı dosyalarına yazılıp yazılmadığını ve arşivlenip arşivlenmediğini kontrol eder ve
yeni redo log dosyasına geÇer. Bu sırada bir önceki redo log dosyasının
statusunu CURRENT dan ACTIVE Çeker. Devamında DBWR (Database Writer)’a
Checkpoint işlemini yapması iÇin bilgi verir . DBWR Checkpoint işlemini tamamlayıp,
redo loglardaki datayı veritabanı dosyalarına yazıp CKPT processini Çağırır.
CKPT işlemi ise veritabanı dosyalarının header bilgisini ve statusunu gunceller.
Bu işlemleri tamamladıktan sonra LGWR işlemini Çağırır. LGWR de redo log
statu bilgisini ACTIVE‘den INACTIVE‘e Çeker.
Tüm bu işlemlerden sonra redo log dosyası tekrar kullanıma aÇılmış olur.
şunu da unutmamak gerekir bir birim zamanda sadece bir tane redo log dosyasına
yazılma işlemi yapılabilir.

Bir sonraki makalelerde görüşmek dileğiyle,
Tayfur BÖLER
Database Administrator

Oracle'da Commit ve Rollback İşlemi

Oracle”da Commit ve Rollback İşlemi,

Datalar üzerinde işlem yapan insert,update,delete gibi DML cümleleri
Çalıştırıldığı zaman yapılan değişikliklerin kalıcı olması iÇin COMMIT
cümlesi Çalıştırılır. Yapılan bu değişiklikleri COMMIT cümlesi Çalıştırmadan
geri almak mümkündür. Bunu da ROLLBACK cümlesi ile yaparız.

Aşağıdaki durumlarda COMMIT komutu Çalıştırılır.

* COMMIT komutunu kendimiz Çalıştırdığımız zaman.
* Bir DDL cümlesi Çalıştırıldığı zaman.
* Oracle sunucularından disconnect oldugumuz zaman.

Aşağıdaki durumlarda ROLLBACK komutu Çalıştırılır.


*
ROLLBACK komutunu Çalıştırdığımız zaman.
* Sunucu anormal bir şekilde sonlandığı zaman.
* Bağlı olduğumuz oturum kill edildiği zaman.

ÜRNEK:

select adi,soyadi,adres from personel;

Yukarıdaki sorgu sonucu boş dönüyor.Yani tabloda herhangi bir kayıt yok.

insert into personel(adi,soyadi,adres) values (“tayfur”,'boler”,'istanbul”);

Yukarıdaki sorgu ile bir kayıt insert ettik.

COMMIT;

Yukarıdaki komut ile kayıtı kalıcı olarak

insert into personel(adi,soyadi,adres) values (“ali”,'bak”,'istanbul”);

Yukarıdaki sorgu ile bir kayıt insert ettik.

ROLLBACK;

Yukarıdaki komut ile yeni kaydımızı geri aldık.

insert into personel(adi,soyadi,adres) values (“ali”,'bak”,'istanbul”);

Yukarıdaki sql ile aynı kayıtı yeniden ekledik.

ALTER TABLE PERSONEL ADD (dogum_yeri VARCHAR2(20));

Yukarıdaki DDL ile personel tablomuza dogum_yeri kolonunu ekledik.

şimdi son eklediğimiz ‘ali’ kayıdını geri almak istiyoruz.

ROLLBACK;

Oracle ,yukarıdaki komutu Çalıştırdıgımızda geri alma işlemini yapamayacaktır.
Üünkü herhangi bir DDL ifade Çalıştırıldıgında otomatik olarak
COMMIT komutu Çalışmaktadır.

Bir sonraki makalelerde görüşmek dileğiyle,

Tayfur BÖLER
Database Administrator

Oracle'da SQL Cümlelerinin İşlenmesi

Oracle’da SQL Cümlelerinin İşlenmesi

Oracle veritabanında ve diğer veritabanlarında bulunan verileri
işlemek iÇin SQL cümlecikleri kullanılır. Kayıt eklemek, silmek, update etmek vs.
iÇin Veri İşleme Dili (DML) kullanılır. Mesala SELECT,UPDATE,INSERT
DELETE,EXPLAIN PLAN ve LOCK TABLE DML cümlecikleridir.

PARSE,EXECUTE ve FETCH:

Oracle SQL cümlecikleri 2 yada 3 aşamada işlenir. Tüm sqllerin işlenmesinde
parse ve execute işlemleri vardır. Bunlara ilaveten veritabanından
veri Çeken SELECT cümlelerinde birde FETCH aşaması vardır.

PARSE: Sql cümlelerinin işlenmesindeki ilk aşamadır.

* Sql cümlelerinin syntax olarak doğruluk kontrolu yapılır.
* Sql cümlelerinde bulunan tablo ve kolon isimleri veri sözlüğünden kontrol edilir.
* Sql cümlelerini Çalıştırmak isteyen kullanıcıların izni olup olmadığı kontrol edilir.
* Üalışma planı Çıkartılır.
* Sql cümlesi iÇin bellekte paylaşılmış sql alanı bulunur.
* Eğer ilgili sql daha önceden Çalıştırılmış ve parse aşamasından geÇmiş ise
ve ön ara bellekte bulunuyorsa yukarıdaki işlemler yapılmadan Oracle
direk olrak sql’i Çalıştırır.

EXECUTE: Oracle PARSE aşamasını geÇmiş olan SQL’i bu aşamada Çalıştırır.
Eğer sql cümleciği iÇinde LOCK işlemi gerektirecek delete veya update işlemi varsa
LOCK işlemi gerÇekleştirilir. Eğer LOCK işlemi gerektirecek herhangi bir sql yoksa
Oracle ön arabelleğe bakar eğer veriler arabellekte ise fiziksel dosyalardan bu
verileri tekrar okuma işlemi yapmaz.Bu şekilde işlem daha hızlı gerÇekleştirilir.

FETCH:
SQL select cümlelerinde ,execute aşamasını fetch aşaması yani
kayıt getirme işlemi takip eder. Bu aşamada execute aşamasında tespit edilen
kayıtlar eğer bir sıralama işlemi var ise sıralanarak yok ise normal şekilde
getirilir.

Böylece kısa bir şekilde Oracle da SQL cümleciklerinin nasıl bir mantıkla
işlendiğini öğrenmiş olduk.

Bir sonraki makalelerde görüşmek dileğiyle.

Tayfur BÖLER
Database Administrator

Oracle Makaleleri Çok Yakında

Merhabalar,

www.mysqlsupport.net olarak sitemizde oracle da yerini alacaktır.
Üok yakında Oracle 10g ,Oracle 11g hakkında makelelere bu kategori altından
ulaşabileceksiniz.

Tayfur BÖLER
Database Administrator