C#nedir?com
 
YAZAR HAKKINDA
Kubilay Kulaoğlu
Kubilay Kulaoğlu
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
9 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: “init.ora” bellek bloklari dosyalarina dosyasindaki islemler isletim kontrol kullaniciya mantiksal oracle parametre paylasimli tabani veritabani ADO.NET/SQL Kubilay Kulaoğlu
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : ADO.NET/SQL
Yayınlanma Tarihi : 14.10.2004
Okunma Sayısı : 23866
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
Conda install environment.yml Package 12.12.2019
Turhal Temizer 'in Blogu
Mac OS/X Removing CUDA 12.12.2019
Burak Selim Şenyurt
Ruby Tarafından Redis(Docker Bazlı) Veritabanı ile Konuşmak 12.12.2019
Burak Selim Şenyurt
Bir React Uygulamasında En Ala SQL Veritabanını Kullanmak 12.12.2019
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
Oracle Ve İlişkisel Veritabanı Yönetim Sistemleri
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Makalenin yazımında ve sunduğu kaynaklardan dolayı Tevfik Oğurel’e teşekkür ederim. Bu makalemiz ve bunun ardından gelecek olanlarla birlikte Oracle Veritabanı Yönetim Sistemini nasıl kullanacağımızı öğreneceğiz.

Oracle Ve İlişkisel Veritabanı Yönetim Sistemleri

Oracle büyük miktardaki verilerin güvenli bir bütünlük içinde tutulabildiği , bilgilere hızlı erişim imkanının sağlandığı ve birden fazla kullanıcıya aynı anda bilgiye erişim imkanının sağlandığı bir ilişkisel veri tabanı yönetim sistemidir.

Oracle’ın temel özellikleri şunlardır.
• Büyük verileri tutabilmekte, bu verilerin depolanma alanlarını ayarlayabilme imkanı ve bunları kontrol etme imkanını vermektedir.
• Aynı anda birden fazla kullanıcıya (Oracle8, on binlerce kullanıcıya hizmet verebilmektedir) verilerin bütünlüğünü bozmadan ve karışıklığa meydan vermeden hizmet verebilmektedir.
• Sistem performansını en iyi şekilde kullanabilmektedir.
• Aralıksız olarak uzun süreli çalışabilmektedir.
• İşletim sistemi, veri erişim dilleri ve ağ (network) iletişim protokolleri standartlarıyla uyumludur.
• Yetkisiz erişimleri engelleyebilme ve kontrol edebilme imkanları sunabilmektedir.
• Bütünlüğü (integrity) veri tabanı düzeyinde sağlayabilmektedir, böylece daha az kod yazılmaktadır.
• İstemci/sunucu (client/server) mimarisinin bütün avantajlarını kullanabilmektedir.

Oracle veri tabanının, işletim sistemi tarafından bakıldığında, biri fiziksel, diğeri mantıksal olmak üzere iki bölümü vardır. Fiziksel bölüm veri dosyaları, kontrol dosyaları ve redo log dosyalarından oluşur. Tablo boşlukları (tablespace ), tablolar, indeksler, parçalar(segments), görüntüler (view), sıralar(sequence), saklı program parçaları (stored program units) , ve kullanıcılar ise veri tabanının mantıksal bölümünü oluşturur. Fiziksel işletim sistemi tarafından görülebilmesine rağmen , mantıksal bölüm ancak Oracle ‘a bağlanıp SQL çalıştırılarak görülebilir.
Oracle veri tabanında her nesnenin bir sahibi vardır. Her kullanıcının bir veya daha fazla tablo boşluğu olabilir. Bu tablo boşlukları ise bir veya daha fazla veri dosyasından oluşur. Sonuç olarak veri tabanındaki her nesne , mantıksal olarak , sahibine ait tablo boşluklarından birinin içersinde , fiziksel olarak da o tablo boşluğunun birinin içersinde bulunur. Bu nesneye işletim sisteminden doğrudan değil , komutlarla mantıksal olarak erişilebilir.


Instance Kavramı

Bir “instance” bellek yapıları (memory structures) , arka plandaki işlemler(background processes) , kullanıcı işlemleri (user processes) ve dosyalardan oluşur.
Bir “instance” başlatıldığında , SGA’de (System Global Area) bellek kısımları ayrılır ve arkaplandaki işlemler otomatik olarak çalışmaya başlar.

Bellek Yapıları

Oracle’da temel olarak iki bellek yapısı vardır. Bunlardan ilki SGA (System Global Area) , ikincisi ise PGA (Program Global Area) dir.

Sga (System Global Area)

SGA herhangi bir Oracle veri tabanı oturumu (database instance ) için gereken belleğe denir. Bu bellek işletim sisteminden alınır ve veri tabanı kapatılana kadar sadece Oracle tarafından kullanılır. SGA’de veri dosyalarından okunan veri blokları (database buffer cache) , kullanıcıya ait bilgiler , değişiklikler ara belleği (redo log buffers) ve paylaşımlı SQL bellek alanları (shared pool) bulunmaktadır.
Bu alanların büyüklükleri kullanılacak uygulamanın karakteristiğine göre veri tabanı yöneticisi tarafından yönetilir ve “init.ora” parametre dosyasına yazılır. Eğer veri tabanı yöneticisi bu değerleri gerektiğinden büyük veya gereğinden küçük verirse veri tabanının performansı düşer.
Paylaşımlı bellek alanları(shared pool): SQL ve PL/SQL cümleciklerinin metin olarak tutulduğu , anlamsal olarak değerlendirildiği(parse), hem de çalışma planlarının (execution plan çıkartıldığı bir bölümdür. Ayrıca “data dictionary cache” adı verilen ve veri tabanındaki tablo , görüntü ve indeksler hakkındaki istatiksel verileri bulunduran bilgi bütününü de yapısında bulundurur. Eğer paylaşımlı bellek alanı yeteri kadar büyük tutulmazsa , çalışan tüm SQL cümlelerinin tanımları ve çalışma planları bellekte bulunamadığından tekrar çıkarılması gerekir. Bu da SQL’in çalışma süresini uzatır. Paylaşımlı bellek alanının büyüklüğü “init.ora” parametre dosyasındaki “shared_pool_size”parametresi ile verilir.

Değişiklikler Ara Belleği (Redo Log Buffer): Veri tabanında yapılan değişikliklerin tutulduğu bir ara bellektir. Bellekteki bu bilgiler “commit” oldukça redo log dosyalarına yazılır. Bu log dosyaları veri tabanı kurtarılırken kullanıldığı için büyük önem taşır. Eğer değişiklikler ara belleği gereğinden küçük kalırsa . I/0 sayısı artar ,buda performansı düşürür. Değişiklikler ara belleğinin büyüklüğü de paylaşımlı bellek alanı gibi , “init .ora” dosyasındaki “log_buffer “ parametresi ile verilmektedir.
Okunan Veri Blokları(Data Buffer Cache): SQL komutları çalışırken ilgili veri tabanı blokları belleğe getirilir. İşte bu noktada en son kullanılan veri bloklarının bulunduğu bellek alanına okunan veri blokları denir. En son veri tabanı en sık kullanılan verileri içerdiği için disk I/0 ‘sunu önemli derecede azaltır veri tabanı performansı arttırır , bu nedenle boyutu yeteri kadar büyük tutulmalıdır. Gereğinden büyük tutulursa da , her defasında fazladan boş blokları okuyacağından performansı düşürür. Okunan veri bloklarının büyüklüğü , “init.ora” parametre dosyasındaki “db_block_size” x ”db_block_buffers” kadardır. “db_blok_size” parametresi gelişigüzel verilemez. , işletim sistemi blok boyuna eşit veya katları olmak zorundadır. Aynı anda kaç tane veri bloğu okunacağı ise “db_file_multiblock_read_count” parametresi ile belirlenmektedir. Bir seferde “db_multiblock_read_count” x”db_block_size” kadar bilgi veri dosyalarından okunmakta veri tabanı veri dosyalarına yazılmaktadır.
SGA ile ilgili dinamik veriler V$SYSSTAT görüntüleri yardımı ile alınabilir. Eğer performans ile ilgili değerler düşük çıkarsa , SGA’in büyüklüğü üzerinde oynama yapılarak veri tabanı iyileştirilebilir.

PGA

PGA ise bir kullanıcı veya bağlantı için ayrılan bellek alanıdır. PGA’yi kullanıcının yaptığı işlemler kullanmaktadır. Eğer PGA’in büyüklüğü yeteri kadar verilmezse , kullanıcılar çalışırken hata alabilirler. Bir kullanıcı için en az 2 MB’lık bellek alanı ayrılmalıdır.

Arka Plandaki İşlemler ( Background Processes )

Mutlak aktif olması gereken dört önemli işlem vardır. PMON , SMON , DBWR veri tabanı LGWR. Aktif olan diğer işlemler ise kullanıcının isteğine bağlı olarak çalıştırılır. Bunların en önemlileri CKPT veri tabanı ARCH dir.

PMON (Process Monitor)

Sistemi sürekli olarak kontrol eder veri tabanı kullanıcılarının başlattığı işlemlerin kesilmesi durumunda , işlemsel bazda kurtarma yapar , o işlemin kullandığı sistem kaynaklarını serbest bırakır.


SMON (System Monitor)

Bir “instance” başarısızlık ile sonuçlanmış ise veri tabanı açılırken “instance recovery”yaparak , veri tabanının sorunsuz çalışmasını sağlar. SMON aynı zamanda bir problem yaşanarak offline’a alınan tablo boşluklarınıda kurtararak , online’na getirir. Kullanılmayan geçici parçaları (tempory segments) temizler.

DBWR (Database Writer)

Okunan veri blokunda bulunan veri tabanı değişikliğe uğramış blokları , veri dosyalarına yazar. En son kullanılan veri , ilk olarak veri dosyasına yazılır.

LGWR (Log Writer)

Değişiklikler ara belleğindeki “commit” edilmiş girişleri eğer bellek dolmuş ise disk üzerindeki redo log dosyalarına yazar.

CKPT (Checkpoint)

Belirli zamanlarda DBWR değişikliğe uğrayan blokları veri dosyalarına yazar. CHPT belirli aralıklarla DBWR’yi uyararak yazmaya başlamasını sağlar. Bu aralıkların sıklığı “init.ora” parametre dosyasındaki “log_checkpoint_interval” parametresiyle ayarlanmaktadır. Bu parametredeki “transaction” sayısına her ulaşıldığında DBWR uyarılacak demektir.

ARCH (Archiver)

Dolan online redo log dosyalarının bir kopyasını alır. Bu dosyalar daha sonra veri tabanı kurtarılırken son ana geri dönülmesini sağlar. ARCH’nin aktif olması için veri tabanının arşiv modda olması gerekir.

Kullanıcı İşlemleri (User Processes)

Kullanıcıların çalıştırdığı Forms, Reports , Pro C , Visual Basic gibi uygulama programlarıdır. Bu programlar vasıtası ile veri tabanına SQL cümlecikleri gönderilir veri tabanı sonuçları alınır.
Veri tabanı üzerindeki maksimum işlem (process) sayısı “init.ora” parametre dosyasındaki “processes” parametresi ile verilmelidir. Eğer bu parametre default değerine bırakılırsa muhtemelen yetmeyecektir. Bu durumda yeni bir işlem başlatılamaz.

Instance ve Veritabanı Arasındaki Fark

“İnstance”, SGA veri tabanı arka plandaki işlemlerin bir bileşimidir. Bir “instance”, başlatıldığında, işletim sisteminde SGA için bellek ayrılır veri tabanı arka plandaki işlemler başlatılır. Bir veri tabanı ise sonradan, açılmış olan bu “instance” vasıtasıyla sisteme “mount”, edilir.

Kaynaklar

1. Oracle 8i Release Notes 3 (8.1.7), Oracle Corporation

2. Oracle Forms Developer’s Guide, Oracle Corporation

3. SQL Veri Tabanı Sorgulama Dili, Prof. Dr. Mithat Uysal , Beta Yayınları

4. Oracle- SQL, SQL*PLUS, PL/SQL Ve Veritabanı Yönetimi, O.N.Şen, Beta Yayınları

5. Data Modeling, NETG SB Courseware

6. Veri Modelleme Ve Algoritma Analizi, Seminer Notları

 




Makale:
Oracle Ve İlişkisel Veritabanı Yönetim Sistemleri ADO.NET ve SQL Kubilay Kulaoğlu
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor