Oracle’ın çalışabilmek için gerek duyduğu temel bazı öğeleri, parametre dosyalarında tutarız.
Oracle ilk başladığında parametre dosyalarını okur ve sisteme dair birçok ayara buradan ulaşır. Aynı anda çalışabilecek işlem adedi (*.processes); arşiv dosyalarının lokasyonunun neresi olacağı (*.log_archive_dest); kaç dakikada bir arşive çıkılacağı (*.archive_lag_target); control file’ların lokasyonları (*.control_files); backgroud dump, user dump gibi klasörlerin nerelerde konumlandırıldığı (*.background_dump_dest, *.user_dump_dest) vb. bilgiler parametre dosyaları içinde saklanır. Bu değişkenlere parametre denmektedir ve hep birlikte parametre dosyasını oluştururlar.
2. Oracle PFILE (Parameter File)
Kullanıcıların üzerinde değişiklik yapabildiği, metin tabanlı dosyalardır.
Bu parametreler, veritabanının hangi ayarlarla başlatılacağını belirler.
Örneğin, control_files parametresi, kontrol dosyalarının dizinlerini tutarken; audit_file_dest parametresi audit dosyalarının dizinlerini tutmaktadır. open_cursors parametresi aynı anda açık olabilecek maksimum cursor sayısını tutarken processes parametresi aynı anda çalışabilecek işlem sayısını tutmaktadır.
Oracle parametrelerini tutan PFILE bir metin dosyasıdır. İçerisine girip, dilediğiniz değişiklikleri yapabilirsiniz. PFILE init<SID>.ora ya da init.ora şeklinde geçer ve $ORACLE_HOME/dbs/ klasörü altında bulunur. (Windows kullanıyorsanız, ORACLE_HOME\database\ altına bakmanız gerekebilir.yada C:\app\Administrator\admin\orcl\pfile )
3. Oracle SPFILE (Server Parameter File)
Oracle 9i ile gelen parametre dosyası tipidir. PFILE, text-based yapıdayken ve üzerinde herhangi bir metin editörü ile değişiklik yapabilirken; SPFILE, binary yapıya sahiptir ve değişiklikler sadece ALTER SYSTEM SET komutlarıyla gerçekleştirilebilir.
Oracle'ın otomatik performans iyileştirme yöntemleri için SPFILE kullanımı tavsiye edilmektedir.Ayrıca RMAN sayesinde, SPFILE’larınızın otomatik olarak yedeklenmesi sağlanabilir; sizin kopyalamanız gerekmez. Böylece parametrelerle ilgili değişiklik yaptığınız her seferde tekrar tekrar yedek almanız gerekmez. Her yedek alınmasında SPFILE’in yedeği de alınacaktır.
***Veritabanını kapatıp açmaya gerek duymadan kalıcı parametrelerin değerlerini değiştirebiliriz. Böylece veritabanı gerçek zamanlı olarak yeni parametrelere göre davranabilir. Ayrıca veritabanı kapatılıp açıldıktan sonra da aynı şekilde korunmaya devam eder. PFILE dosyalarındaki değişiklikler, sistem yeninden başlatılınca siliniyordu.
***SPFILE sayesinde automatic tuning rahat ve hızlı bir şekilde içsel olarak yapılabiliyor. SPFILE kullanmıyorsanız automatic tuning yapılamaz.
SPFILE’ların tutulduğu klasör yine $ORACLE_HOME/dbs/ altıdır. Dosya
isimlendirmesinde de spfile<SID>.ora veya spfile.ora kullanılır.
The Parameter File at Startup Time
Oracle Spfile parameterini Pfile ye gore tercih eder.
Oracle Database startup oldugu zaman Oracle Parameter directory’nin contents
control eder. ($ORACLE_HOME/database Windows uzerinde yada Linux directory ismi $ORACLE_HOME/dbs),Ve
asagidaki file’leri sirasi ile arastirir:
* spfileSID.ora
* spfile.ora
* initSID.ora
* init.ora
Eger directory hicbirine ayit degilse ozaman startup fail olacak.
8. PFILE/SPFILE Kullanımına Dair Detaylar
Kullandığınız veritabanının hangi parametre dosyasını kullandığını merak ediyorsanız aşağıdaki plsql komutunu çalıştırabilirsiniz.
SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') "Init File Type"
FROM sys.v_$parameter
WHERE name = 'spfile';
Eğer value kolonundaki tüm
değerler null ise PFILE değilse SPFILE kullanılıyordur.
Sisteminiz SPFILE ile çalışıyorsa, SPFILE’in lokasyonunu da saptayabilirsiniz. Bunun için yine v$parameter görüntüsünden yararlanırız:
SELECT VALUE FROM v$parameter WHERE NAME='spfile';
Parametrelerin değiştirilmesi
SQL> ALTER SYSTEM SET PARAMETER_NAME=VALUE;
Eğer parametre dosyası olarak SPFILE kullanıyorsanız, yukarıda girdiğiniz değer hep geçerli olacaktır. Veritabanı
tekrar başladığında yine ayar girmeniz gerekmez;
çünkü spfile dosyasında girmiş olduğunuz değer
tutulur. Bu durumu, PFILE ile sağlamak mümkün değildir.
Yaptığınız bir değişikliği PFILE’a girmeyi
unutursanız, problem yaratabilir; hâlbuki SPFILE
için böyle bir problem olmadığını görüyoruz.
4. PFILE (Parameter File) ve SPFILE (Server Parameter File) Yönetimi
Aktif oturuma ait parametre değerlerini aşağıdaki gibi alabilirsiniz;
SQL> SHOW PARAMETER
[PARAMETRE_ADI];
Örneğin aynı anda çalışabilecek
sga_max_size sayısını görmek istersek show
parameter komutundan yararlanırız:
SQL> SHOW PARAMETER
SGA_MAX_SIZE;
İkinci bir yöntem ise, v$parameter sistem bilgileri görüntüsünden (view) yararlanmaktır.
v$parameter içerisinde bütün parametre simlerini, taşıdıkları değerle birlikte gösterir. Parametre görüntüsüne ait sütunları aşağıdaki gibi görebilirsiniz:
SQL> DESC V$PARAMETER;
Diğer bir yöntem ise, spfile dosyasının içeriğini metin dosyası formatında bir pfile’a dönüştürmektir.
SQL> CREATE SPFILE ='spfile adresiniz/spfile.ora' FROM PFILE='pfile adresiniz/init.ora';
Oluşturulacak olan pfile dosyasını $ORACLE_HOME/dbs altında init<SID>.ora
şeklinde bulabilirsiniz. Bu dosyayı farklı
lokasyonlarda oluşturmakta mümkündür. Örneğin, /tmp/ klasörü altında VEYSI.text adıyla da oluşturabilirsiniz:
SQL> CREATE PFILE='/TMP/VEYSI.TEXT' FROM SPFILE;
5. SPFILE Değerlerini Değiştirmek
SPFILE binary formatta bir dosya türüdür ve bir metin editöründe açıp değiştirilmesi olanaklı Değildir
.Bu yuzden icini acip degisiklip yapma imkanimiz yoktur.
Oracle veritabanı birçok parametrenin online olarak değişmesine olanak vermektedir. Bunun
anlamı, parametre değişikliklerinin
geçerli olması için işletim sisteminin
yeniden başlatılmasına
gerek olmamasıdır. Bu oldukça yararlı ve
gerekli bir özellik!
ALTER SYSTEM SET dedikten sonra parametre adı belirtip, yeni değer veriyoruz. SCOPE kısmında üç değer verilebilir;
‐ MEMORY: Ayarlanan değer
sadece geçerli olan Oracle
'instance' için ayarlanacaktır. Bunun anlamı,
veritabanını yeniden başlattığınızda girmiş olduğunuz
değerin kaybolayacağıdır.Ancak Oracle kapanana kadar girilen değer kalır. ‐ SPFILE: Girdiğiniz değer veritabanının bir sonraki başlamasında geçerli olacaktır.
‐ BOTH: Verilen değer, hem hemen
uygulamaya alınacak, hem de Oracle’in bundan
sonraki açılışlarında da geçerliliğini
koruyacaktır. Bir nevi (MEMORY+SPFILE) şeklinde
üşünebiliriz.
Eğer scope değerini girmezseniz, değeri BOTH olarak kabul edilecektir.
sql> SHOW PARAMETER SGA;
sql> ALTER SYSTEM SET SGA_MAX_SIZE=800M;
sql> ALTER SYSTEM SET SGA_MAX_SIZE=800M SCOPE=MEMORY;
sql> ALTER SYSTEM SET SGA_MAX_SIZE=800M SCOPE=SPFILE;
sql> ALTER SYSTEM SET SGA_TARGET=500M;
SQL
> ALTER SYSTEM SET open_cursors=341 SCOPE=SPFILE SID=’*’ ;
SID parametresi ise RAC
sistemlerde kullanılır. Değişikliklerden hangi instance ların etkileneceğini
belirler. SID=’*’ ile bu güncellemenin tüm instance lar için geçerli olacağını
ANLARIZ…
Parameter File Search Order in Oracle RAC
Oracle veritabaninda RAC SySTEMINDE BULUNAN PARAMETER FILER!
1.
$ORACLE_HOME/dbs/spfile
sid.ora
2.
$ORACLE_HOME/dbs/spfile.ora
3.
$ORACLE_HOME/dbs/init
sid.ora
6. SPFILE’i, PFILE’dan Yararlanarak Yeniden Oluşturmak
Veritabanında bir karar alındı ve bir takım değişiklikler yapmanız gerekiyor diye düşünelim. Örneğin arşive çıkılacak dosyaları /data2/archive yerine artık, /data5/archive
altına kopyalamamız gereksin.
Bu gibi bir durumda
spfile’i bir pfile’a dönüştürmek; ardından pfile
içinde değişiklik yapmak ve son olarak pfile’dan tekrar spfile yaratmak gerekir. Adım adım aşağıdaki işlemleri uygulayalım.
1.
SPFILE dosyasından, metin formatında bir PFILE oluşturuyoruz:
SQL> CREATE PFILE='/TMP/VEYSI_DENEME.TEXT' FROM SPFILE;
2.
PFILE dosyasını açıp, log_archive_dest parametresinde ilgili değişiklikleri yapıyoruz.
SQL> ! vi /tmp/VEYSI_deneme.text
...
3.
Çalışmakta olan bir veritabanının spfile'ini ezemeyeceğimiz için veritabanını kapatıyoruz.
SQL> SHUTDOWN IMMEDIATE;
4.
Değişiklik yaptığımız pfile'i kullanarak yeni bir spfile oluşturuyoruz.
SQL> CREATE SPFILE FROM PFILE='/TMP/VEYSI_DENEME.TEXT';
5. Veritabanını açıyoruz.:
SQL> ALTER DATABASE OPEN;
SPFILE’i
direkt değiştiremediğimiz için, onu önce
bir PFILE’a dönüştürüp, ilgili değişikliği
yaptık
ve sonrasında yeni bir SPFILE yarattık.
NOTE:Oracle PFILE’in, $ORACLE_HOME/dbs altında init.ora olarak kaydedilmesi
de mümkündür.
Gerek PFILE, gerekse SPFILE farklı lokasyonlardan, farklı isimlerle de kullanılabilir
SPFILE’IN YEDEGINI
ALMAK
SQL> CREATE SPFILE='/DATA2/SPFILE_YEDEK.ORA' FROM PFILE='/TMP/VEYSI_DENEME.TEXT';
9. Veritabanını PFILE ile Açmak
SQL> STARTUP PFILE='/TMP/VEYSI_DENEME.TEXT';
STARTUP PFILE=$ORACLE_HOME/dbs/initsid.ora
No comments:
Post a Comment