Sebelum memahami arsitektur oracle kita harus pahami Oracle Server, yaitu sebuah Database Management System (DBMS) yang memiliki sifat terbuka, comprehensive, dan terintegrasi untuk mengelola informasi. Oracle Server terdiri dari :
- Oracle Instance
- Oracle Database
Pada artikel kali ini, kita akan membahas tentang memahami Arsitektur Oracle Database. Arsitektur Oracle Database terdiri dari 3 struktur yaitu :
- Struktur Memory (Memory Stuctures)
- Struktur Proses (Process Structures)
- Struktur Penyimpanan (Storage Structures)
- Struktur Memory (Memory Structures)
Saat Oracle Database bekerja, Oracle software mengalokasikan sebuah area shared memory yang disebut dengan SGA (Shared global Area) dan kemudian menjalankan beberapa background proses. Kombinasi dari SGA dan background process inilah yang disebut dengan Oracle Instance.
Struktur Memory Oracle terdiri dari :
SGA (Shared Global Area) : Merupakan area memory yang menyimpan data dan control information untuk Instance. SGA sendiri dishared oleh server dan background process.
PGA (Program Global Area): Merupakan area memory yang menyimpan data dan control information untuk setiap server proses. PGA inilah yang meng-handle server proses. Setiap proses memiliki satu PGA. PGA bersifat Private.
SGA terdiri dari :
Shared Pool: Menyimpan semua aktivitas pengguna agar tidak terjadi parsing.
contoh : sebuah SELECT statement akan dieksekusi. Statement tersebut disimpan ke cache Shared Pool. Apabila statement tersebut ingin dieksekusi kembali, tidak perlu menyimpan ke cache Shared Pool (parsing) kembali melainkan ambil dari Shared Pool dan langsung eksekusi
Streams Pool : digunakan untuk menyimpan data untuk kepentingan replikasi database.
Large Pool : Memiliki kapasitas yang besar dan Biasa digunakan untuk recovery, backup, restore. Large Pool menyimpan session information ketika oracle dalam mode shared.
Java Pool : Memiliki fungsi hampir sama dengan Shared Pool tetapi menyimpan eksekusi yang menggunakan bahasa atau aplikasi Java.
Database Buffer Cache : Menyimpan hasil eksekusi dari Shared Pool. Hasil eksekusi yang disipan hanya yang bersifat READ ONLY saja. DB Buffer Cache menggunakan LRU (Least Recent Use) sehingga akan menghapus data yang baru masuk apabila sudah full.
Redo Log Buffer : Menyimpan semua eksekusi yang memodifikasi data database. Hasil modifikasi ini akan disimpan dalam redo log buffer saat user melakukan commit. Apabila user belum melakukan commit, perubahan data yang telah dilakukan tidak dapat dilihat atau diakses oleh user yang lain.
Struktur Proses Oracle terdiri dari :
User Process
User Process adalah proses ketika user melakukan suatu aktivitas pada instance. Contohnya ketika user ingin melakukan login atau membuka suatu program. Satu user process dapat memiliki 2 server process yaitu ketika user login sebagai sys dan login kembali sebagai hr pada terminal yang lain
Server Process
Server Process Terjadi ketika pengguna berhasil melakukan login (Connect Database / Connect SQL Plus). Server process dihapus ketika user berhasil logout
Background Process
Background Process adalah proses yang tidak terlihat oleh user
Beberapa Background Process antara lain :
SMON (System Monitor) : SMON melakukan koneksi oracle instance ke dispatcher / listener. Selain itu, SMON melakukan monitoring dispatcher pada saat mode shared server. SMON juga melakukan crash recovery apabila instance terjadi failure
PMON (Process Monitor) : Berfungsi mengecek background process yang sedang mati / idle. PMON bertugas untuk merestart process yang di kill.
DBWN (Database Writer) : DBWn berfungsi mencegah hard parsing seperti cek sintaks dan cek semantic pada statement. DBWn juga berfungsi untuk menulis modified block dari db buffer cache ke data file.
LGWR (Log Writer) : Berfungsi untuk menulis data yang berubah ke redo log files.
ARCn (Archiver): Berfungsi untuk mengcopy data dari redo log file ke archive log file.
CKPT (Checkpoint) : berfungsi untuk mengupdate control file dan data file
Berikut merupakan proses ketika user connect ke instance dan melakukan update
Instancenya running -> User login -> diverifikasi oleh server proses -> user update row -> ditanggapi oleh server proses -> menuju ke sga -> di cek oleh server proses ada ga statement updatenya di shared pool.
Kalau ada, dia ga perlu parsing lagi tinggal gunain yang ada di shared pool tetapi sebelum bisa digunain bakal di cek lagi privilege dari si user.
Kalau ga ada dia bikin area shared sql yang baru di shared pool untuk statement tersebut -> Server proses bakalan nerima data yang dibutuhkan dari data file (table) atau dari data blok yang tersimpan di dalam sga -> server proses mengubah data tabel yang diterimanya -> saat transaksinya di commit, LGWR akan menuliskan perubahan tersebut ke dalam redo log file dan DBWn akan menulis data blok yang telah dirubah ke dalam disk -> server proses mengirimkan pesan kepada user
Struktur Penyimpanan (Storage Structures)
Terdapat 2 tipe struktur penyimpanan pada oracle database, yaitu :
- Logical Storage
- Physical Storage
Logical Storage
Database : Tempat penyimpanan data
Schema : Kumpulan object – object database yang dimiliki user
Tablespace : Tempat penyimpanan untuk segment
Segment : Merpukan object database yang memiliki data
Extend : sekumpulan data blok membentuk extend
Oracle Data Block : bagian terkecil dari database
Dari gambar di atas dapat dijelaskan bahwa satu database memiliki satu atau banyak schema atau tablespace. Satu tablespace memiliki satu atau banyak segment atau datafile. Satu segment mempunyai banyak extend. Satu extend hanya mempunyai satu datafile dan banyak data block.
Physical Storage
File Fisikal database terdiri dari dua jenis, yaitu critical dan Noncritical file. Critical File adalah file yang harus ada, karena jika file ini hilang, database tidak akan dapat bekerja. Noncritical file
adalah kebalikannya.
Source :
http://rohmad.net/2008/04/17/arsitektur-database-oracle/
Oracle Administation 10g