Kamis, 20 November 2014

Struktur Database Oracle

Struktur Database Oracle
Izzuddin Gumilar
Dalam artikel sebelumnya, telah dibahas penjelasan antara oracle instance dan oracle database. Kali ini akan kita bahas struktur database yang dimiliki oleh oracle. Secara garis besar, database oracle memiliki tiga buah struktur utama yaitu memory structure, process structure, dan strorage structure. Oracle Instance menggunakan memory dan process structure untuk dapat berjalan sedangkan oracle database menggunakan storage structure untuk dapat menyimpan data file maupun control file di dalam database tersebut. Tentu ketiga struktur utama ini sangat penting karena tanpa adanya salah satu komponen saja, maka oracle instance tidak dapat mengakses oracle database atau sebaliknya oracle database tidak dapat diakses oleh oracle instance.


Memory Stucture
Di dalam memory structure terdapat dua buah komponen yaitu :
a. System Global Area (SGA)
SGA merupakan shared memory yang dapat digunakan oleh seluruh server process dan background process. Di dalamnya tersimpan informasi-informasi yang berupa data file dan control file dari instance.
Di dalam SGA terdapat struktur data sebagai berikut :
- Database Buffer Cache : berisi cache blok data yang berisi hasil pengembalian dari proses query database.
- Redo log buffer : menyimpan redo information yang digunakan untuk instance recovery. Informasi tersebut akan disimpan hingga ditulis ke dalam physical redo log file di dalam storage disk.
- Shared Pool : menyimpan berbagai macam konstruksi / informasi yang dapat dishare di antara user database.
- Large Pool : merupakan area optional yang dibutuhkan jika ada proses-proses yang memakan memory cukup besar seperti backup and recovery dan proses server I/O.
- Java Pool : digunakan oleh java code atau data yang menggunakan Java Virtual Machine (JVM).
- Stream Pool : Digunakan oleh Oracle Stream untuk proses streaming.
-
b. Process Global Area (PGA)
Berbeda dengan SGA, PGA lebih spesifik hanya digunakan secara khusus oleh masing-masing server dan background process. Minimal ada satu PGA yang dimiliki oleh tiap server process. Setiap PGA menyimpan data dan control information dari masing-masing proses yang menyediakan layanan dari tiap request oracle client.

Process Structure
Ketika sebuah program aplikasi atau tool oracle meminta service kepada oracle server, maka akan dibuatlah sebuah server process yang digunakan untuk mengeksekusi perintah yang dikeluarkan oleh program aplikasi tersebut. Masing-masing server process memiliki sebuah PGA tersendiri. Selain itu, oracle server akan membentuk beberapa background process untuk oracle instance yang akan berinteraksi antara satu dengan yang lainnya dan juga dengan sistem operasi untuk mengatur penggunaan memory structure, proses penulisan data I/O ke dalam disk, maupun tugas-tugas lainnya. Background process tersebut meliputi :
a. System Monitor (SMON) : Melakukan crash recovery jika pada start saat oracle instance terjadji kesalahan.
b. Process monitor (PMON) : Melakukan process cleanup ketika user process gagal dieksekusi.
c. Database writer (DBWn) : Menulis block-block yang telah berubah / termodifikasi dari database buffer cache ke dalam data file di dalam storage structure.
d. Checkpoint (CKPT) : Melakukan update seluruh data file dan control file yang berdasarkan check point yang paling akhir.
e. LogWritter (LGWR) : Menulis redo log entry yang berasal dari redo log buffer ke dalam redo log file di dalam storage structure.
f. Archiver (ARCn) : Mengopy redo log file ke dalam archival strorage pada saat log switch terjadi.
Pada saat program aplikasi menjalankan query ke dalam oracle server, maka oracle server akan mencari block data yang dimaksud ke dalam database buffer terlebih dahulu. Jika data yang dicari ditemukan maka data tersebut akan langsung dikembalikan ke program aplikasi, namun jika ternyata data yang dimaksud tidak ada di dalam database buffer, maka oracle server akan melakukan pencarian data ke dalam datafile di storage structure dan mengcopy data tersebut ke dalam database buffer sebelum dikembalikan ke program aplikasi yang merequest. Oracle server telah memiliki algoritma least recently used yang digunakan dalam pengaturan data mana saja yang masih dapat disimpan di dalam database buffer cache.

Physical Database Structure
Sebenarnya ada tiga file utama yang dapat dikatakan sebagai dasar pembentuk dari sebuah oracle database. Tanpa adanya salah satu file ini, maka database oracle tidak akan dapat digunakan. File-file tersebut adalah:
a. Control File : Control file merupakan file yang sangat penting karena berisi informasi mengenai physical database structure oracle. Tanpa adanya control file ini, maka kita tidak akan dapat mengakses data-data yang berada pada data file karena letak physical dari data file di dalam disk tersebut disimpan di dalam control file ini. Biasanya dalam oracle server terdapat lebih dari satu (biasanya 3) control file yang diletakkan pada directory yang berbeda agar jika suatu saat salah satu control file rusak, masih dapat direcovery dari control file yang lain.
b. Data File : berisi data user maupun aplikasi database.
c. Online redo log file : digunakan dalam proses instance recovery database apabila telah terjadi kerusakan. Jika datafile masih ada, maka oracle instance akan dapat merecovery database sesuai dengan data yang tersimpan di dalam online redo log file. Namun jika ternyata setelah terjadi kerusakan datafile hilang, maka database sudah tidak dapat direcovery lagi.
Selain ketiga file di atas, ada beberapa file tambahan yang juga sangat penting dalam oracle server.
a. Parameter file : berisi informasi konfigurasi oracle instance pada saat start up.
b. Password file : berisi informasi user agar user dapat melakukan koneksi dan administrasi ke dalam database server.
c. Backup file : Digunakan dalam proses database recovery apabila file database asli rusak.
d. Archive log file : Digunakan untuk menyimpan history operasi-operasi yang dilakukan terhadap database.
e. Trace dan alert log file : Berisi informasi-informasi kesalahan apabila terjadi internal error pada server dan background proses.

Tidak ada komentar:

Posting Komentar