Hurriyet

4 Şubat 2014 Salı

Oracle Veritabanı: Initialization Parameters - Başlangıç Parametreleri - Pfile - Spfile

Oracle instance'ı başladığında ilk önce initialization parametreleri ve parametre dosyası okunur. Bu dosyada en azından DB_NAME ifadesi bulunmalıdır. Diğer bütün parametrelerin kendi default standart değerleri bulunmaktadır.

Parametre dosyası bir text dosyası olabilir, pfile olabilir ya da spfile dosyası olabilir. Spfile dosyası bir binary dosyadır. Text dosyası şeklinde editlenemez. Veritabanının okuyacağı bir dosyadır. Kendimiz yaratabileceğimiz gibi DBCA aracı ile de yaratabiliriz. Yarattıktan sonra da buradaki parametreleri "alter system"  komutlarıyla düzeltebiliriz.

Oracle instance'ı başladığında ilk aranan şey binary parametre dosyasıdır. Bu binary parametre dosyasını bulamazsa, düzenlenebilir text dosyasını arar. Aradığı lokasyon ise $ORACLE_HOME/dbs altındadır. Pfile, yani text dosyasının ismi init$ORACLE_SID.ora şeklinde olur. Aynı şekilde spfile dosyasının adı da spfile$ORACLE_SID.ora'dır.

Veritabanındaki Belli Başlı Parametreler:

DB_NAME:

DB_NAME parametresinin büyüklüğü en fazla 8 karakter olabilir. Veritabanı yaratılırken bu isim data file'larına, redolog dosyalarına, control file'lara yazılır.

DB_DOMAIN:

DB_DOMAIN değeri network domain'ini belirtir.

FRA(Fast Recovery Area)'nın Belirlenmesi:

FRA Oracle veritabanının backup'la ilgili dosyaları tutup sakladığı yerdir. Veritabanıyla ilgili dosyaların tutulduğu yerden farklıdır. Veritabanıyla ilgili dosyalar derken data file, control file ve online redo log dosyalarından bahsetmekteyiz. Oracle FRA alanının kullanılmasını tavsiye eder. Fast Recovery Area ile ilgili parametreler.:

1-DB_RECOVERY_FILE_DEST:  

FRA'nın yerinin belirlenmesi için bir parametre bulunmaktadır. Bu parametre bir klasörü gösteriyor olabilir, bir dosya sistemini işaret ediyor olabilir ya da ASM'de bir klasör olabilir.

2-DB_RECOVERY_FILE_DEST_SIZE:

FRA için korunacak toplam bytes cinsinden alanı gösterir.  DB_RECOVERY_FILE_DEST parametresinden önce set edilmelidir. Çünkü DB_RECOVERY_FILE_DEST'de yeterince yer olmayabilir. Buna göre yeterli alan olup olmadığı kontrol edilir.

Control Files'ların Belirlenmesi:

Control files parametresi veritabanının kullanacağı parametreleri göstermektedir. Oracle en az 2 tane control file kullanılmasını ve bunların ayrı yerlerde depolanmasını tavsiye etmektedir.

DB_BLOCK_SIZE:

DB_BLOCK_SIZE olarak en genel kullanılan block büyüklüğü kullanılmalıdır. Genelde 8k kullanılmaktadır. Block size'ın önemi, block'lar ne kadar büyük olursa tek block'ta o kadar fazla veri tutulabilinir. Bu da tek seferde daha fazla verinin okunmasına, disk ve memory I/O'sundan tasarruf edilmesini sağlar.

Block Size'ı farklı olan tablespace'ler yaratılabilse de bunlar için SGA'de daha küçük boyutlu block cache'leri yaratılması gerekir.

PROCESSES:

Processes parametresi işletim sisteminden bağlanabililinecek process sayısını ifade eder. Bunun için minimum değer herbir Oracle Veritabanı background process'i için en az bir tane ve user process'leri için de bir tane ayrılması gerekir.

DDL_LOCK_TIMEOUT:

DDL(Data Definition Language) ifadeleri veritabanında belirli yapılar üzerinde işlem yapılmasını engellemektedir. Bu yüzden yapıların üzerine lock koymaktadır. Eğer bu lock'ı koyamazsa DDL ifadesi fail eder. DDL ifadelerinin bu tür durumlara karşı korunması için DDL_LOCK_TIMEOUT parametresi set edilebilinir. Bu parametrede DDL ifadesinin bu lock'ları elde edenee kadar ne kadar bekleyeceğini gösterir.

Undo Space Yönetimi

1-UNDO_MANAGEMENT:

Undo_management ile sistemin automatic_undo_management kullanarak mı başlayacağını belirtmektedir. Undo tablespace'inde undo datalarıyla ilgili bilgiler bulunur. Çoğunlukla commit edilmemiş bilgiler yer alır. Bu parametre auto'ya çekilerekten sistem automatic undo management açılır.

2-UNDO_TABLESPACE:

Bir instance automatic_undo_management ile açıldığında otomatik olarak undo tablespace arayacaktır. Undo  data'ları bir yerde tutması gerektiği için undo tablespace veritabanı yaratılırken default olarak üretilen undo tablespace'idir. Bunun dışında ayrı bir yerde undo tablespace yaratmak için önemli bir parametredir.  

COMPATIBLE: 

Compatible parametresi ile veritabanının uygunluk seviyesi belirlenir. Eğer veritabanının versiyonu 11.2'yken 10.0.0 olarak belirlenirse 11.2 ile gelen yeni özellikler devredışı bırakılırlar. Veritabanının uygunluk parametresi yükseltilebilinirken daha düşük seviyeye çekilemez.

Parametrelerin SPFILE ile Saklanması:

Oracle veritabanı için parametreler genellikle text dosyalarında tutulmaktadır ancak parametreleri daha düzenli olarak tutmak istersek binary dosyalarda tutabiliriz. Burada parametreler veritabanının başlamasında ve kapanmasında sabi kalırken; text dosyasında yapılan değişiklikler instance bazındadır.

SPFILE Yaratılması:

Spfile yaratmak için var olan pfile dosyası yani text dosyamız kullanılır. Bunun için sysdba yetkisi gerekmektedir. Spfile'ı yaratmak için instance'ın açık veya kapalı olmasına gerek yoktur. Başta pfile ile açıldıysa instance, spfile yaratılıp restart edildikten sonra, veritabanı spfile dosyasını tekrar bulur.

create spfile from pfile;  

Parametre Değerlerinin Değiştirilmesi:

"Alter System" ifadesiyle parametreler değiştirilebilinir. Eğer text dosyasını parametre dosyası olarak kullanıyorsak "alter system" ifadesi parametrelerin sadece instance bazında değiştirilmesini sağlar; çünkü sistemden verilen komutun text dosyasını değiştirmesi gbi bir süreç yoktur. Bu yüzden eğer text dosyası kullanılıyorsa parametreler manuel olarak instance kapandığında değiştirilmelidir.

2 çeşit parametre sistemde bulunmaktadır. Dinamik parametreler, instance açıkken değiştirilebilinirler.
Statik parametreler ise değiştirildiklerinde hemen etki etmezler. Bunların etki etmesi için instance restart'ı gereklidir.

Parametreler değiştirilirken "alter system" ile birlikte "set" ifadesi kullanılır. "Scope" ile birlikte değişikliğin nerelerde etkili olacağını belirtebiliriz.

Scope=SPFILE; ile parametrenin değişikliğinin sadece spfile'a uygulanması sağlanır. Şu anki instance'a etkisi olmaz. Tekrar startup edildiğinde değişiklik etkisini gösterir. Statik parametrelerin değişikliğinde kullanılabilinir.

Scope=MEMORY'de değişiklik sadece  instance için geçerli olur. Anında etkisini görebiliriz. Statik parametrelerin değişikliğinde kullanılamaz.

Scope=BOTH'da değişiklik hem MEMORY'e yani anında instance için geçerli olacak şekilde değiştirilir. Hem de spfile'a yazılır. Statik parametrelerin değişikliğinde kullanılamaz.

Veritabanındaki Parametrelerin Hangilerinin Dinamik Hangilerinin Statik Olduğunun Bulunması:

Veritabanındaki parametreleri değiştirirken hangilerinin değişikliğinin hemen olabileceğini görmek için aşağıdaki tabloyu inceleyebiliriz.

 select NAME, ISSES_MODIFIABLE, ISSYS_MODIFIABLE from v$parameter where name like '%%';

Bu tabloya göre hangi parametrenin statik hangi parametrenin dinamik olduğunu bulabilir, sonrasında yaptığımız değişikliğin instance bazında mı yoksa session bazında mı olup olmadığını görebiliriz. Eğer bu yukarıdaki tabloda ISSES_MODIFIABLE kolonu belirtilen parametre için "True" ise o parametre hemen değiştirilebilinir.

SPFILE'dan PFILE Yaratılması:

"Create PFILE"  ile spfile dosyasında pfile yaratılabilinir. Spfile'da binary olarak depolanmaktan olan parametreleri raporlarmak için böyle bir işlemi gerçekleştirebiliriz. Bununla birlikte eğer spfile bir değişiklik yapmak istiyorsak spfile'dan pfile yaratıp tekrar spfile yaratabiliriz. Pfile yaratmak için de ayrıca sysdba yetkisine sahip olmamız gerekir.

Pfile'ın üretilmesi için alternatif bir yolda aşağıdaki ifadedir.

 CREATE PFILE FROM MEMORY;  

Aynı işlem spfile'ın yaratılması için de geçerlidir.

CREATE SPFILE FROM MEMEORY

SPFILE'ın Kaybolması Durumunda Ne Yapılabilinir?

1-Eğer instance açıksa spfile memory'den çıkartılabilinir.

CREATE SPFILE FROM MEMEORY

2-Aynı şekilde pfile'dan yaratılabilinir.

create spfile from pfile;

3-Backup'tan dönülebilinir. Her veritabanı backup'ında spfile'da backup'lanır.

4- Eğer yukarıdaki hiçbir yöntem gerçekleştirilemezse alert log'da bulunan dosyalardan yola çıkarak pfile yaratılabilinir ve sonrasında spfile yaratılabilinir.

SPFILE veya PFILE ile Veritabanının Başlatılması:

Pfile ile

startup pfile='/home/users/oracle/initabc.ora';  

Spfile ile

startup spfile='/home/users/oracle/spfile.ora';  





Hiç yorum yok:

Yorum Gönder