Oracleda parametr faylları (Spfile və pfile)
Oracle instance işə düşdükdə ilk olaraq parametr faylından (spfile və ya pfile) işə düşmək üçün tələb olunan məlumatları oxuyaraq nomount rejiminə keçir. Daha sonra müvafiq yoxlamaları apararaq mount və open rejimlərinə keçir. Parametr faylı özündə bazanın adı, archivelogların yazılacağı ünvanlar, controlfileların ünvanları, proseslərin sayı və s. bu kimi baza ilə bağlı bir çox tənzimlənmələr barədə məlumatı saxlayır. Parametrlər barədə geniş məlumat almaq üçün sqlplus üzərindən show parameter
və ya SELECT * FROM v$parameter;
sorğusundan istifadə edə bilərsiniz.
Oracleda 2 növ parametr faylından istifadə edilir – pfile və spfile. Pfile mətn formatındadır. Onun üzərində birbaşa dəyişiklik aparmağımız mümkündür. Spfile isə binary formatındadır və onu açıb birbaşa üzərində dəyişiklik aparmaq imkanımız yoxdur. Eyni zamanda spfile-ın ehtiyat nüsxəsini RMANla almaq mümkündür. Lakin pfileda bu mümkün deyil. Susmaya görə parametr fayl linux və ya unix əməliyyat sistemlərində ORACLE_HOME/dbs, Windowsda isə ORACLE_HOME\database ünvanında yerləşir. Susmaya görə pfile initORACLE_SID.ora, spfile isə spfileORACLE_SID.ora formatında olur. Parametr faylının dəqiq ünvanına baxmaq üçün sqlplus üzərindən show parameter pfile əmrini icra etməyiniz kifayətdir.
Baza açılarkən susmaya görə spfile ilə açılır. Lakin özümüz pfile vasitəsilə də aça bilərik. Bazanı pfile ilə açmaq üçün aşağıdakı əmri icra edə bilərik.
startup pfile='D:\initORCLB.ora'
Faylın ünvanı fərqli ola bilər.
Spfiledan pfile yaratmaq üçün aşağıdakı əmrlərdən istifadə edilə bilər.
Susmaya görə olan spfiledan – create pfile from spfile;
Hər hansı ünvanda yerləşən spfiledan – create pfile from spfile='D:\SPFILEORCLB.ORA';
Pfiledan spfile yaratmaq üçün aşağıdakı əmrlərdən istifadə edilə bilər.
create spfile from pfile;
create spfile from pfile='D:\initORCLB.ora';
Yaddaşda olan parametrlər əsasında spfile və ya pfile yaratmaq üçün aşağıdakı əmrlərdən istifadə edilə bilər.
create spfile from memory;
create pfile from memory;
create pfile='D:\testpfile.ora' from memory;
Parametrlər statik və dinamik olmaqla 2 hissəyə ayrılır. Dinamik parametrlərdə dəyişiklik apardıqda dərhal instansa tətbiq edilir. Statik parametrlərdə dəyişiklik etdikdə isə bu dəyişiklik bazanın yenidən işə düşməsindən sonra tətbiq edilir. Statik parametrlər barədə məlumat almaq üçün aşağıdakı sorğudan istifadə etmək olar.
SELECT *
FROM v$parameter
WHERE issys_modifiable = 'FALSE';
Parametr faylında dəyişiklik aparmaq üçün Alter system set <dəyişmək istədiyimiz parametr>=<yeni dəyər> scope={Memory, Spfile və ya Both};
əmrindən istifadə edilir.
Scope üçün Memory təyin etdikdə dəyişiklik yalnız instansın aktiv olduğu dövr üçün keçərli olur, instanse yenidən başladıldıqda parametr əvvəlki dəyəri ilə çalışır. Spfile istifadə etdikdə dəyişiklik spfile-a yazılır və baza yenidən başladıldıqdan sonra tətbiq edilir. Both istifadə edildikdə isə dəyişiklik həm aktiv instansa tətbiq edilir, həm də spfile-a yazılır və baza yenidən başlandıqda da yeni dəyərdən istifadə edir.
Əgər istifadə etdiyiniz bazada spfile silinirsə və əlinizdə ehtiyat nüsxə olmazsa, bu zaman alert logdan baza əvvəllər işə düşərkən yazılmış dəyərləri hər hansı bir mətn redaktoruna köçürərək yadda saxlayıb instansı pfile vasitəsilə həmin fayldan başladaraq işə sala bilərsiniz.
Əgər həm spfile, həm də pfile silinmişdirsə, lakin əlinizdə spfile-ın ehtiyat nüsxəsi varsa, bu zaman RMAN vasitəsilə bazanı nomount rejimində açmaq üçün “dummy” parametr faylından istifadə edilir. Bundan sonra baza nomount rejimində açılır və spfile-ı ehtiyat nüsxədən bərpa etmək üçün imkan yaranır.