PFILE dan SPFILE

7 Apr

Pada database oracle, parameter file merupakan salah satu komponen penting. Karena file ini menyimpan semua informasi mengenai parameter yang digunakan oleh database oracle. Ada 2 jenis parameter file yang dikenal di oracle yaitu: pfile dan spfile. Secara struktur, pfile merupakan teks file biasa yang dapat diedit dengan menggunakan vi,more atau tools text editor lainnya. Spfile merupakan file binary yang jika diedit menggunakan text editor akan menyebabkan file corrupt.

Nah, bagaimana perbedaan penggunaan kedua file tersebut? Yuk,mari kita telusuri bersama J

Menggunakan Spfile

1. Cek jika database startup dengan menggunakan spfile

SQL> show parameter pfile 

NAME         TYPE       VALUE
------------ ---------- ------------------------------------------
spfile       string  	 /u01/app/oracle/10gr2/dbs/spfileDBCASH2.ora

Jika tidak menggunakan spfile, maka berarti nilai spfile ‘’ dan database distartup dengan menggunakan pfile

2. Melakukan perubahan parameter

Before:

SQL> show parameter pga

NAME                        TYPE        VALUE
----------------------      ----------- ------------------------------
pga_aggregate_target        big integer 68M


SQL> alter system set pga_aggregate_target=69M;

System altered. 

3. Restart database

SQL>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.


SQL> startup;

ORACLE instance started.

Total System Global Area  218103808 bytes
Fixed Size                  1218580 bytes
Variable Size              83888108 bytes
Database Buffers          125829120 bytes
Redo Buffers                7168000 bytes

Database mounted.
Database opened.

4. Cek nilai parameter yang tadi diubah

SQL> show parameter pga
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 69M

Ternyata parameter berubah

Menggunakan pfile

1. Cek jika database startup dengan menggunakan pfile

SQL> show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string

2. Melakukan perubahan parameter

SQL> show parameter pga

NAME TYPE VALUE
———————————— ———– ——————————
pga_aggregate_target big integer 69M

SQL> alter system set pga_Aggregate_target=68M;

System altered.

3. Restart database

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup;

ORACLE instance started.

Total System Global Area  218103808 bytes

Fixed Size                  1218580 bytes
Variable Size              83888108 bytes
Database Buffers          125829120 bytes
Redo Buffers                7168000 bytes

Database mounted.
Database opened.

4. Cek nilai parameter yang tadi diubah

SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 69M

Ternyata nilai parameter tidak berubah

5. Kita coba untuk melakukan perubahan menggunakan opsi both.

 SQL> alter system set pga_aggregate_Target=80M scope=both;

alter system set pga_aggregate_Target=80M scope=both
*
ERROR at line 1:

ORA-32001: write to SPFILE requested but no SPFILE specified at startup

Ternyata startup dengan menggunakan pfile, tidak dapat melakukan alter system dengan scope both ataupun spfile


Kesimpulan

1. Ketika proses startup, database akan membaca parameter file dengan ketentuan sebagai berikut:
a. Jika SPFILE ditemukan, maka database akan startup dengan menggunakan spfile
b. Jika SPFILE tidak ditemukan tetapi PFILE ditemukan, maka database akan startup dengan menggunakan PFILE
c. Jika kedua buah file tersebut tidak ditemukan, maka database tidak akan bisa startup
d. Untuk mencek dengan cara bagaimana database di start, dapat dengan menggunakan

 SQL> show parameter spfile 

2. Jika startup dengan menggunakan spfile, maka:
a. Semua perubahan dengan bentuk perintah:

 SQL> alter system set namaparameter=nilaiparameter 

Akan menghasilkan perubahan pada saat ini dan spfile. jika database di restart dengan menggunakan spfile, perubahan akan bersifat permanen
b. Semua perubahan dengan bentuk perintah:

 SQL> alter system set namaparameter=nilaiparameter scope=both 

Akan menghasilkan perubahan yang sama dengan opsi a di atas
c. Semua perubahan dengan bentuk perintah:

 SQL> alter system set namaparameter=nilaiparameter scope=memory 

Akan menghasilkan perubahan yang hanya berlaku pada saat ini. jika database di restart dengan menggunakan spfile, perubahan akan kembali ke nilai semula

3. Jika startup dengan menggunakan pfile,maka:
a. Semua perubahan dengan bentuk perintah:

 SQL> alter system set namaparameter=nilaiparameter 

Akan menghasilkan perubahan yang hanya berlaku pada saat ini. jika database di restart dengan menggunakan spfile, perubahan akan kembali ke nilai semula.
b. Semua perubahan dengan bentuk perintah:

SQL> alter system set namaparameter=nilaiparameter scope=both

Akan menghasilkan error

 ORA-32001: write to SPFILE requested but no SPFILE specified at startup 

c. Semua perubahan dengan bentuk perintah:

SQL> alter system set namaparameter=nilaiparameter scope=memory

Akan menghasilkan perubahan yang hanya berlaku pada saat ini. jika database di restart dengan menggunakan spfile, perubahan akan kembali ke nilai semula

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>