Konfigurasi instance disimpan di file bertipe text yang dikenal dengan init file (initial file)
atau pfile (parameter file). Mulai versi 9i Oracle memperkenalkan pfile bertype binary
yang disebut spfile.
Di Unix family, init file ada di directory $ORACLE_HOME/dbs. Sedangkan di Windows ada
di folder %ORACLE_HOME%\database.
Format nama file:
1. Pfile: initNAMAINSTANCE.ora
Di Unix, nama instance adalah case sensitive, instance dataku berbeda dengan DATAKU. Pfile untuk instance dataku adalah initdataku.ora. Dan Pfile untuk instance DATAKU adalah initDATAKU.ora Sedangkan di Windows, nama init file tidak case sensitive, instance dataku ya sama saja dengan DATAKU. Kalau kita membuat database dengan dbca, initfile yang terbentuk adalah INITdataku.ORA. Kalau file ini diganti dengan initDATAKU.ora yang tidak apa-apa, Windows gitu lho!
2. Spfile: spfileNAMAINSTANCE.ora
Sama seperti pfile, case sensitive di Unix dan tidak case sensitive di Windows.
Cara membuat initfile:
1. pfile
Dibuat secara manual pakai text editor , contoh: notepad di Windows dan vi di
Unix. Bisa juga dibuat berdasarkan content spfile yang sudah ada.
SQL> create pfile from spfile;
2. spfile
Spfile tidak bisa dibuat dengan text editor sebagimana membuat pfile. Tentu saja, file
binary tidak bisa dibuat (diedit) dengan text editor. Spfile hanya bisa dibuat dengan
cara berikut ini (content-nya diambil dari pfile yang sudah ada):
SQL> create spfile from pfile;
By default, kalau ada spfile maka ketika startup Oracle akan membaca parameter dari spfile.
Kalau tidak ada spfile, Oracle membaca pfile. Kalau tidak ada kedua-duanya, instance tidak
bisa di-startup.
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file
‘/mnt01/oracle/10.2.0.3/dbs/initDATAKU.ora’
>Mengedit Init file (mengubah parameter instance)
Parameter instance ada dua tipe yaitu dynamic dan static. Parameter dynamic bisa
diubah ketika instance sedang jalan sedangkan parameter static tidak bisa, artinya perubahan
parameter static harus dilakukan di initfile dan instance harus di-restart.
Contoh parameter dinamik adalah pga_aggregate_target. Berikut ini cara untuk
1. Kalau instance sedang mati
Naikkan instance dulu, kemudian lakukan perubahan pakai SQLPlus
SQL> startup
SQL> alter system set pga_aggregate_target=100m;
Perintah alter system di atas langsung mengubah parameter di instance (memory)
yang berjalan.
• Kalau kita pakai spfile, perintah ini langsung mengupdate juga spfile.
Sehingga ke depannya kalau kita merestart instance, Oracle membaca
pga_aggregate_target=100m dari spfile.
• Kalau kita pakai pfile, pga_aggregate_target=100m tidak di-update ke
pfile sehingga ke depannya kalau kita merestart instance,
pga_aggregate_target kembali ke nilai semula. Agar perubahan bersifat
permanen, edit juga parameter pga_aggregate_target di pfile:
2. Kalau instance sedang jalan
Langsung lakukan perubahan di SQLPLus
SQL> alter system set pga_aggregate_target=100m;
Sama seperti penjelasan sebelumnya, kalau pakai spfile maka spfile juga diupdate
secara otomatis. Kalau pakai pfile, agar perubahan bersifat permanen maka pfile harus
diedit secara manual pakai text editor.
Contoh parameter statik adalah db_writer_processes, control_files, sessions, dsb. Berikut ini cara untuk mengubah parameter db_writer_processes yang bersifat statik itu:
1. Kalau instance sedang mati
Kalau pakai pfile, edit pfile pakai text editor, kemudian startup instance.
Edit pfile
SQL> startup
Spfile tidak bisa diedit pakai text editor, kalau tetep dipaksa edit pakai text edior maka
spfile akan corrupt sehingga tidak dikenali oleh Oracle. Spfile hanya bisa diubah
dengan SQLplus ketika instance naik. Jadi naikkan dulu instance, pakai nomount biar
cepet toh kita tidak perlu instance mount atau open, yang penting startup dulu.
Kemudian alter system set db_writer_processes=2 scope=spfile. Perintah ini akan mengedit spfile saja, sementara parameter di
instance sendiri masih belum berubah. Setelah itu, baru startup
SQL> startup nomount
SQL> alter system set db_writer_processes=2 scope=spfile;
SQL> shutdown immediate
SQL> startup
2. Kalau instance sedang jalan
Kalau pakai pfile, database matiin dulu, edit pfile, kemudian restart instance
SQL> shutdown immediate
Edit pfile
SQL> startup
Kalau pakai spfile, alter system dengan scope=spfile, kemudian restart
SQL> alter system set db_writer_processes=2 scope=spfile;
SQL> shutdown immediate
SQL> startup

0 comments:
Posting Komentar