Pengertian Database

Database adalah sekumpulan data yang diperlakukan sebagai sebuah unit. Tujuan database adalah untuk meyimpan dan menggunakan kembali (untuk diolah) informasi.

Arsitektur Database Oracle – Koneksi ke Server

User bisa tersambung dengan server bisa melalui salah satu dari tiga cara: 1.User login pada sistem operasi yang menjalankan instance oracle, kemudian menjalankan aplikasi atau tool untuk mengakses database pada sistem operasi tersebut pula.

Sekilas Arsitektur Server Database Oracle

Ada tiga struktur pokok yang ada pada arsitektur server database oracle: 1. Memori struktur 2.Proses Struktur 3.Storage Struktur. Sebuah System Database Oracle selalu berisi dua hal : sebuah Database Oracle dan sebuah instance database.

Instance : Database Configuration

Setiap sebuah Instance diasosiasikan sebuah database, dan hanya satu database. Apabila terdabat banyak instance dalam sebuah server maka masing-masing instance tersebut mendefinisikan database tertentu. Sebuah Instance tidak bisa di share.

Saturday, February 28, 2015

SQL Server 1.b Failover Clustering

Failover Clustering

Adalah teknik yang menggunakan teknologi cluster Instance(asosiasi database dalam memory) SQL Server untuk melindungi kegagalan Instance saat melayani user database. Failover clustering didasarkan pada solusi perangkat keras yang terdiri dari beberapa server (dikenal sebagai node) dimana beberapa nodes berbagi disk yang sama.  Hanya satu server yang aktif dan memiliki database. Jika server ini gagal, maka server lain (yang di cluster) akan mengambil alih kepemilikan database dan terus melayani user.

Syarat utama
Ketika membahas High Avalaibility, masing-masing teknik memiliki istilah sendiri-sendiri dalam masing-masing bagian,  Berikut adalah beberapa istilah failover cluster. Anda harus akrab dengan istilah tersebutr ketika menyiapkan teknik failover cluster:
  1. Node: Server yang berpartisipasi dalam cluster failover.
  2. Resource grup: Disk yang di share atau resource network dikelompokkan bersama-sama untuk bertindak sebagai unit kerja tunggal.
  3. Node Aktif: Node yang memiliki kepemilikan kelompok sumber daya.
  4. Node Pasif: Node yang menunggu di node aktif gagal untuk mengambil kepemilikan dari kelompok sumber daya.
  5. Heartbeat: Pemeriksaan kesehatan yang dikirim antara node untuk menjamin ketersediaan setiap node.
  6. Public Network: Jaringan yang digunakan untuk mengakses failover cluster dari komputer klien.
  7. Private Network: Jaringan yang digunakan untuk mengirim heartbeat message antara node.
  8. Quorum: Sebuah Resource Group khusus yang menyimpan informasi tentang node, termasuk nama dan negara masing-masing node.

Friday, February 27, 2015

SQL Server 1.a Solusi untuk masalah High Availability

Arti Yang Tepat Untuk Istilah High Availability (ketersediaan tinggi)?





Penting untuk memahami apa yang sebenarnya arti High Availability (ketersediaan tinggi). Istilah High Availability dan Disaster Recovery(pemulihan bencana) sering rancu atau dianggap sebagai hal yang sama. Hanya karena Anda telah menerapkan solusi High Availability tidak berarti bahwa Anda siap untuk bencana. High Availability umumnya mencakup perangkat keras atau yang berhubungan dengan kegagalan sistem, sementara Disaster Recovery(DR) dapat digunakan dalam hal kegagalan karena faktor bencana alam. Sementara beberapa pilihan High Availability dapat membantu Anda ketika merancang Strategi Disaster Recovery Anda, tapi pilihan-pilihan tersebut bukan solusi terakhir dalam permasalahan Disaster Recovery.

Tujuan dari High Availability adalah untuk memberikan pengalaman user dari gangguan dengan nol kehilangan data; tetapi ketersediaan yang tinggi dapat memiliki banyak arti yang berbeda, tergantung pada siapa Anda bertanya. Dalam sudut pandang database SQL Server arti yang pas dari High Availability adalah "solusi ketersediaan dari kegagalan perangkat keras atau lunak dan menjaga ketersediaan aplikasi sehingga downtime yang menimpa pengguna bisa diminimalkan. "

Sering kali user akan mengatakan bahwa mereka perlu ketersediaan 100%, Apakah hal ini berarti bahwa data 100% tersedia selama jam kerja, Senin sampai Jumat, atau bahwa data tersedia 24 jam dalam 7 hari (24/7)? benarkah begitu?

Ketersediaan tinggi adalah tentang pengaturan harapan hidup suatu system namun hiduo atu tidak-nya system terserah usernya. Itulah sebabnya salah satu hal yang paling penting untuk dilakukan ketika berhadapan dengan high availability (ketersediaan tinggi) adalah untuk menentukan harapan mereka dalam Service Level Agreement (SLA) yang dapat disepakati dan ditandatangani oleh semua pihak yang terlibat.

Beberapa hal yang harus tercover dalam SLA adalah maintenance windows server, lamanya
pemulihan waktu yang diizinkan untuk membawa sistem kembali online karena insiden kegagalan, dan jumlah kehilangan data yang berhasil di-recovery (jika berhasil). Mendefinisikan pemeliharaan windows server memungkinkan Anda untuk menerapkan service pack, patch, dan upgrade ke sistem untuk memastikan kinerja yang optimal dan menjaga compliance(kepatuhan). Memiliki pemeliharaan windows server memungkinkan Anda untuk melakukan hal ini dalam pengujian dan perancanaan yang baik. Saat kejadian mati (drop) harus sudah ditentukan sehingga rencana dapat dieksekusi jika masalah terjadi.

Mendefinisikan jumlah waktu yang diizinkan untuk proses pemulihan dari bencana dan mendifiniskan batas maksimal diizinkannya kehilangan data akan membantu Anda menentukan teknik apa yang mungkin perlu di gunakan untuk memastikan bahwa SLA Anda terpenuhi.

Teknik - teknik solusi high availability pada SQL SERVER adalah sebagai berikut :
1. Failover Cluster
2. Mirroring Mode High Safety
3. Mirroring Mode High Performane
4. Log Shipping
5. Replication.

Wednesday, February 25, 2015

Arsitektur Database Oracle - 14. Arsitektur Process

Arsitektur proses dalam oracle dibagi menjadi tiga bagian :


1.    User Process
Proses yang terjadi pada aplikasi user, contoh seperti SQL *Plus, bisa terjadi satu mesin dengan database atau beda mesin.
2.    Database Process.
Dibagi menjadi 2 :
a.    Server Process = Dilakukan untuk meng-eksekusi permintaan dari user proses.
b.    Background Process = Dilakukanp instance bersama dengan OS untuk melakukan hal-hal sebagai berikut : mengatur struktur memori, melakukan proses I/O secara asinkronus untuk membaca disk, dan tugas-tugas yang lain.
Struktur Proses sering berubah-ubah tergantung konfigurasi yang digunakan, ada dua kode konfigurasi yang digunakan user :
?    Dedicated Server : setiap session aplikasi database berjalan melalui sebuah user proses akan dilayani oleh satu server process.
?    Shared Server : permintaan multi session akan dilayani hanya dengan satu server proses.
3.    Daemon / Aplication Process
Untuk Listener Network dan Infrastruktur Grid.

Arsitektur Database Oracle - 12. Struktur Memori Database Oracle - PGA

Program Global Area (PGA)









Program Global Area :
•    Area memory khusus yang berisi data dan informasi yang berhubungan dengan control terhadap server proses.
•    Setiap satu server proses ditangani satu PGA
•    Setiap user yang terconnect dengan instance mempunyai sebuah server proses sendiri bila menggunakan dedicated server.
Didalam PGA ada User Global Area (UGA) dan Stack Space. Isi dari UGA :
1.    Cursor Area   : menyimpan informasi runtime yang ada pada cursors.
2.    User Session  : area storage data untuk mengontrol informasi tentang session.
3.    SQL Working Area : SQL Working area terdiri dari =
•    Sort Area : Berfungsi menangani data pada query seperti order by dan group by.
•    Hash Area : Menangani Hash Join Table.
•    Create Bitmap Area : Untuk membuat bitmap area dalam datawarehouse.
•    Bitmap Merge Area : untuk mengatasi bitmap plan execution.

Arsitektur Database Oracle - 11. Struktur Memori Database Oracle - Java Pool n Stream Pool

Java Pool and Stream Pool








•    Java Pool : digunakan untuk menyimpan seluruh session-spesifik java dan data dalam JVM. Memori Java Pool digunakan dengan caara yang berbeda-beda, tergantung mode menjalankan database oracle.
•    Stream Pool : digunakan secra khusus oleh Oracle Streams. Stream Pool menyimpan pesan antrian yang terbuffer. Dan menyidiakan memory untuk digunakan proses capture oracle stream dan menjalankan proses-proses tersebut.
Ukuran stream pool diset nol, kecuali kalau kamu secara khusus meng-configure-nya. Pool akan tumbuh secara dinamik sesuai dengan kebutuhan oracle stream yang digunakan.

Catatan : Java Programming dan Stream Pool dibahas diluar bab ini.

Arsitektur Database Oracle - 10. Struktur Memori Database Oracle - Large Pool

Larger Pool



Database Administrator bisa mengatur memory tambahan yang biasa disebut Large Pool dalam kaitannya dengan masalah alokasi memori sebagai berikut :
•    Session memory untuk shared server dan oracle XA Interface (digunakan ketika transaksi berinteraksi dengan multi server).
•    I/O proses
•    Operasi restore dan backup pada database Oracle.
•    Operasi query  pararel
•    Query yang menmakan memori banyak dan storage banyak.
Dengan mengalokasikan memory session dari large pool untuk diberikan kepada shared pool, Oracle XA, atau pararel query buffer. Database Oracle bisa menggunakan shared pool sebagai sebagai penampung utama untuk menampung shared SQL dan menghindari kinerja yang overhead(berlebihan) yang disebabkan shrinking(penyusutan) pada shared SQL chace. 
Tambahan : memori yang digunakan untuk proses operasi restore dan backup database oracle , untuk I/O server process dan untuk parrarel buffer dialokasikan didalam buffer-buffer berukuran ratusan kilobyte. Dan Large Pool lebih mampu menangani kebutuhan memori besar seperti ini dari pada shared pool.
Dan Large Pool tidak diatur oleh LRU (Least Recently Used) List.

Arsitektur Database Oracle - 9. Struktur Memori Database Oracle - Redo Log Buffer


Redo Log Buffer



Redo log buffer Merupakan Buffer (penahan) yang bekerja secara circular yang bertugas menangani informasi  tentang perubahan yang terjadi pada database. Informasi tersebut di simpan dalam redo-entries . Redo entries berisi informasi yang penting yang berfungsi untuk menyusun ulang perubahan yang dilakukan oleh database yang disebabkan DML(data manipulation language), DDL(Data definition Language) atau operasi iternal. Data Entries digunakan ketika proses recovery database dibutuhkan.
Ketika proses server menyebabkan perubahan didalam buffer cache , redo entries di generate dan ditulis didalam redolog buffer yang ada di dalam SGA. Redo Entries selanjutanya berjalan terus secara berurutan menempati space yang kosong di dalam buffer. Penulisan log background process akan  menulis redo log buffer pada redolog file (atau group files) yang aktif di dalam disk.

Tuesday, February 24, 2015

Arsitektur Database Oracle - 8. Struktur Memori Database Oracle - database buffer cached

Database Buffer Cache

Database Buffer Cache merupakan bagian dari SGA, dia yang bertugas membaca block image dari data files, Database Buffer Cache terbentuk secara dinamik untuk menjamin proses membaca datafile tetap konsisten. Seluruh user yang konek ke instance secara bersamaan maka user tersebut bersama-bersama mengakses database buffercache.
Ketika User DB Oracle melakukan permintaan berbagai potongan data , maka akan dicarikan didalam Database Buffer Cached terlebih dahulu. Apabila proses pencarian berhasil maka data bisa di akses langsung dari memory. Apabila proses pencarian pada cache tidak ditemukan maka akan dicopykan dari datafile. Pengaksesan data lewat cache lebih cepat jika dibanding mengambil dari datafile.
Buffer di dalam cache di atur oleh algoritma yang komplek yang menggunakan kombinasi Least Recently Used (LRU) List dan  Touch Count. LRU yang membantu memastikan blok yang paling terakhir digunakan akan dirawat didalam memory untuk mengurangi akses disk.
Keep Buffer Pool dan Recycle Buffer Pool untuk menangani mempercepat buffer pool khusus.  Keep Buffer Pool bertugas untuk menahan buffer didalam memory agar lebih lama dari pada normalnya waktu tahanan yang dilakukan LRU.

Arsitektur Database Oracle - 7. Struktur Memori Database Oracler - Shared Pool

Shared Pool



Merupakan Bagian Dari SGA, Shared Pool tersusun dari elemen berikut : library cache , data dictionary cache, SQL query result cache, PL/SQL result cache , buffer untuk pesan eksekusi parallel , dan struktur control  (control structured).
Data Dictionary : merupakan sebuah koleksi table-table dan view-view database yang berisi informasi referensi (reference information) tentang database tersebut, baik tentang struktur nya maupun user nya. Database Oracle mengakses data dictinary secara berulang-ulang selama memparsing statement bahasa SQL. Pengaksesan kepada data dictionary ini merupakan dasar/awal dari kelanjutan proses operasi secara keseluruhan di dalam Database Oracle.
Data dictionary diakses sebegitu seringnya oleh 2 area lokasi khusus yang ada di memory, dan memang kedua arean lokasi ini didesain untuk menangani Data dictionary. Pertama disebut data dictionary cached juga dikenal sebagai row cached, karena dia yang menangani row-row data bukan buffer(karena buffer menangani kesuluruhan blok data). Area yang lai dinamakan library cache . Semua proses user databasase oracle mengakses dua tempat ini untuk mengakses dictionary information.
 Database Oracle menggambarkan setiap perintah SQL yang sedang berjalan dengan men-shared sebuah Shared SQL Area (sama halnya sebuah private SQL area yang disimpan dalam PGA). Database Oracle mengizinkan ketika ada dua user mengeksekusi SQL yang statementnya sama dan Shared SQL Area akan digunakan kembali untuk melayani permintaan user tersebut.
Sebuah Shared SQL Area yang berisi parsing tree dan execution plan di shared untuk satu Statement SQL. Database Oracle mengamankan memory dengan menggunakan satu Shared SQL Area untuk menjalan perintah SQL yang sama dalam waktu yang berbeda. Dimana hal ini sering terjadi di lapangan ketika beberapa user menggunakan aplikasi yang sama. Ketika sebuah perintah SQL di parsing , database oracle mengalokasikan memory dari shared pool untuk disimpan didalam shared sql area. Ukuran memory yang dialokasikan bergantung kompleksitas perintah SQL-nya.
Sql Query Result Cache and PL/SQL Function Result: dua cache ini merupakan fasilitas baru di oracle 11g. Mereka mempunyai infrastructure shared yang sama. Hasil catatan dari eksekusi query dan potongan query disimpan di dalam Sql Query Result Cache. Database bisa menggunakkan hasil catatan eksekusi query  ini saat mengeksekusi query ini lagi di kemudian waktu. Karena akan lebih cepat daripada menjalankan query baru (rerunning).
Fixed Area didalam Shared Pool menangani beban yang melebihi kapasitas(overhead) dari Shared Pool.
sealkazzsoftware.blogspot.com resepkuekeringku.com