SlideShare a Scribd company logo
1 of 42
BÖLÜM 5
REDO VE ROLLBACK
Cansu Arslan
Yalova Üniversitesi
mail@cansuarslan.com
I2i Systems-18/07/2016
FIZIKSEL VERITABANI YAPISI
Fiziksel yapıyı oluşturan 5 temel bileşen:
1. Data Dosyaları
2. Control Dosyaları
3. Redo Log Dosyaları
4. Archive Log Dosyaları
5. Parameter Dosyaları
VERİTABANI STANDARTLARI
 ACİD (Atomicity Consistency İsolation Durability)
Atomicity : Ya hep ya hiç kuralıdır.
Consistency : Veritabanında tutarlılık esastır.
İsolation : Bir operasyon tarafından yapılan
değişikliklerin, diğer işlemler tarafından
nasıl görüntülenmesi gerektiğini belirler.
Durability : Commit edilen işlemlerin veritabanına
yazıldığının ve kaybolmayacağının
garantisidir.
LOGLAMA YÖNTEMLERI
 ACID standartlarını sağlamak için;
Write Ahead Logging (Transactional Log) ve
Shadow Paging
isimli yöntemler kullanılmaktadır.
LOGLAMA YÖNTEMLERI
Write Ahead Logging (WAL), yapılacak islemlerin
öncelikli olarak bir log dosyasına yazılmasının
ardından, veritabanına ait dosyalara aktarılmasıdır.
WAL kavramı, Oracle’da online redo log olarak
geçmektedir.
Shadow Paging, veritabanına gerçek girişin
yapılmasından önce, kopyaya girişin yapılıp, ardından
gerçek değişikliğe gidilmesi olarak düşünülebilir.
REDO - REDO LOG DOSYALARI
 Türkçe, ‘Yinele’ anlamına gelir.
 Veritabanında yapılan COMMIT ile gerçekleşmiş
değişikliklerin kaydedildiği dosyalardır.
 Bu dosyalar kurtarma yapılırken kullanılır.Kurtarma
gereken durumlar neler?
 Oracle’ı iki tip redo log dosyası korur: Online ve
Arşivlenen.
 Bir veritabanı, en az iki veya daha fazla online redo log
dosyasından oluşur. Neden iki?
 Oracle ‘ın dezavantajlarından birisi Redo log
dosyalarının boyutunun iyi ayarlanamamasıdır.( 10 KB
mı, 10 GB mı?)
REDO – ONLINE REDO LOG DOSYALARI
 LGWR, iyice açarsak LOGWR yani logwriter.
 LGWR, log buffer ’ daki redo girdilerini, redo log
dosyalarına aktarmaktan sorumludur.
SGA
REDO - ONLINE REDO LOG DOSYALARI
REDO - ONLINE REDO LOG DOSYALARI
 Genellikle en az 3 dosya olması tavsiye edilir.
 Her bir Redo log’un switch etme süresinin 20
dk’dan az olmasına önem verilir, aksi halde
performans sıkıntısı yaşanacaktır.Bunlar
ayarlanabilir sürelerdir.
HANGI DURUMLARDA LGWR TETIKLENMEKTEDIR?
 Her 3 sn’de bir,
 Log buffer 1 MB olduğu zaman,
 Redo log buffer’ın 3’te 1’i dolduğu zaman,
 Herhangi bir işlem tamamlandığında(commit),
 Veritabanı checkpoint oluşturduğu zaman.
LGWR’nin çalışma prensibi ile ilgili değişiklik yapılamamaktadır.
COMMIT NE ZAMAN ÇALIŞTIRILIR?
 Bilinçli bir şekilde sistemden çıkış yaptığınızda
commit edilir.
 Oracle sunucularından disconnect olduğunuz
zaman yapılır.
 Bir DDL cümlesi çalıştırıldığı zaman yapılır.Hangi
komutlar DDL cümlesidir?
KOMUT ÇEŞITLERI
DDL DML DQL DCL Data
Administration
Commands
Transactional
Control
Commands
Create Table
Alter Table
Drop Table
Create index
.
.
.
Insert
Update
Delete
Select Alter
password
Grant
Revoke
Create
synonym
Start Audit
Stop Audit
Commit
Rollback
Savepoint
Set Transection
COMMIT-ÖRNEK (BILINCLI KAPATMA)
COMMIT –ÖRNEK –(DDL KOMUTU)
BIR COMMIT IŞLEM SÜRESININ INCELENMESI
BIR COMMIT IŞLEMI ILE;
 İşlemimiz için bir SCN( System Change Number)
oluşturulur.
 Ayrıca online redo log dosyaları içine SCN kaydeder.
 Bu adımda COMMIT edilir.Eğer bu adım oluşursa,
verileri garanti etmiş oluruz. Transaction girişi
kaldırılır.V$TRANSACTION kayboldu olarak
görünecektir.
 Oturumumuz tarafından tutulan bütün kilitler serbest
bırakılır ve kuyruktaki bekleyen kilitlerin herbiri serbest
bırakılır.
 Eğer buffer cache’de hala varsa, hızlı bir modda
‘cleaned out’ ve işlemimiz sırasında değiştirdiğimiz
blokların çoğuna ziyaret edilecek.
ROLLBACK NE ZAMAN ÇALIŞTIRILIR?
 Bilinçsiz bir şekilde yapılan ( Disk çökmesi,
elektrik kesintisi vs.) işlemler de rollback yapılır.
 ROLLBACK; komutu çalıştığı zaman yapılır.
 Bağlı olduğunuz oturum KILL edildiği zaman yapılır.
ROLLBACK –ÖRNEK –(ROLLBACK; KOMUTU)
ROLLBACK –ÖRNEK –(KILL KOMUTU)
BIR ROLLBACK IŞLEMI ILE;
 Yapılan değişikliklerin hepsini geri alırız.Yani bir
satır veri eklediysek, eklenen bir satırlık veriyi
sileceğiz.Tam tersi olabilir.
 Oturumumuz tarafından tutulan bütün kilitler
serbest bırakılır ve kuyruktaki bekleyen kilitlerin
herbiri serbest bırakılır.
COMMIT VE ROLLBACK İŞLEMLERİ İÇİN ZAMAN KIYASLAMASI
NE KADAR REDO OLUŞTURABILIRIM?
 Değiştiriyor olduğunuz verilerin ne kadar olduğunu
biliyorsanız, ne kadar redo oluşturacağınızı tahmin
etmek kolay olacaktır.Tahmin etme yöntemleri var
mı?
 Transaction boyutunu tahmin edin,yani ne kadar veriyi
değiştirdiğini.
 Değiştirmiş olduğunuz verilerin satır sayısına bağlı olarak
yüzde 10 ila 20 arasında ekleme yapın.
 UPDATE’ler için bu değeri ikiye katlayın.
REDO LOG OLUŞTURMAYI KAPATABILIR MIYIM?
 Bu soru sık sık sorulur.Kısa ve basit bir cevabımız
vardır: HAYIR 
GENEL BAKIŞ
ARCHIVE REDO LOG DOSYALARI
 Oracle database iki moddan birinde çalıştırılabilir:
Archivelog Mod,
Noarchivedlog Mod.
Select log_mode from v$database;
İle arşiv modumuzu öğreniriz.
VERITABANIMIZIN ARŞIV TIPINI ÖĞRENME
 Elapsed: 00:00:00.01 ifadesi daha önce set timing
on komutunun açılmasıyla oluşmaktadır.
ARCHIVE REDO LOG DOSYALARI
 Eğer NOARCHIVEDLOG modunda çalışıyorsak bu
kesinlikle veri kaybı yaşayacağımız anlamına
gelir.Online Redo Log dosyalarımızın
kaybolmamasına özen gösterilmesi gerekir.
 ARCHIVEDLOG modundaysanız, veri kaybı
yapmamak ve veri kaybı olsa dahi arşivlenen
verilerle kurtarabilirsiniz.ARCHIVEDLOG hem
backup dosyalarını hem de Online Redo
dosyalarını arşivler.Bunlar farklı fiziksel disklerde
tutulur ve disk arızası durumunda veriler kurtulur.
NOLOGGING VE LOGGING
 Oracle’da neredeyse her obje LOGGING
yaratılmaktadır.Bunun anlamı o objenin içinde bulunduğu
her işlemin bir redo log üretileceğidir.
 NOLOGGING ise obje üstünde yapılacak işlemlerin redo
log’u üretilmeyeceğini söyler.Direct path load olmayan
normal işlemler redo üretecektir.
 Direct Path Load nedir?
Buffer cache'i geç, diskten diske işlem yap demektir.
NOLOGGING VE LOGGING KOMUTLARI
 ARCHIVE LOG LIST; -- Özellikleri Listeler.
 ALTER SYSTEM ARCHIVE LOG START; --
Loglama başlatılır.
 ALTER SYSTEM ARCHIVE LOG STOP; --Loglama
durdurulur.
 ALTER SYSTEM ARCHIVE LOG ALL; --Zorla log
dosyalarını arşivle
 ALTER SYSTEM ARCHIVE LOG CURRENT; --
Zorla current log dosyalarını arşivle
LOG DURUMUNA GÖRE REDO LOG ÜRETIMI
REDO LOG OLARAK ARŞİVLEME
2.5 MB
NOLOGGING OLARAK ARŞIVLEME
50 KB
YENI BIR LOG AYRILAMAZ MI?
 Alert.log dosyasına aşağıdaki hatayı temsilen
karşılacağımız hata yazılacaktır:
YENI BIR LOG AYRILAMAZ MI?
ÇÖZÜM NE OLABİLİR?
 Daha hızlı DBWR yapın. Birden fazla DBWR kullanarak veya
DBWR I/O slaves kullanarak ASYNC I/O etkinleştirerek
ayarlayan DBA var.
Sistemdeki I/O lara baktığımızda, bir disk veya
diskler seti görüyorsanız, bu DBWR nin verileri
diske yazması dışarıya doğru uzar ve bu yüzden
çözüme ihtiyaç duymamız muhtemeldir.Bu ihtiyaçlar
ARCH içinde benzerdir.Bunun profesyonelliği burada
‘hiçbirşey için birşey’ mantığına dayanır.
Bu sayede, Mantık,yapılar ve kodda herhangi bir
değişiklik olmaksızın performans
arttırılabilir.Gerçekten bu yaklaşım olumlu sonuçlar
verecektir ve hızlanacaktır.
DAHA HIZLI DBWR YAPIN.
ÇÖZÜM NE OLABİLİR?
 Bu bazı durumlarda veya uzun bir süre olmayınca
gerçekleşecektir.Checkpoint’in tamamlanmasını
ertelemek çözüm olabilir.Aynı mesaj Archival içinde
geçerlidir.Bu çözümün faydası sistemdeki
duraklamaların çıkarılmasıdır.Bu çözüm DBWR için
yeterli seviyede bir rahatlık vermektedir.
CHECKPOINT ERTELEMEK.
 Checkpoint’i CKPT prosesi temsil etmektedir.
ÇÖZÜM NE OLABİLİR?
– REDO LOG DOSYALARININ SÜRESININ UZATILMASI
 Redo log dosyalarının boyutunu yeniden
oluşturmak da bir çözümdür.Online redo log
dosyalarının yinelenme süresinin uzatılması işe
yarayaracaktır.
ÇÖZÜM NE OLABİLİR?
– KÜÇÜK BIR BLOK BUFFER CACHE KULLANIMI
 Çok sık ve sürekli olan Checkpoint’e çözüm olarak;
Küçük bir blok buffer cache kullanın veya init.ora
ayarlarıyla değişiklikler yapın.
 Bu çok sık dirty blokları boşaltmak için DBWR
prosesini zorlayacaktır.Bu yaklaşım için profesyonel
yaklaşım, başarısızlık ile karşılaşıldığında kurtarma
süresi azaltılmıştır.
KAYNAKLAR
 http://docs.oracle.com/cd/B28359_01/server.111/b28310/onlinere
do001.htm
 Expert-one-on-one oracle Thomas Kyte
 https://emrahmete.wordpress.com/2012/01/29/oracle-
hafizabellek-terminolojisi/
 http://www.ysndmr.net/veritabanlari/oracle/
 http://nevzatkoldemir.blogspot.com.tr/2011/01/nologging-
operasyonlar.html
 https://anargodjaev.wordpress.com/2013/11/13/redologlar-ve-
yonetimi/
 http://www.cagataycebi.com/oracle/06_oracle_redologs.pdf
 http://aliatesh.blogspot.com.tr/2009/06/redo-log-ile-ilgili-birkac-
sey.html
 http://berkeoz1.blogspot.com.tr/2013/05/redo-log-yonetimi-2.html
 http://ozcan-yildirim.blogspot.com.tr/2011/09/oracle-yedekleme-
ve-kurtarma-temelleri.html

More Related Content

Viewers also liked

LKCE16 - Giving up control doesn't work, either! by Ilja Preuss
LKCE16 - Giving up control doesn't work, either! by Ilja PreussLKCE16 - Giving up control doesn't work, either! by Ilja Preuss
LKCE16 - Giving up control doesn't work, either! by Ilja PreussLean Kanban Central Europe
 
Dünyanın en i̇lginç 20 hayvanı
Dünyanın en i̇lginç 20 hayvanıDünyanın en i̇lginç 20 hayvanı
Dünyanın en i̇lginç 20 hayvanıbetül koca
 
Gamification design
Gamification designGamification design
Gamification designIlona Buchem
 
Evaluating the search experience: from Retrieval Effectiveness to User Engage...
Evaluating the search experience: from Retrieval Effectiveness to User Engage...Evaluating the search experience: from Retrieval Effectiveness to User Engage...
Evaluating the search experience: from Retrieval Effectiveness to User Engage...Mounia Lalmas-Roelleke
 
LKCE16 - Working Lean in an Agency Environment by Rob Jones
LKCE16 - Working Lean in an Agency Environment by Rob JonesLKCE16 - Working Lean in an Agency Environment by Rob Jones
LKCE16 - Working Lean in an Agency Environment by Rob JonesLean Kanban Central Europe
 
English basics for intermediate learners lesson 18
English basics for intermediate learners lesson 18English basics for intermediate learners lesson 18
English basics for intermediate learners lesson 18SkimaTalk
 
Positive Computing: Technology for wellbeing
Positive Computing: Technology for wellbeing Positive Computing: Technology for wellbeing
Positive Computing: Technology for wellbeing Dorian Peters
 
Tchibo Marka Sunumu
Tchibo Marka SunumuTchibo Marka Sunumu
Tchibo Marka Sunumuozgekurnaz
 
Tehdit mi? Fırsat mı? Kurumlar inovasyon ekosistemine nasıl hazırlanır? nasıl...
Tehdit mi? Fırsat mı? Kurumlar inovasyon ekosistemine nasıl hazırlanır? nasıl...Tehdit mi? Fırsat mı? Kurumlar inovasyon ekosistemine nasıl hazırlanır? nasıl...
Tehdit mi? Fırsat mı? Kurumlar inovasyon ekosistemine nasıl hazırlanır? nasıl...Berna Samiloglu Acar
 

Viewers also liked (10)

Git Watch
Git WatchGit Watch
Git Watch
 
LKCE16 - Giving up control doesn't work, either! by Ilja Preuss
LKCE16 - Giving up control doesn't work, either! by Ilja PreussLKCE16 - Giving up control doesn't work, either! by Ilja Preuss
LKCE16 - Giving up control doesn't work, either! by Ilja Preuss
 
Dünyanın en i̇lginç 20 hayvanı
Dünyanın en i̇lginç 20 hayvanıDünyanın en i̇lginç 20 hayvanı
Dünyanın en i̇lginç 20 hayvanı
 
Gamification design
Gamification designGamification design
Gamification design
 
Evaluating the search experience: from Retrieval Effectiveness to User Engage...
Evaluating the search experience: from Retrieval Effectiveness to User Engage...Evaluating the search experience: from Retrieval Effectiveness to User Engage...
Evaluating the search experience: from Retrieval Effectiveness to User Engage...
 
LKCE16 - Working Lean in an Agency Environment by Rob Jones
LKCE16 - Working Lean in an Agency Environment by Rob JonesLKCE16 - Working Lean in an Agency Environment by Rob Jones
LKCE16 - Working Lean in an Agency Environment by Rob Jones
 
English basics for intermediate learners lesson 18
English basics for intermediate learners lesson 18English basics for intermediate learners lesson 18
English basics for intermediate learners lesson 18
 
Positive Computing: Technology for wellbeing
Positive Computing: Technology for wellbeing Positive Computing: Technology for wellbeing
Positive Computing: Technology for wellbeing
 
Tchibo Marka Sunumu
Tchibo Marka SunumuTchibo Marka Sunumu
Tchibo Marka Sunumu
 
Tehdit mi? Fırsat mı? Kurumlar inovasyon ekosistemine nasıl hazırlanır? nasıl...
Tehdit mi? Fırsat mı? Kurumlar inovasyon ekosistemine nasıl hazırlanır? nasıl...Tehdit mi? Fırsat mı? Kurumlar inovasyon ekosistemine nasıl hazırlanır? nasıl...
Tehdit mi? Fırsat mı? Kurumlar inovasyon ekosistemine nasıl hazırlanır? nasıl...
 

Similar to Expert one-on-one Oracle / Redo ve Rollback

Dba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleriDba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleriZekeriya Besiroglu
 
KORELASYON GÖSTERMELİK DEĞİLDİR
KORELASYON GÖSTERMELİK DEĞİLDİRKORELASYON GÖSTERMELİK DEĞİLDİR
KORELASYON GÖSTERMELİK DEĞİLDİRErtugrul Akbas
 
Database Vault / Verinin Güvenliği
Database Vault /  Verinin GüvenliğiDatabase Vault /  Verinin Güvenliği
Database Vault / Verinin GüvenliğiAnar Godjaev
 
Yeni başlayanlar i̇çin Oracle 12c
Yeni başlayanlar i̇çin Oracle 12cYeni başlayanlar i̇çin Oracle 12c
Yeni başlayanlar i̇çin Oracle 12cÖzgür Umut Vurgun
 
SQL Server 2012 ile Gelen Yeni Özellikler
SQL Server 2012 ile Gelen Yeni ÖzelliklerSQL Server 2012 ile Gelen Yeni Özellikler
SQL Server 2012 ile Gelen Yeni Özelliklerturgaysahtiyan
 
Oracle database architecture
Oracle database architectureOracle database architecture
Oracle database architectureHızlan ERPAK
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMIErtugrul Akbas
 
Loglari nerede saklayalım?
Loglari nerede saklayalım?Loglari nerede saklayalım?
Loglari nerede saklayalım?Ertugrul Akbas
 
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdanOrneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdanAnar Godjaev
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20Cihan Özhan
 
6.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V26.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V2Ermando
 
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008mtcakmak
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19Cihan Özhan
 
Openbravo Gelişmiş Depo Operasyonları - Wiki
Openbravo Gelişmiş Depo Operasyonları - WikiOpenbravo Gelişmiş Depo Operasyonları - Wiki
Openbravo Gelişmiş Depo Operasyonları - WikiMehmet Demirel
 
Sql Server2008 Yenilikleri
Sql Server2008 YenilikleriSql Server2008 Yenilikleri
Sql Server2008 YenilikleriÇözümPARK
 

Similar to Expert one-on-one Oracle / Redo ve Rollback (20)

Dba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleriDba için oracle veritabanı 11g yeni özellikleri
Dba için oracle veritabanı 11g yeni özellikleri
 
KORELASYON GÖSTERMELİK DEĞİLDİR
KORELASYON GÖSTERMELİK DEĞİLDİRKORELASYON GÖSTERMELİK DEĞİLDİR
KORELASYON GÖSTERMELİK DEĞİLDİR
 
0439
04390439
0439
 
Database Vault / Verinin Güvenliği
Database Vault /  Verinin GüvenliğiDatabase Vault /  Verinin Güvenliği
Database Vault / Verinin Güvenliği
 
Yeni başlayanlar i̇çin Oracle 12c
Yeni başlayanlar i̇çin Oracle 12cYeni başlayanlar i̇çin Oracle 12c
Yeni başlayanlar i̇çin Oracle 12c
 
SQL Server 2012 ile Gelen Yeni Özellikler
SQL Server 2012 ile Gelen Yeni ÖzelliklerSQL Server 2012 ile Gelen Yeni Özellikler
SQL Server 2012 ile Gelen Yeni Özellikler
 
Cp Scom
Cp ScomCp Scom
Cp Scom
 
Oracle database architecture
Oracle database architectureOracle database architecture
Oracle database architecture
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
 
Loglari nerede saklayalım?
Loglari nerede saklayalım?Loglari nerede saklayalım?
Loglari nerede saklayalım?
 
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdanOrneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20
 
Oracle11g
Oracle11gOracle11g
Oracle11g
 
6.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V26.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V2
 
Php veritabani
Php veritabaniPhp veritabani
Php veritabani
 
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 
Riak ve RiakCS
Riak ve RiakCSRiak ve RiakCS
Riak ve RiakCS
 
Openbravo Gelişmiş Depo Operasyonları - Wiki
Openbravo Gelişmiş Depo Operasyonları - WikiOpenbravo Gelişmiş Depo Operasyonları - Wiki
Openbravo Gelişmiş Depo Operasyonları - Wiki
 
Sql Server2008 Yenilikleri
Sql Server2008 YenilikleriSql Server2008 Yenilikleri
Sql Server2008 Yenilikleri
 

Expert one-on-one Oracle / Redo ve Rollback

  • 1. BÖLÜM 5 REDO VE ROLLBACK
  • 3. FIZIKSEL VERITABANI YAPISI Fiziksel yapıyı oluşturan 5 temel bileşen: 1. Data Dosyaları 2. Control Dosyaları 3. Redo Log Dosyaları 4. Archive Log Dosyaları 5. Parameter Dosyaları
  • 4. VERİTABANI STANDARTLARI  ACİD (Atomicity Consistency İsolation Durability) Atomicity : Ya hep ya hiç kuralıdır. Consistency : Veritabanında tutarlılık esastır. İsolation : Bir operasyon tarafından yapılan değişikliklerin, diğer işlemler tarafından nasıl görüntülenmesi gerektiğini belirler. Durability : Commit edilen işlemlerin veritabanına yazıldığının ve kaybolmayacağının garantisidir.
  • 5. LOGLAMA YÖNTEMLERI  ACID standartlarını sağlamak için; Write Ahead Logging (Transactional Log) ve Shadow Paging isimli yöntemler kullanılmaktadır.
  • 6. LOGLAMA YÖNTEMLERI Write Ahead Logging (WAL), yapılacak islemlerin öncelikli olarak bir log dosyasına yazılmasının ardından, veritabanına ait dosyalara aktarılmasıdır. WAL kavramı, Oracle’da online redo log olarak geçmektedir. Shadow Paging, veritabanına gerçek girişin yapılmasından önce, kopyaya girişin yapılıp, ardından gerçek değişikliğe gidilmesi olarak düşünülebilir.
  • 7. REDO - REDO LOG DOSYALARI  Türkçe, ‘Yinele’ anlamına gelir.  Veritabanında yapılan COMMIT ile gerçekleşmiş değişikliklerin kaydedildiği dosyalardır.  Bu dosyalar kurtarma yapılırken kullanılır.Kurtarma gereken durumlar neler?  Oracle’ı iki tip redo log dosyası korur: Online ve Arşivlenen.  Bir veritabanı, en az iki veya daha fazla online redo log dosyasından oluşur. Neden iki?  Oracle ‘ın dezavantajlarından birisi Redo log dosyalarının boyutunun iyi ayarlanamamasıdır.( 10 KB mı, 10 GB mı?)
  • 8. REDO – ONLINE REDO LOG DOSYALARI  LGWR, iyice açarsak LOGWR yani logwriter.  LGWR, log buffer ’ daki redo girdilerini, redo log dosyalarına aktarmaktan sorumludur. SGA
  • 9. REDO - ONLINE REDO LOG DOSYALARI
  • 10. REDO - ONLINE REDO LOG DOSYALARI  Genellikle en az 3 dosya olması tavsiye edilir.  Her bir Redo log’un switch etme süresinin 20 dk’dan az olmasına önem verilir, aksi halde performans sıkıntısı yaşanacaktır.Bunlar ayarlanabilir sürelerdir.
  • 11. HANGI DURUMLARDA LGWR TETIKLENMEKTEDIR?  Her 3 sn’de bir,  Log buffer 1 MB olduğu zaman,  Redo log buffer’ın 3’te 1’i dolduğu zaman,  Herhangi bir işlem tamamlandığında(commit),  Veritabanı checkpoint oluşturduğu zaman. LGWR’nin çalışma prensibi ile ilgili değişiklik yapılamamaktadır.
  • 12. COMMIT NE ZAMAN ÇALIŞTIRILIR?  Bilinçli bir şekilde sistemden çıkış yaptığınızda commit edilir.  Oracle sunucularından disconnect olduğunuz zaman yapılır.  Bir DDL cümlesi çalıştırıldığı zaman yapılır.Hangi komutlar DDL cümlesidir?
  • 13. KOMUT ÇEŞITLERI DDL DML DQL DCL Data Administration Commands Transactional Control Commands Create Table Alter Table Drop Table Create index . . . Insert Update Delete Select Alter password Grant Revoke Create synonym Start Audit Stop Audit Commit Rollback Savepoint Set Transection
  • 16. BIR COMMIT IŞLEM SÜRESININ INCELENMESI
  • 17. BIR COMMIT IŞLEMI ILE;  İşlemimiz için bir SCN( System Change Number) oluşturulur.  Ayrıca online redo log dosyaları içine SCN kaydeder.  Bu adımda COMMIT edilir.Eğer bu adım oluşursa, verileri garanti etmiş oluruz. Transaction girişi kaldırılır.V$TRANSACTION kayboldu olarak görünecektir.  Oturumumuz tarafından tutulan bütün kilitler serbest bırakılır ve kuyruktaki bekleyen kilitlerin herbiri serbest bırakılır.  Eğer buffer cache’de hala varsa, hızlı bir modda ‘cleaned out’ ve işlemimiz sırasında değiştirdiğimiz blokların çoğuna ziyaret edilecek.
  • 18. ROLLBACK NE ZAMAN ÇALIŞTIRILIR?  Bilinçsiz bir şekilde yapılan ( Disk çökmesi, elektrik kesintisi vs.) işlemler de rollback yapılır.  ROLLBACK; komutu çalıştığı zaman yapılır.  Bağlı olduğunuz oturum KILL edildiği zaman yapılır.
  • 21. BIR ROLLBACK IŞLEMI ILE;  Yapılan değişikliklerin hepsini geri alırız.Yani bir satır veri eklediysek, eklenen bir satırlık veriyi sileceğiz.Tam tersi olabilir.  Oturumumuz tarafından tutulan bütün kilitler serbest bırakılır ve kuyruktaki bekleyen kilitlerin herbiri serbest bırakılır.
  • 22. COMMIT VE ROLLBACK İŞLEMLERİ İÇİN ZAMAN KIYASLAMASI
  • 23. NE KADAR REDO OLUŞTURABILIRIM?  Değiştiriyor olduğunuz verilerin ne kadar olduğunu biliyorsanız, ne kadar redo oluşturacağınızı tahmin etmek kolay olacaktır.Tahmin etme yöntemleri var mı?  Transaction boyutunu tahmin edin,yani ne kadar veriyi değiştirdiğini.  Değiştirmiş olduğunuz verilerin satır sayısına bağlı olarak yüzde 10 ila 20 arasında ekleme yapın.  UPDATE’ler için bu değeri ikiye katlayın.
  • 24. REDO LOG OLUŞTURMAYI KAPATABILIR MIYIM?  Bu soru sık sık sorulur.Kısa ve basit bir cevabımız vardır: HAYIR 
  • 26. ARCHIVE REDO LOG DOSYALARI  Oracle database iki moddan birinde çalıştırılabilir: Archivelog Mod, Noarchivedlog Mod. Select log_mode from v$database; İle arşiv modumuzu öğreniriz.
  • 27. VERITABANIMIZIN ARŞIV TIPINI ÖĞRENME  Elapsed: 00:00:00.01 ifadesi daha önce set timing on komutunun açılmasıyla oluşmaktadır.
  • 28. ARCHIVE REDO LOG DOSYALARI  Eğer NOARCHIVEDLOG modunda çalışıyorsak bu kesinlikle veri kaybı yaşayacağımız anlamına gelir.Online Redo Log dosyalarımızın kaybolmamasına özen gösterilmesi gerekir.  ARCHIVEDLOG modundaysanız, veri kaybı yapmamak ve veri kaybı olsa dahi arşivlenen verilerle kurtarabilirsiniz.ARCHIVEDLOG hem backup dosyalarını hem de Online Redo dosyalarını arşivler.Bunlar farklı fiziksel disklerde tutulur ve disk arızası durumunda veriler kurtulur.
  • 29. NOLOGGING VE LOGGING  Oracle’da neredeyse her obje LOGGING yaratılmaktadır.Bunun anlamı o objenin içinde bulunduğu her işlemin bir redo log üretileceğidir.  NOLOGGING ise obje üstünde yapılacak işlemlerin redo log’u üretilmeyeceğini söyler.Direct path load olmayan normal işlemler redo üretecektir.  Direct Path Load nedir? Buffer cache'i geç, diskten diske işlem yap demektir.
  • 30. NOLOGGING VE LOGGING KOMUTLARI  ARCHIVE LOG LIST; -- Özellikleri Listeler.  ALTER SYSTEM ARCHIVE LOG START; -- Loglama başlatılır.  ALTER SYSTEM ARCHIVE LOG STOP; --Loglama durdurulur.  ALTER SYSTEM ARCHIVE LOG ALL; --Zorla log dosyalarını arşivle  ALTER SYSTEM ARCHIVE LOG CURRENT; -- Zorla current log dosyalarını arşivle
  • 31. LOG DURUMUNA GÖRE REDO LOG ÜRETIMI
  • 32. REDO LOG OLARAK ARŞİVLEME 2.5 MB
  • 34. YENI BIR LOG AYRILAMAZ MI?  Alert.log dosyasına aşağıdaki hatayı temsilen karşılacağımız hata yazılacaktır:
  • 35. YENI BIR LOG AYRILAMAZ MI?
  • 36. ÇÖZÜM NE OLABİLİR?  Daha hızlı DBWR yapın. Birden fazla DBWR kullanarak veya DBWR I/O slaves kullanarak ASYNC I/O etkinleştirerek ayarlayan DBA var. Sistemdeki I/O lara baktığımızda, bir disk veya diskler seti görüyorsanız, bu DBWR nin verileri diske yazması dışarıya doğru uzar ve bu yüzden çözüme ihtiyaç duymamız muhtemeldir.Bu ihtiyaçlar ARCH içinde benzerdir.Bunun profesyonelliği burada ‘hiçbirşey için birşey’ mantığına dayanır. Bu sayede, Mantık,yapılar ve kodda herhangi bir değişiklik olmaksızın performans arttırılabilir.Gerçekten bu yaklaşım olumlu sonuçlar verecektir ve hızlanacaktır.
  • 37. DAHA HIZLI DBWR YAPIN.
  • 38. ÇÖZÜM NE OLABİLİR?  Bu bazı durumlarda veya uzun bir süre olmayınca gerçekleşecektir.Checkpoint’in tamamlanmasını ertelemek çözüm olabilir.Aynı mesaj Archival içinde geçerlidir.Bu çözümün faydası sistemdeki duraklamaların çıkarılmasıdır.Bu çözüm DBWR için yeterli seviyede bir rahatlık vermektedir.
  • 39. CHECKPOINT ERTELEMEK.  Checkpoint’i CKPT prosesi temsil etmektedir.
  • 40. ÇÖZÜM NE OLABİLİR? – REDO LOG DOSYALARININ SÜRESININ UZATILMASI  Redo log dosyalarının boyutunu yeniden oluşturmak da bir çözümdür.Online redo log dosyalarının yinelenme süresinin uzatılması işe yarayaracaktır.
  • 41. ÇÖZÜM NE OLABİLİR? – KÜÇÜK BIR BLOK BUFFER CACHE KULLANIMI  Çok sık ve sürekli olan Checkpoint’e çözüm olarak; Küçük bir blok buffer cache kullanın veya init.ora ayarlarıyla değişiklikler yapın.  Bu çok sık dirty blokları boşaltmak için DBWR prosesini zorlayacaktır.Bu yaklaşım için profesyonel yaklaşım, başarısızlık ile karşılaşıldığında kurtarma süresi azaltılmıştır.
  • 42. KAYNAKLAR  http://docs.oracle.com/cd/B28359_01/server.111/b28310/onlinere do001.htm  Expert-one-on-one oracle Thomas Kyte  https://emrahmete.wordpress.com/2012/01/29/oracle- hafizabellek-terminolojisi/  http://www.ysndmr.net/veritabanlari/oracle/  http://nevzatkoldemir.blogspot.com.tr/2011/01/nologging- operasyonlar.html  https://anargodjaev.wordpress.com/2013/11/13/redologlar-ve- yonetimi/  http://www.cagataycebi.com/oracle/06_oracle_redologs.pdf  http://aliatesh.blogspot.com.tr/2009/06/redo-log-ile-ilgili-birkac- sey.html  http://berkeoz1.blogspot.com.tr/2013/05/redo-log-yonetimi-2.html  http://ozcan-yildirim.blogspot.com.tr/2011/09/oracle-yedekleme- ve-kurtarma-temelleri.html

Editor's Notes

  1. Neden iki? archivelog seklinde çalısıyorsanız, redo log dosyalarından bir tanesi kullanılırken diğeri arsive çıkılabilsin diyedir. Böylece her zaman çalısabilir olmayı sağlar. (Gerçi asırı yoğun bir sistemde sadece iki adet redo log kullanıyorsanız, "Thread 1 cannot allocate new log, sequence #" seklinde sık sık hata alırsınız. Çünkü redo log’ların arsive çıkması için yeterli zaman olmayacaktır.)