2- Oracle Files

Oracle Eğitimleri - Oracle Files

Bu bölümde temel dosya türlerini inceleyeceğiz. Bir instance’da temel olarak şu dosyalar mevcuttur:

Parameter Files: Bu dosya türü, Oracle instance’a control file’ın nerede tutulduğunu, başlangıç anında yapılması gereken yükleme ve bellek miktarını, block_size gibi bilgileri üzerinde barındırır.

Trace Files: Bu dosyalar genelde hata durumu gibi istisnai bilgilerin saklandığı dosyalardır. Oracle’dan destek alınacağı zaman soruna dair iletilen dosyalar trace file’lardır.

Alert Files: Bu dosya türü de trace file’lara benzer. Amacı sistemin çalışması esnasında oluşan hataları saklar ve DBA’ler için uyarı verilmesini sağlar.

Database’i oluşturan dosyalar:

Data Files: Bu dosya türünde database için tablo, index gibi verileri tutan data segment dosyalarıdır.

Temp Files: Bu dosyalar disk üzerinde yapılacak sort (sıralama) işlemleri ve temp verilerin saklanması için kullanılır.

Control Files: Bu dosyalarda data files, temp files ve redo log files dosyalarının yerlerini tutar ve tablespace’ler ile ilgili meta datalar burada saklanır. Ayrıca RMAN tarafından yapılan backup ve recovery meta dataları da burada tutulur.

Redo Log Files: Burada yalnızca transaction log’lar tutulur.

Password Files: Oracle’da kimlik doğrulama işlemi için kullanıcı bilgilerinin tutulduğu dosyadır.

Oracle 10g ve üzerinde yeni gelen bir özellik olarak hızlı yedekleme ve veri kurtarma işlemlerini kolaylaştırmak için iki yeni dosya türü gelmiştir:

Change – Tracking File: Bu dosya Oracle üzerinde gerçek artırımlı veri yedekleme işlemini kolaylaştırmaktadır. Bunun için dosyanın Flash Recovery Area (FRA) içinde bulunması gerekmez.

Flashback Log Files: Bir transaction yapıldığında verilerin imajı önce bu dosyaya kopyalar, ardından işlemleri yapar. Böylece drop edilen bir table’ı dahi geri döndürebilmek mümkündür (elbette alanın büyüklüğü yeterliyse.). Flashback Database komutu bu dosyalardan döndürülen verileri yükleme yapar.

Ayrıca yaygın kullanılan database dosya türlerine bakmak gerekir:

Dump (DMP) Files: Bu dosyalar export database utility tarafından üretilir ve import database utility tarafından kullanılır.

Data Pump Files: Bu dosyalar data pump export process’i tarafından üretilir ve data pump import process’i tarafından kullanılır. Ayrıca bu dosyalar extarnal table olarak da kullanılabilir.

Flat Files: Bunlar text editörler tarafından görüntülenebilir eski bir dosya türüdür. Table’lara dışarından bir insert işlemi yapılacaksa bu dosya türü tercih edilmelidir.

Bu dosyalar içerisinde en önemlileri Data File ve Redo Log File’lardır. Çünkü veriler bu dosyalar içerisinde saklanırlar. Diğer dosya türleri kaybedilse de verilere herhangi bir şey olmaz. Eğer yalnızca Redo loglar giderse verilerin bir kısmı kaybedilmiş olur; ama bununla birlikte data file’da giderse artık veriler tamamen kaybedilmiş olur.

Şimdi yukarıda listelediğimiz dosya türlerini biraz daha derinlemesine inceleyelim.

Parameter Files

Oracle database üzerinde birçok farklı parameter file kullanılmaktadır. Örneğin tnsnames.ora (ağ üzerinde sunucu bulmak için kullanılır), listener.ora (network üzerindeki listener’ları başlatmak için kullanılır), sqlnet.ora (client tarafından ağ parametrelerini tutar), cman.ora (Connection Manager parametrelerini tutar) gibi çeşitli parametre dosyaları mevcuttur.

Bir database için parametre dosyaları genelde bir init dosyası veya init.ora dosyası olarak bilinir. Bu dosyanın ismi varsayılan olarak init.ora’dır. Bir sunucu içinse parametre dosyası veya diğer bir isimle SPFILE kullanılır. Bunun da varsayılan olarak ismi SPFILE.ora’dır.

Parametre dosyaları olmadan database’i başlatamazsınız. Bu parametre dosyalarını önemli kılan özellikle Oracle 9i R2 ve üzerinde gelen RMAN backup ve recovery yöneticisinin kullanmasından gelir. init.ora dosyasını arar. Eğer yoksa herhangi bir text editör ile de oluşturabilirsiniz, çünkü bildiğiniz anlamda düz bir text dosyadan ibarettir. Eğer parametre dosyası eksik ise bu log dosyalarında belirtilir ve size iletilir.

Şimdi örnek olması için bir database parameter file’a göz atalım:

Parametreler Nedir?

En basit haliyle bir database parametresi key / value (anahtar/değer) çifti olarak düşünülebilir. Instance parametrelerini görebilmek için bir v$ view olan v$parameter sorgulanabilir. Ayrıca Show parameter komutu ile görüntüleyebiliriz:

İki tür sorgulama da bize aynı çıktıyı vermektedir, ikisinden dilediğinizi kullanabilirsiniz. Tabii bu sorguyu yürütebilmek için DBA yetkilerine sahip olmanız gerektiğini unutmayın.

Init.ora Parameter Files

Init.ora parametre dosyasında da yapı yine key / value şeklindedir. Temelde bir init.ora dosyasının içeriği şu şekilde görülür:

Birçok durumda bu parametre dosyasına bir şeyler eklemek zorunda kalabilirsiniz. Böyle bir durumda:

ile bir parametre dosyası eklemiş olduk. Burada IFILE, bir include gibi işlem görmektedir, yani eklenen dosya içeriği init.ora dosyası okunurken anında işletilir. Elbette dosyanın belli bir yerde olması gerekmiyor, herhangi bir yerde bulunabilir. Instance başlatılırken init.ora dosyası okunur ve gerekli işlemler yapılır.

Init.ora dosyası instance ilk açıldığında sistemin parametrelerini tuttuğu için kalıcı değişiklik yapılmak istenen değerler buradan değiştirilirse kolaylık sağlayacaktır; ama her zaman bir kopyasını tutmanızı tavsiye ederim, daha sonra sıkıntı yaşamamak adına bu tedbiri almak önemlidir.

SPFILE (Server Parameter File)

SPFILE, Oracle instance tarafından korunan parametrelerin köklü değişimini sağlar. Bir SPFILE, eski parametre dosyaları ile ilgili iki ciddi problemi ortadan kaldırır:

  • Parametre dosyasının çoğalmasını durdurur. Bir SPFILE her zaman database sunucu üzerinde bulunmalıdır, client üzerinde olması bir anlam ifade etmez. Bu dosya parametre dosyalarını tek bir gerçek kaynağa indirger.
  • Bir parametre silme ihtiyacını rahatlıkla karşılar. ALTER SYSTEM komutunu doğrudan SPFILE içine yazmak da mümkündür. Ayrıca bir text editörle rahatlıkla düzenlenebilmektedir.

Default isimlendirmesi spfile.ora’dır. Bulunduğu yer base directory’dir yani bizim sistemimize göre /home/oracle11gr2/orcl.

SPFILE’ı varsayılan konumunda tutmanızı şiddetle öneririm. Eğer değiştirilirse her instance başlatıldığında otomatik olarak işletildiği için her seferinde yeri aranması ve bazı sorunların baş göstermesi olasıdır, bu yüzden varsayılanın dışına çıkmamanız önemlidir.

SPFILE’a Dönüştürmek

Elimizde eski bir parametre dosyasını kullanan Oracle instance olduğunu varsayalım. Bunu SPFILE’a dönüştürmek istiyoruz. Öncelikle SPFILE’ımız var mı kontrol edeceğiz, yoksa create edeceğiz ve sonra instance’ımızı restart edeceğiz.

SPFILE’ımızın olmadığını gördük. Şimdi create edeceğiz:

Gördüğünüz gibi hata aldık. Çıktıdan da anlayacağınız gibi SPFILE oluşturmaya yetkimiz olmadığını söylüyor. Biz DBA olarak oturum açtığımız halde SPFILE gibi önemli bir dosyayı oluşturmak için yeterli yetkiye sahip değiliz. Bu yüzden yeterli yetkiye sahip kullanıcı ile giriş yapmalı ve sonra instance’ı kapatıp yeniden açmalıyız:

Gördüğünüz gibi SPFILE create edebilmek için SYSOPER rolü ile login oldum. SYSOPER rolünün yetkisi yalnızca parametre dosyalarını yönetmek, instance’ı start ve stop edebilmektir, daha fazlasını yapamaz. Bu Oracle’ın güvenlik politikaları ile alakalıdır.

SPFILE Değerlerinin Değiştirilmesi

Bir SPFILE create etmeyi gördük, şimdi bu dosya içindeki değerlerin değiştirilmesini görelim. Bu değiştirme text editörle yapılabileceği gibi SQL*Plus üzerinden de değiştirilebilir. Syntax şu şekildedir:

ALTER SYSTEM SET komutu instance üzerinde yapılacak değişikliği SPFILE’a yansıtacaktır. Komutun elemanlarına bakalım:

parameter=value, parametre değiştirilecek olan parametre adını, value ise yeni değeri simgeler. Örneğin parametremiz pga_aggregate_target olsun, value ise 1024M (pga_aggregate_target=1024M).

comment=’text’ opsiyoneldir, yaptığınız işlemle ilgili bir bilgiyi tutmak, sonra anımsamak için faydalı olabilir.

deferred, gelecek oturumlar için değerin değiştirildiğini belirtir, mevcut oturumlar durumunu korur.

Örnek bir değiştirme yapalım:

Set ettiğimiz bir değeri kaldırmak için ise şu söz dimini kullanabiliriz:

Örnek vermek istersek:

Trace File

Trace dosyaları birer izleme kaynağıdır, database üzerinde gerçekleşen hatalı olaylar bu dosyalara kaydedilirler. DBMS_MONITOR.SESSION_TRACE_ENABLE komutunu execute (işletmek – çalıştırmak) ettiğinizde sunucu performansı ile ilgili bilgiler bir trace file’a kaydedilir. Özelikle geliştiricilerin kodlarını yazdıktan sonra bir trace işlemini başlatması sonucunda işletilen kodun performansı hakkında çok ciddi fikirler verecektir. Trace file dışında da bize faydalı bilgiler sağlayan başka objelerde mevcuttur:

  • V$ view’ler. En çok hata ayıklama için kullanılanlar v$waitstat, v$session_event view’leri kernel üzerinde gerçekleşen işlemler hakkında bilgi vermektedir.
  • AUDIT komutu, database üzerinde gerçekleşen kayıt işlemleri sonrasındaki olaylar hakkında bilgi verir.
  • Resource Manager (DBMS_RESOURCE_MANAGER), CPU, I/O gibi önemli kaynaklarda neler gerçekleştiği hakkında bilgiler sağlar. Runtime (Çalışma zamanı) bilgiler sağladığı için özellikle test anında kaynaklardaki durumu görüntülemek çok faydalı olacaktır.
  • Events (Olaylar) kısmında ise trace ve diagnostik olaylar kaydedilir.
  • DBMS_TRACE, PL/SQL engine’deki stored procedure’lerde oluşan exceptionları (İstisna) ve hatalarını kayıt altına alır.
  • Database Event Trigger, On ServerError hata durumunda tetiklenirler. Örneğin PL/SQL kodu işlettiğinizde “out of space” hatası aldığınızda anında database event triggerlar tetiklenir ve olaylar kayıt altına alınırlar.
  • DBMS_MONITOR, SQL işlemleri yürütülürken performans ve arka planda gerçekleşen olaylarla ilgili bilgiler sağlar. SQL trace ile ilgili geniş bilgi için 10046 Oracle evente bakılabilir.

Örnek bir trace oluşturmak istersek (10046 eventi için oluşturacağız):

Bu trace file’lar benzersiz bir bilgi sağlar, bu sayede verimli kod yazmak, optimizasyon yapmak oldukça kolaylaşır. DBMS_MONITOR, SQL_TRACE kullanırsak Oracle bize iki tür trace file’dan birini üretecektir:

  • Eğer dedicated server kullanıyorsanız user_dump_dest parametresinde adresi belirtilen trace dosyasını kayıt edecektir.
  • Eğer shared_server kullanıyorsanız background_dump_dest parametresinde adresi belirtilen dosyaya kayıt edecektir.

Adreslerini görebilmek için:

Alert File

Alert file aynı zamanda alert log olarak da bilinir. Database’in oluşturulduğu andan itibaren işlemleri kayıt eder. Herhangi bir hata, tablespace yaratılması, offline mode’a düşmesi gibi birçok durum alert file’a kayıt edilir.

Data Files

Data files ve redo log file dosyaları database için oldukça iki önemli dosya türüdür, çünkü veriler sonuçta bu dosyalarda saklanırlar. Bir database içinde en az bir data file bulunur ki normal bir sistemde bu onlarca olacaktır.

Oracle Mimarisine Giriş bölümünde hatırlıyorsanız CREATE DATABASE komutunu kullanmıştık. Bu komutu kullandığımızda otomatik olarak Database için önemli olan 3 sistem tablespace’i oluşturuldu. Bunlar:

  • SYSTEM tablespace (Oracle Data Dictionary).
  • SYSAUX tablespace (Oracle Data Dictionary’de yer almayan ek bileşenler bu tablespace ile yüklenir ve oldukça önemlidir).
  • USER tablespace.

Herhangi bir database create edildiğinde muhakkak bu 3 tablespace oluşturulacaktır. Şimdi kısaca sistem dosya türlerini ele alıp daha sonra database içerisindeki mekanizmaya değineceğiz. Bunun içinde tablespace, segment, extent ve block kavramlarına değineceğiz. Böylece database yapısı hakkında bilgi edinmiş olacağız.

File System Mekanizması

Oracle’da data saklamak için 4 dosya sistemi mekanizması vardır. Tarafınızdan girilen veriler ki buna data dictionary denmektedir, Redo, Undo, Table, Index, LOB’larda saklanmaktadır ve bunlarda File System yapısına göre yerleştirilirler. Kısaca değinecek olursak:

Cooked OS (Operating System) File System: Bu dosya sisteminde yapı kelime işlemci gibi çalışmaktadır. Windows işletim sisteminde dosya gezgini ile bu dosyaları görebilirsiniz, yine Linux’ta da “ls” komutu ile bu data dictionary’leri görmeniz mümkündür. Hatta bu data dictionary’leri bir yerden başka bir yere kopyalamanız da mümkündür. Şu anda Oracle database’de en çok kullanılan yapı olmasına karşın ASM sistemini kullanmak daha makul ve mantıklı bir yaklaşım olacağı kanısındayım.

Raw Partitions: Bu yapıda bir dosya yoktur, ham haldedir. Ne “ls” komutu ile Linux’ta listeleyebilirsiniz ne de dosya gezgini ile Windows’ta. Tüm işlenmemiş ham alan Oracle üzerinde bulunur ve veri geldiği zaman şekillendirilir. Cooked sistemin tam aksidir yani. Raw partition’da buffer (tampon) bulunmaz, bu sebeple tüm I/O işlemleri disk üzerinde gerçekleşir.

ASM (Automatic Storage Management): ASM, Oracle 10g R1 (Enterprise sürümü ile birlikte geliyor) ile ilk defa hayatımıza girdi. Bu sistem sadece database tarafından storage (Disk)’in kullanılması için tasarlanmış özel bir yapıdır. Bir veritabanı dosya sistemi gibi düşülebilir. ASM’de tüm database alt yapısı için gerekli yapı düzenlenir. Sadece data file’lar tutulmaz, bunun yanında redo, undo, log file’lar ve tablespace’ler ile birlikte, backup, control file, archive log’lar kısaca tüm dosya yapısı Oracle için özenle dizayn edilir. ASM tek bir sunucu (bilgisayar) üzerinde çalışacak şekilde tasarlanmıştır. Bunun yanında cluster file sistem içinde ASM kullanılabiliyor. Şu anda ağırlıkla Oracle bu sistemin kullanılmasını öneriyor.

Clustered File System: Bu dosya sistemi RAC için spesifik olarak tasarlanmıştır. Birden fazla sunucu (bilgisayar) tarafından paylaşılan ve Cooked OS File System gibi görünen bir yapıdır. Özelikle Windows / Unix sunuculardan oluşan bir cluster (küme, topluluk) yapısında dosya paylaşımını sağlıyordu; ama günümüzde bu durum hatalara neden olabilmektedir. Örneğin paylaşılan dosya sisteminde, dosyayı oluşturan owner (Sahibi) sunucuda bir fail oluşursa bu diğer sunucuları da etkileyecek ve sistem fail (Hata, çökme) olabilecektir. Oracle 11g R2 sürümünden sonra OCFS’yi (Oracle Cluster File System) geliştirdi ve bu sadece Windows ve Linux arasında cluster yapısını destekleyecek şekilde tasarlandı. Şu anda OCFS kullanılabilir durumdadır; fakat Oracle bir başka güzel seçenek daha sunmaktadır: ACFS (ASM Cluster File System). Bu yapıda Cooked Os File System’in rahatlığını getirmektedir.

Oracle Database’de Storage Hiyerarşisi

Bir database çok sayıda tablespace’den oluşur. Tablespace storage hiyerarşisinde en üst mantıksal depolama alanıdır. Bir tablespace birden çok segmentten oluşur:

Segment’ler: Segmentler, tablespace içinde en büyük yeri tutmaktadır. Temel olarak database objeleri segmentler içinde yer alır (Table, index, undo gibi). Bir tablo oluşturulduğunda aslında bir tablo segmenti oluşturmuş olursunuz. Aynı şekilde partition table oluşturduğunuzda da aslında partition başına bir segment yaratmış olursunuz. Yine bir dizi oluşturduğunuzda yine bir dizi segmenti oluşturmuş olursunuz. Tüm bu segmentler yine bir segmentin içinde yer alır. Anlaşılacağı üzere tablespace’in içinde redo segmenti, table segmenti, index segmenti gibi segmentler bulunurlar.

Extent’ler: Bir segment bir veya daha fazla sayıda extent’ten oluşur. Extent’ler, mantıksal olarak segment içinde ardışık sırayla oluşturulurlar. Sırayla oluşturulduğu içinde birbiriyle ilişkili extent’ler farklı yerlerde bulunabilirler, bu yüzden de Windows’taki defragment işlemine benzer bir işlem de ara sıra yapılır.  Genel olarak bir segment bir extent ile oluşur, bazı yapılarda iki de olabilir (rollback segmenti). Oracle 11g R2 sürümü ile deferred segment kavramı geldi, yani bir insert anında extent’ler hemen oluşturulmaz, daha sonra oluşturulur. Bir obje büyümeye çalıştığında mevcut extent’in yanına bir extent daha eklenerek büyüme sağlanır. Oracle’da bir extent bloğu en fazla 2 GB büyüklüğünde olabilir.

Block’lar: Bir extent, bir veya daha fazla sayıda block’tan oluşur. Bir block, Oracle’ın ayırdığı en küçük alandır. Blocklarda, data row, index veya temp üzerinde sort edilmiş result saklanır. Oracle genel olarak block’ları diskten okur veya diske yazar. Oracle’da block’ların size’ı şöyle olabilir: 2, 4, 8, 16, 32 KB olabilir. Block size kurulumda belirlenen bir özelliktir, elbette işletim sistemine göre sınırları vardır. Genel olarak 8 KB veya altı OLTP (OnLine Transactional Processing) sistemler için tavsiye edilirken, 16 ve 32 KB Warehouse için tavsiye edilmektedir.

Segment, extent ve block’lar arasındaki ilişki şekilde görülmektedir:

Segment, Extent, Block
Segment, Extent, Block

Resim Kaynak: Oracle7 Consepts Manuel https://docs.oracle.com/cd/A57673_01/DOC/server/doc/SCN73/image009.gif

Database üzerinde oluşturulacak block size sabit olduğu için bir tablespace yaratılığında tutarlı şekilde oluşturulacak her bir block aynı boyutlara sahip olacaktır. Oluşturulan bir tabloda LOB gibi birden fazla segment kullanacan veri tipi kullanıldığında block size farklı gizi görülüyorsa da aslında block size’ın değişmesi mümkün değildir.

Block’ların büyüklükleri ne olursa olsun şekildeki gibi bir görüntüye sahiptir:

Block Yapısı
Block Yapısı

Resim Kaynak: GUPTA, G. S. (2002) Oracle 8i Row Chaining and Migration https://www.databasejournal.com/img/gupta1.gif

Block Header: Segment tipi tutulur (tablo, index vb.). Ayrıca verinin adresi, tablo ve row adresleri de header da tutulur.

Row Data: Row içindeki gerçek veriler bulunur.

Free Space: Bir update durumunda kullanılır, genel olarak toplam boyutun %10’u oranında bulunur.

Tablespace’ler: Daha önce de değindiğimiz gibi tablespace mantıksal bir container (kapsayıcı) durumundadır. Yukarıda da işlediğimiz gibi verilerimiz block’larda, block’lar ise extentlerde, extentler segmentlerde, segmentler ise tablespace’in içinde bulunur. Şekilde bu yapı görülebilir:

Tablespace Yapısı
Tablespace Yapısı

Resim Kaynak: Oracle® Database Net Services Administrator’s Guide 11g Release 2 (11.2) Part Number E10836-05 https://docs.oracle.com/cd/A57673_01/DOC/server/doc/SCN73/image010.gif

TEMP Files

Temporary data file’lar, Oracle’daki farklı bir data file tipidir. Büyük boyutlu dataların bellek üzerinde sort edilmesi veya hash işlemi yapılması durumunda result’ın tutulması için temp file’lardan faydalanıyoruz. Bellek üzerindeki datalar temp file’lara aktarıldığı için belleği verimli kullanmak mümkün olmaktadır. Elbette temp tablo oluşturduğumuzda da bu tabloların dataları yine temp file üzerinde saklanmaktadır.

Control Files

Control dosyaları oldukça küçük ve oldukça önemli dosyalardır. Instance başlatılırken control dosyaları okunur. Control dosyaları parametre dosya adreslerini, redo log file adreslerini tutar. Aynı zamanda SCN (System Change Number) bilgisi de burada tutulur.

SCN’yi kısaca açıklayacak olursa, her bir transaction işleminde Oracle bu transaction için bir değişim numarası atar. Bu numara control file içinde de saklanır. Aynı zamanda tablonun header bilgisinde de tutulurlar. Daha önce Oracle’ın verileri fiziksel diske hemen yazmadığını söylemiştik.  Oracle değişikliği ve dataların güncelliğini SCN ile takip etmektedir. Yani consistency için olmazsa olmaz bir bilgidir. Doğal olarak control file zarar gördüğünde veri tutarlılığını sağlamak mümkün değildir.

Yine RMAN ile yapılan işlemler control file’da kayıt altına alınmaktadır. Backup, restore zamanı ve bilgisi özenle saklanır, ileri ve geri dönme işlemleri bu bilgilere göre yapılır.

Control file’lar bu kadar hayati olduğu için birden fazla oluşturulması şarttır. Bir arıza durumunda control file zarar görürse instance anında çöker, instance’ın ayağa kaldırılabilmesi için control file gerektiğinden ve tüm control file’lara bilgiler eş zamanlı olarak kaydedildiğinden dolayı, diğer bir file’ı alıp kopyaladığınızda instance hemen ayağa kalkabilecektir.

Redo Log Files

Redo log dosyaları Oracle için çok önemlidir, çünkü daha önce de söz ettiğimiz gibi transaction işlemleri hemen fiziksel diske yansımazlar, bunlar önce Redo Log dosyasına yazılırlar, daha sonra belli aralıklar fiziksel diske kayıt edilirler. Bunun dışında aşağıdaki durumlar içinde kullanılırlar:

  • Sistem crash (çökme) olduğu zaman Instance recovery (düzeltme) için kullanılır.
  • Media recovery sonrasında backup’tan restore (geri yükleme) yapmak için kullanılır.
  • Database standby modunda iken kullanılır.
  • Stream yapılan bir durumda veriyi replike etmek için kullanılır.

Medya arızası veya failover durumunda hayati önem taşımaktadırlar. Instance elektrik kesintisi veya benzer beklenmedik durumlarla karşılaşıp down (kapanmak) olduğu zaman tekrar ayağa kaldırılmak istendiğinde önce control file’a gidip SCN numarasını alır, sonra table’ların SCN numarasını karşılaştırır ve aradaki farkı Redo Log file’dan okur ve recovery işlemini gerçekleştirir. Redo Log dosyasına yazılmayan bir transaction için kesinlikle “success” sonucu döndürülmez, bu yüzden bir kurtarma durumunda olası veri kayıplarının önüne geçilmiş olur.

İki tip Redo Log tipi bulunmaktadır: Online ve Archive. Bunlara da kısaca göz atalım:

Online Redo Log Files

Database üzerinde her zaman en az iki Online Redo Log dosyası vardır, varsayılan olarak iki tane yaratılırlar. Bu tip Redo Log’lar kendi içinde miror’lanırlar (aynalama, aynısında oluşturma). Bir Online Redo Log dosyasına bilgi yazılırken (current mode) diğer bir dosya ise beklemededir (Inactive mode). Biri dolduğu anda checkpoint (Veritabanı sistemlerinde verilerin ram’den alınarak fiziksel disk ortamındaki data file’lara yazılması işlemidir.) atılır ve switch (Dosyaları değiştirme) işlemi yapılarak active mode’a alınır ve diğer Redo Log dosyası current moduna getirilir. Active moda olan Redo log dosyasındaki veriler fiziksel diske yazılır ve Inactive mode’a alınırlar.

Genellikle en az 3 dosya olması tavsiye edilir ve her bir Redo Log’un switch etme süresinin 20 dakikadan az olmamasına önem verilir, aksi halde performans sıkıntısı yaşanacaktır. Bu sebeple Redo Log dosyalarının boyutlarının en az 20 dakikada switch edecek şekilde ayarlanması önerilir. Bu bilgiler dmv’lerden elde edilebilmektedir.

Archive Redo Log Files

Oracle database iki moddan birinde çalıştırılabilir: ArchiveLog mod veya NoArchiveLog mod. İki mod arasındaki farkı basitçe anlayabilmemiz için şu soruyu sormamız yeterlidir: Eğer Online Redo Log dosyalarımız giderse ne yaparız?

Eğer NoArchiveLog modunda çalışıyorsak bu kesinlikle veri kaybı yaşayacağımız anlamına gelir. Eğer bu modda çalışacaksak kesinlikle Online Redo Log dosyalarımızın hayatta kalmasına azami derecede özen göstermemiz gerekiyor.

Bu tür bir senaryo durumunda ayakta kalmak ve veri kaybı yapmamak için ArchiveLog modda çalışmak gerekiyor. Archive log hem backup dosyalarını arşivler hem de Online Redo Log’ları arşivler. Genellikle farklı bir fiziksel dizinde tutuldukları için bir disk arızası durumunda dahi  verilerimizi kurtarmak mümkündür.

Password Files

Password dosyası, SYSDBA veya admin rolündeki kullanıcıların şifrelerinin saklandığı text dosyalardır. Oracle instance’a bağlanmak istediğinizde instance buradaki bilgilere göre kimlik doğrulamasını yapmaktadır. Bu dosya kayıp olursa doğal olarak giriş yapmanız olanaksız hale gelir.

Eğer instance’ın kurulduğu sunucu üzerinde doğrudan kurulumu yapan kullanıcı veya yetkili kullanıcı ile oturum açtıysanız şifre belirtmenize gerek olmaksızın SYSDBA veya diğer admin rollere bağlanmanız mümkündür:

Change Tracking File

Bu dosyanın tek amacı vardır, artırımlı (incremental) yedek almayı sağlar. Backup işlemlerini takip eder ve backup işlemi sonrasında yeni eklenen veya değiştirilen block’ların bilgilerini tutar. Tutulan bu bilgiler dahilinde sadece değişen block’ların backup’ını almak mümkündür (RMAN aracı ile).

Normalde her gece full backup almak zahmetli bir iştir, özellikle büyük boyutlu databaselerde bu işlem oldukça ağırdır ve uzun sürer. Hafta sonu bir kez full backup alıp hafta içi de düzenli block backuplarını almak kolaylık sağlayacaktır. Tabii bu aynı zamanda yerden de tasarruf etmemize olanak sağlar. Zira her gece full backup almak ve geçmişe yönelik uzun süreli backupları saklamak istiyorsak bu epey bir storage gerektirir. Bu şekilde bir backup stratejisi ise işleri oldukça kolaylaştıracaktır.

Flashback Log Files

Flashback log dosyaları Oracle 10g enterprise sürümü ile gelen yeniliklerden. Zamanın belli bir kısmındaki datanın haline dönmek için kullanılır. Bir DML işlemi yapılırken dataların bir imajı flashback log’lara alınır. Daha sonra Flashback Database komutu ile istenilen zaman dönmek mümkün olabilmektedir.

Flashback Database

Flashback Database veri kurtarmayı hızlandırmak, belli bir zamandaki verilere dönebilmek için tasarlanmıştır. Genellikle veriler üzerinde hatalı işlem yapılabilmektedir, böyle bir kaza durumunda oldukça avantajlıdır.

Bu özellikten faydalanabilmek için ArchiveLog modun açık olması ve Flashback Database komutunun etkinleştirilmiş olması gerekmektedir. Verileriniz zarar görmeden önce bu ayarların yapılması önemlidir, aksi halde sonradan etkinleştirmek bir anlam ifade etmeyecektir.

Flash Recovery Area (FRA)

FRA, database backup ve recovery ile ilgili dosyaların yönetildiği yerdir. Bu alanda bulabilecekleriniz:

  • Diskteki data file’ların kopyaları
  • Artırımlı (incremental) backuplar
  • Redo Log dosyaları
  • Control file ve control file backup dosyaları
  • Flashback log’lar

DMP Files

Dataların export ve import edilmesi için kullanılır. Export işlemi ile gerekli tüm meta datalar dahil başka bir sisteme import edilebilecek şekilde bağımsız bir dmp dosyası oluşturulur. Sadece Create, Alter gibi scriptler çıkarılabileceği gibi dataları da taşımak mümkündür. Import işleminde ise sadece DDL ve DML ifadeleri çalıştırılır.

Data Pump Files

Data Pump dosyaları iki araç tarafından kullanılan dosyalardır. Extarnal table’lara veri yüklemek ve veri almak maksadı ile yeni tasarlanmış IMPDP ve EXPDP araçları tarafından kullanılırlar.

Farklı platformlar arasındaki paylaşımı sağlayabilmek için metadata yapısı XML formatında tutulurlar. Anlayacağınız üzere bir SQL statement kullanılmıyor, örneğin Retail tablomuzda bir alter olursa bunu

Retail

şeklinde dosya içinde belirtir.

Flat Files

Flat dosyalar, bildiğimiz anlamda düz text dosyalardır. Genelde extarnal table veya dmp file oluşturulurken delimiter (. gibi) kullanılarak veri yükleme işlemleri için kullanılırlar. Bunun dışında PL/SQL yazılabilmekte veya bazı Oracle araçları tarafından da kullanılabilmektedir.

0
0

Patreon

üzerinden bize destek olabilirsiniz!

.

Birlikten kuvvet doğar! Sizde #patreon üzerinden bizim yanımızda olabilirsiniz. Yaptığımız gönüllü çalışmaları arttırmak için bize destek olun.

Ücretli ve Ücretsiz Eğitimler

Türkiye'nin en büyük veri bilimi topluluğu ile kariyerinizi inşa edin.

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.