Arsitektur Database Oracle (2)

Background Proses


Untuk memaksimalkan kinerja dan untuk mengakomodasi kepentingan banyak user, sistem Multiproses Oracle menggunakan proses yang disebut background process, proses-proses yang ada disini berfungsi sebagai penjembatan antara Instance (SGA & PGA) dengan database (datafiles, control files, redo log files). Sistem oracle dapat mempunyai banyak background process, tergantung dari konfigurasinya. Background process tersebut adalah sebagai berikut:

  • Database Writer (DBWR)
  • Log Writer (LGWR)
  • Checkpoint (CKPT)
  • System Monitor (SMON)
  • Process Monitor (PMON)
  • Archiver (ARCH)
  • Recoverer (RECO)
  • Lock (LCKn)
  • Snapshot Refresh (SNPn)
  • Shared Server (Snnn)
  • Dispatcher (Dnnn)
  • Parallel Query (Pnnn)
Proses PMON dan SMON berfungsi untuk me-reclaim sumber daya database yang tidak dibutuhkan lagi oleh seorang user.

PMON (Process Monitor)
  • me-Clean up hubungan yang diputuskan secara tidak normal
  • me-Rollback transaksi yang belum di commit
  • me-Release locking yang dipegang oleh suatu proses yang terminated
  • Membebaskan sumber daya SGA (Memori SGA) yang dialokasikan pada proses yang gagal
  • Me-restart proses server shared yang gagal dan men-dispatch proses-prosesnya.
SMON (System Monitor)
  • Melakukan recovery instance secara otomatis.
  • me-Reclaim space yang digunakan oleh Temporary segment yang tidak digunakan lagi
  • Melakukan merge free space area pada datafile.
Empat Mandatory Process
  • PMON, SMON, DBWR dan LGWR adalah proses mandatory yang harus dijalankan pada suatu instance Oracle. sementara proses lain nya optional
  • PMON, SMON, DBWR dan LGWR tidak bisa dikendalikan dengan mengubah parameter inisialisasi
Jika ada salah satu dari empat proses yang gagal, instance akan crash dan harus direstart.







Proses RECO, LCKn, Pnnn dan SNPn
RECO, LCKn, Pnnn, dan SNPn akan dicreate ketika menggunakan salah satu Add On Option.


Proses

  • Reco me-resolce kegagalan yang terlibat dalam suatu transaksi terdistribusi
  • LCKn melakukan interinstance locking pada suatu sistem server paralel
  • Pnnn menyediakan query paralel, pembuatan index paralel, loading data paralel, dan kemampuan CREATE TABLE AS SELECT paralel.
  • SNPn melakukan refresh secara otomatis dari snapshots (table replikasi read-only). Proses tersebut juga akan bertanggung jawab pada antrian pekerjaan server dan antrian replikasi.
Options
  • Paralel Query Option adalah suatu licensed product yang terpisah
  • Procedural Option dibutuhkan untuk snapshots. hal itu termasuk dalam Oracle7 Server
  • Distributed Option dibutuhkan untuk transaksi terdistribusi. Option ini adalah licensed product yang terpisah.
  • repilcation Option adalah suatu licensed product yang terpisah.



Proses User




Suatu proses user digunakan ketika seorang user menjalankan suatu program aplikasi. proses User:

  • Menjalankan tool / application atas pertimbangan client. contohnya Server Manager, Oracle Forms dan Pro*C.
  • mem-pass SQL ke proses server untuk mendapatkan hasil..



Proses Server


sebelum data dapat diakses, sebuah proses server harus menempatkan data terlebih dahulu ke Database Buffer Cache. Untuk memproses perintah SQL, proses server akan menggunakan shared memory dalam SGA.


Task Proses Server

  • Melakukan parsing dan mengeksekusi perintah SQL
  • membaca blok data dari disk ke buffer database (Database buffer cache) shared di SGA
  • mengembalikan hasil dari perintah SQL ke proses USer.





























asa

















0 komentar:

Dengan mengirim komentar disini, Anda menyetujui bahwa komentar anda tidak mengandung Rasis ataupun konten pornografi

Arsitektur Database Oracle (1)

Arsitektur Database Oracle terdiri dari 2 bagian:

  • Instance Database
  • Database
Instance database adalah segala hal yang berhubungan dengan Memory.

Sedangkan Database adalah bentuk Physical dari database oracle, dimana terdapat 3 bagian, yakni: Datafiles, Controlfiles dan Redo logfiles.


Instance Database Structure
Instance database terdiri dari blok besar SGA (Shared/System Global Area) dan PGA (Private Global Area).

Blok Database Instance.
from docs.oracle.com

Di dalam SGA Terdapat : 
  • Mandatory: Shared Pool, Database Buffer Cache, Redo Log Buffer, Streams Pool 
  • Optional : Large Pool dan Java Pool
Jadi, SGA adalah kumpulan (group) dari struktur shared memory yang memuat data dan informasi pengendali untuk suatu Sistem Basisdata Oracle. SGA harus selalu berada di dalam memori yang non-paged atau non-swapped. jika banyak user yang terhubung bersamaan, maka data pada SGA akan di shared diantara user-user tersebut. Ini mengapa SGA banyak diartikan sebagai (Shared Global Area).

Shared Pool

Shared Pool adalah suatu bagian dari SGA yang memuat konstruksi shared SQL Area dan Data Dictionary Cache.

** Shared SQL Area: adalah bagian dari SGA yang berisi segala macam sintaks SQL yang pernah dilakukan atau di eksekusi oleh USER. Setiap shared SQL area mengandung informasi yang digunakan untuk menjalankan suatu perintah SQL tunggal. proses-proses yang berjalan akan mengeksekusi perintah-perintah SQL identik yang informasinya di share. suatu perintah SQL ditempatkan pada suatu shared SQL Area berdasarkan pada suatu algoritma hashing yang diterapkan pada perintah tersebut. oleh karena itu, hanya perintah-perintah yang sama seluruhnya yang akan dialokasikan ke lokasi memori yang sama. bisa juga disebut Library Cache

** Private SQL Area: adalah bagian dari PGA yang berisi segala sintaks Private SQLS (Explicit cursor SQLs) yang dilakukan di tiap session.

beda dari keduanya adalah, Shared SQL Area dilakukan pada arsitektur multi-threaded dimana yang menangani proses session adalah SGA, sedangkan untuk Private SQL Area adalah bila sebuah session dijalankan pada sebuah arsitektur Dedicated (diambil alih oleh PGA = Private Global Area)

** Data Dictionary Cache
Data Dictionary merupakan suatu kumpulan tabel dan view basisdata yang mengandung referensi informasi tentang basis data, struktur, dan user. data yang disimpan dalam data dictionary adalah sebagai berikut:
  • Nama dari semua tabel dan views dalam basis data
  • Nama dan tipe data dari kolom dalam tabel basis data
  • Privileges dari semua user Oracle
Content Shared Pool
  • Teks perintah SQL atau PL/SQL
  • Hasil parsing dari perintah SQL atau PL/SQL
  • Rencana eksekusi dari perintah SQL atau PL/SQL
  • Data Dictionary cache yang mengandung baris dari informasi data dictionary


Jadi, bila seorang user login ke database atau aplikasi yang terhubung ke database, dan melakukan eksekusi. maka SQL sintaks tersebut pertama kali akan diakses oleh Shared Pool ini. Meskipun sebelumnya, pada saat dia eksekusi SQL sintaks akan di cek dulu user tersebut login dari arsitektur multi-threaded (ditangani langsung SGA) atau dedicated (ditangani oleh PGA).

Database Buffer Cache

Database buffer cache adalah bagian dari SGA yang berfungsi untuk menyimpan copy dari blog data yang dibaca dari disk. semua user yang terhubung ke sistem memperoleh sharing untuk mengakses database buffer cache.

Pengaksesan Data
  • Cache Miss : Terjadi pada saat pertama kali seorang User mengakses suatu bagian data, proses harus meng-copy data dari disk ke cache sebelum mengakses nya.
  • Cache Hit : Terjadi ketika sebuah proses mengakses bagian data yang sudah ada di cache, proses tersebut dapat membaca data dari memori secara langsung.
sebuah pengaksesan data melalui cache hit akan berlangsung lebih cepat daripada pengaksesan data melalui suatu cache miss. karena cache memiliki keterbatasan ruang, maka semua data pada disk tidak dapat dimasukkan dalam cache. Ketika cache penug, subsekuen cache misalnya akan memberikan intruksi untuk menuliskan data yang sudah ada di cache ke disk untuk membuat tempat bagi data baru. dan akan menyebabkan suatu cache miss (karena data baru di tulis ke disk tuk pertama kali).

Database Buffer Cache akan dikunjungi jika seorang user melakukan query SQL setelah melewati Shared Pool.

Redo Log Buffer

Redo Log Buffer adalah suatu circular buffer yang berisi informasi tentang perubahan-perubahan yang terjadi di database, tugas Redo Log Buffer adalah:
  • Mencatat semua perubahan yang terjadi pada basis data dalam redo log buffer
  • merekonstruksi perubahanyang terjadi pada entry-entry basis data dan rollback segment pada saat terjadi proses recovery
  • dapat di bypass menggunakan kata kunci UNRECOVERABLE pada perintah CREATE TABLE dan CREATE INDEX
  • dapat di bypass oleh ORACLE data Loader











1 komentar:

Dengan mengirim komentar disini, Anda menyetujui bahwa komentar anda tidak mengandung Rasis ataupun konten pornografi