Senin, 04 Januari 2010

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 mengubahnya:

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.
1. 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.
2. 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

Catatan

1. Perintah alter system set pga_aggregate_target=100m by default kalau pakai spfile, maka
alter system set pga_aggregate_target=100m scope=both
Dan kalau pakai pfile. maka
alter system set pga_aggregate_target=100m scope=memory
2. Kita tidak bisa menjalankan alter system set db_writer_processes=2 karena ini adalah parameter static. Kalau masih dipaksa akan muncul error:

SQL> alter system set db_writer_processes=2;
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
Parameter static hanya bisa diubah di scope=spfile
SQL> alter system set db_writer_processes=2 scope=spfile;
System altered.
3. Kalau dilihat pakai text editor, spfile berisi sama seperti pfile, hanya ada entry yang "aneh-aneh" (yang bukan merupakan parameter instance) di baris pertama.
4. Contoh kasus.

Instance saya hanya punya spfile (spfileDATAKU.ora) dan tidak punya pfile (initDATAKU.ora)> Suatu ketika saya ingin mengubah parameter static (misalnya control_files). Karena ketidak tahuan, parameter control_files saya edit di spfileDATAKU.ora pakai text editor (notepad).

Karena spfile adalah file binary, maka spfile menjadi rusak karena diedit pakai text editor, sebagian akibatnya Oracle tidak bisa membacanya. Karena spfile tidak bisa dibaca, maka Oracle mencari pfile. Karena saya tidak punya pfile sementara spfile-nya corrupt, ya akhirnya saya tidak bisa startup instance
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’

Waduh… gimana ini?!! Solusinya, buat pfile initDATAKU.ora yang isinya sama persis dengan spfileDATAKU.ora, dengan catatan: jangan ikut sertakan entry spfileDATAKU.ora yang aneh-aneh di baris pertama itu.

Untuk melihat isi spfile spfileDATAKU.ora, di unix gunakan perintah more. Di Windows, gunakan wordpad; kalau pakai notepad biasanya tampilannya amburadul.

Sumber: http://rohmad.net

0 komentar:

Posting Komentar

BTemplates.com

Diberdayakan oleh Blogger.

Pages

Profil

Foto saya
Jakarta, jakarta selatan, Indonesia
Remaja. Tinggal di Jakarta. Sedang berusaha menemukan jawaban dari "Siapa saya?". Mencintai binar mata kanak-kanak, langit senja, aroma tanah basah, gelembung sabun, cokelat panas, tertawa keras-keras, dan berpelukan. Tergila-gila pada blog, humor, dan segala jenis buku. Teman yang menyenangkan dan menyebalkan, tergantung suasana hati. Baginya, menulis adalah terapi sekaligus sarana pencarian jati diri. Jadi, jangan tertipu oleh tulisan. Sapa dia jika bertemu di jalan, karena dia akan menyapa balik. Tapi jangan coba-coba menginjak kakinya di dalam angkot, atau menghembuskan asap rokok tepat di mukanya.

Followers

Total Tayangan Halaman

Popular Posts

Blog Archive