distributed database using oracle

13
Distributed Database Using Oracle Bismillah.. Distributed database : adalah beberapa buah database yang tersimpan dalam beberapa buah computer tyang berbeda yang kesemuanya terintegrasi menjadi satu, sehingga suatu aplikasi hanya mengenal sebagai satu buah sistem database saja [Oracle Documentation]. Perhatikan gambar berikut : Intinya, beberapa database dalam beberapa komputer yang berbeda dapat kita hubungkan menjadi satu dengan menggunakan konsep database terdistribusi. Ada beberapa alasan mengapa data harus didistribusikan : Data didistribusikan untuk meminimalisasikan biaya komunikasi ataupun waktu respon Data dapat tersimpan dalam suatu tempat dimana data tersebut diciptakan sehingga pencipta data dapat melakukan kontrol keamanan data Data dapat direplikasikan untuk meningkatkan ketersediaan pada suatu event kesalahan ataupun untuk mengurangi waktu respon Oracle

Upload: hari-setiaji

Post on 06-Dec-2014

10.168 views

Category:

Education


4 download

DESCRIPTION

File ini akan menjelaskan langkah-langkah implementasi distribusi database menggunakan oracle. Dan ini masih dalam level basic. Enjoy it..

TRANSCRIPT

Page 1: Distributed Database Using Oracle

Distributed Database Using Oracle

Bismillah..

Distributed database : adalah beberapa buah database yang tersimpan dalam beberapa buah computer tyang berbeda yang kesemuanya terintegrasi menjadi satu, sehingga suatu aplikasi hanya mengenal sebagai satu buah sistem database saja [Oracle Documentation].

Perhatikan gambar berikut :

Intinya, beberapa database dalam beberapa komputer yang berbeda dapat kita hubungkan menjadi satu dengan menggunakan konsep database terdistribusi. Ada beberapa alasan mengapa data harus didistribusikan :

Data didistribusikan untuk meminimalisasikan biaya komunikasi ataupun waktu respon Data dapat tersimpan dalam suatu tempat dimana data tersebut diciptakan sehingga

pencipta data dapat melakukan kontrol keamanan data Data dapat direplikasikan untuk meningkatkan ketersediaan pada suatu event

kesalahan ataupun untuk mengurangi waktu respon

Alasan mengapa tabel-tabel pada database haruslah didistribusikan pada beberapa komputer yang terhubung ke jaringan adalah adanya dua alasan :

Secara signifikan meningkatkan performansi, performansi meningkat disebabkan karena penempatan data yang frekuensi aksesnya paling tinggi dekat dengan sisi client

Karena peningkatan suatu sistem, dalam artian bahwa suatu bisnis akan semakin berkembang melebihi kapasitas aslinya sehingga diperlukan multisistem untuk mengolah database ini.

Oracle

Page 2: Distributed Database Using Oracle

Distributed Database vs Replication Database

Istilah-istilah untuk database terdistribusi dan database replikasi saling berhubungan, namun pengertian keduanya sangatlah berbeda.. Dalam sebuah database terdistribusi, suatu sistem me-manage sebuah salinan dari seluruh data dan obyek-obyek database yang mendukungnya. Biasanya aplikasi database terdistribusi menggunakan transaction distributed untuk mengakses kedua-dua data pada database lokal dan remote dan memodifikasi database global secara waktu-nyata.

Istilah replikasi dikenal sebagai suatu operasi dimana bisa menyalin dan memelihara obyek-obyek database dalam sejumlah database yang dimiliki suatu sistem distribusi. Karena replikasi tergantung pada teknologi basisdata distribusi, database replikasi menawarkan keuntungan aplikasi yang tidak tersedia pada lingkungan yang murni database terdistribusi. Biasanya, replikasi dipakai untuk meningkatkan kinerja database lokal dan melindungi aplikasi akibat akses alternatif ke database. Contohnya, suatu aplikasi biasanya mengakses database lokal daripada mengakses data pada server remote untuk meminimalkan jaringan traffic dan untuk menghasilkan kinerja yang maksimal. Selanjutnya, aplikasi tersebut bisa terus berfungsi jika server lokal mengalami kegagalan, tetapi server lainnya yang telah mereplikasi data tetap berfungsi.

Database terdistribusi ini terdiri dari dua macam jika dilihat dari tipe database yang join dalam sistem ini:

Homogeneous Distributed DB Heterogeneous Distributed DB

Homogen Distributed DB berarti database yang terlibat hanya satu macam saja (misal orale-oracle atau Mysql-Mysql), sedangkan yang Heterogeneous Distributed DB berarti database yang terlibat lebih dari satu macam (misal oracle-Mysql atau Oracle-PostgreeSQL). Hampir semua database mendukung konfigurasi secara homogeneous, sedangkan untuk konfigurasi heterogenous didukung oleh Oracle (untuk saat ini), karena oracle menyediakan mekanisme untuk terhubung dengan database lain. Mekanisme ini ditangani oleh suatu agent yang bernama Heterogeneous Service Agent (Oracle emang mantabb, :-P).

Sebelumnya, Oracle telah menyediakan berbagai fasilitas yang cukup lengkap dan memudahkan. So.. simple is best think if you want to doing something.

Oke, sekarang kita masuk ke bagian yang paling menyenangkan, yaitu bagaimana kita mengeset database agar terkoneksi dengan database lain. Database yang digunakan dalam praktek kali ini yaitu Oracle XE (Produk gratis dari oracle). Sebelumnya dokumentasi dan tatacara instalasi Oracle XE saya include dalam tutorial ini.

Page 3: Distributed Database Using Oracle

Dalam praktek kali ini, beberapa konsep yang kita lakukan adalah :

a. Membuat Database Link untuk koneksi database (Homogeneous Distributed DB)b. Membuat Synonym agar mempermudah akses ke tabel pada remote databasec. Membuat Materialized Views untuk performansi Query

A.Membuat Database Link menggunakan Oracle XE

Konsep utama dari sistem basisdata distribusi adalah database link. Databaselink adalah suatu koneksi antara dua server database fisik yang memungkingkan client untuk mengakses datanya sebagai satu database logik

Apa sih keuntungannya kita menggunakan sistem seperti ini? Aplikasi client tidak langsung terhubung dengan database sumbernya Aplikasi client tidak tahu lokasi asal data sebenernya

Lebih secure tentunya

Berikut adalah tipe-tipe link pada database :

Perhatikan gambar berikut :

Page 4: Distributed Database Using Oracle

Kita asumsikan kita ingin mengkomunikasikan antara Server_Pusat dengan Server_A, berikut detail informasi antar kedua database tersebut :a. Server_Pusat

User Schema : server User Password : server IP server_pusat : 192.168.0.1 SID : XE Table : dosen

b. Server_A User Schema : client User Password : client IP server_pusat : 192.168.0.2 SID : XE Table : mahasiswa

Contoh kasus, si Server_Pusat ingin mengetahui isi database dari si Server_A, dan sebaliknya so.. kita membuat database link terlebih dahulu dums, (hehe..).

Persiapan

Sebelumnya anda harus melakukan langkah persiapan agar user yang anda telah buat/ miliki dapat melakukan operasi-operasi pada tutorial ini. Buatlah user dan table pada tiap-tiap komputer sesuai dengan detail informasi diatas (Langkah-langkah ada pada file instalasi Oracle). Lalu lakukan langkah berikut pada taiap user yang telah anda buat.

SQL> conn sys/your_password as sysdba;

SQL> GRANT CREATE DATABASE LINK to useranda;

SQL> GRANT CREATE ANY TABLE to useranda;

SQL> GRANT CREATE ANY TYPE to useranda;

Server_A Server_B

Page 5: Distributed Database Using Oracle

1. Konfigurasi di Server_Pusata. Masuk ke Go to Database Home Page pada Start Menu.b. Login sebagai user yang anda buat sebelumnya.c. Masuklah ke bagian Object Browser , ddan klik tombol Create.d. Pilih Database Link pada pilihan yang ada.e. Isikan definisi database link pada setiap item isian yang ada di form.

f. Setelah itu klik Nextg. Pada layar berikutnya, jika anda ingin melihat perintah SQL yang

digunakan.untuk pembuatan objek Dtabase Link ini, klik link SQL yang tersedia.

h. Setelah anda mengklik tombol CREATE, halaman berikutnya akan menampilkan halaman ringkasan objek.

Page 6: Distributed Database Using Oracle

i. Dari halaman ini, klik TEST untuk menguji koneksi ke komputer tujuan apakah telah berhasil atau belum.

j. Kemudian klik tombol FINISH. Jika koneksi anda berhasil, anda akan menerima konfirmasi tentang hal tersebut. Jika terjadi error ingat kembali konfigurasi yang anda lakukan sudah benar atau belum (Checking itu perlu, hehe..).

k. Sekarang kita menguji apakah database link yang telah kita buat diatas. (Catatan : Perintah yang berlaku untuk database link hanya perintah DML saja seperti Select, Insert, Update, Delete). Link kembali ke halaman HOME, kemudian masuklah ke bagian SQL > SQL Commands. Kemudian berikan perintah sebagai berikut :SELECT * FROM mahasiswa@client;Atau INSERT INTO mahasiswa@client values(values_kolom1, values_kolom1,dsb)

Perhatikan apa yang terjadi..!!Nah, jika semua telah berhasil maka kita telah berhasil nge-remote database target. Teknik inilah yang mendasari konsep Distributed Database di Oracle.Anda dapat melakukan hal serupa pada komputer client seperti langkah-langkah diatas (Mulai dari persiapan*)

2. Membuat Synonym

Dalam Oracle Database, kita bisa membuat synonym agar bisa menyembunyikan nama database link dari user yang disebut juga dengan lokasi transparensi. Synonym memungkinkan kita mengakses suatu tabel pada database remote dengan menggunakan sintaks yang sama saat mengakses database lokal. Synonym sebenarnya adalah sebuah alias yang bisa berbentuk berbagai macam obyek dari skema obyek. Akibat dari fungsi hanya sebagai nama alias, tidak dibutuhkan tempat penyimpanan kecuali pada kamus data yang menyimpan definisinya.

Synonym biasanya dipakai demi keamanan dan kemudahan, fungsi-fungsinya adalah :

menyembunyikan nama dan pemilik dari obyek tersebut memberi transparensi lokasi untuk obyek-obyek remote dari sebuah database

terdistribusi

Page 7: Distributed Database Using Oracle

menyederhanakan kalimat-kalimat SQL untuk user-user database memberi akses terbatas yang mirip dengan view-view

Synonym sangat berguna manfaatnya untuk database baik yang terdistribusi maupun yang non-terdistribusi karena bisa menyembunyikan obyek, termasuk lokasinya pada sistem distribusi. Satu lagi keuntungan dari penggunaan synonym adalah memudahkan eksekusi kalimat SQL untuk user-user dalam lingkungan sistem database terdistribusi.

Untuk lebih memudahkan mengakses tabel yang berada di remote database serverberdasar objek database link yang sudahdibuat.Anda dapat membuat objek sinonim untuk melakukan tersebut. Cara pembuatannya sebagai berikut :

Kali ini kita menggunakan sqlplus saja, yaitu oracle dalam bentuk console (yang gambanya item, hehe..). Buka Start Menu > Oracle > Run SQL Command Line. Check this one out.

a. Masuk ke oracle dengan username/schema server

b. Buatlah Synonym yang akan mengakses tabel mahasiswa pada database remote yang menggunakan database link ke_client

Page 8: Distributed Database Using Oracle

c. Setelah synonym berhasil dibuat (truss..??). Seperti biasa, kita lakukan uji coba terhadap synonym tersebut, masukkan perintah berikut pada SQL command lineSELECT* FROM data_mahasiswa ;

Keterangan :Query diatas akan menampilkan data-data pada tabel mahasiswa di remote database yaitu pada database client. Contoh diatas adalah contoh sederhana, Synonym dapat kita manfaatkan untuk menyingkat query yang kita lakukan pada sebuah tabel remote. Dengan demikian, kita lebih gampang mengingat query yang nanti biasa kita lakukan.

3. Replication : Using Materialized Views

Solusi replikasi dari Oracle di antaranya adalah Oracle Stream dan Advanced Replication . Advanced Replication meliputi Multimaster, Materialized View, dan hybrid (antara Multimaster replication dan materialized view).

Istilah Materialized View (MV) dipakai Oracle sejak versi 9i. Di versi 8i ke bawah di sebut sebagai snapshot. MV merupakan View yang dimaterialisasi. View konvensional tidak menyimpan data, dia hanya menyimpan definisi (nama kolom, table) sementara data secara fisik masih ada di tabel source-nya. Saya punya contoh 2 view:

1. Query ke suatu tabel di database lain melalui database link (db link)2. Query yang join ke beberapa tabel

Kalau kedua View itu sering diakses sementara datanya sangat besar, dapat kita bayangkan betapa beratnya pekerjaan itu. Seandainya hasil view itu ditaruh ke dalam tabel dummy, dan akses ke view selanjutnya diarahkan ke tabel dummy tersebut, sungguh akan sangat mempercepat proses (tanpa query melalui database link yang dibatasi oleh bandwidth

Page 9: Distributed Database Using Oracle

network, dan tanpa perlu melakukan join query yang berulang-ulang). Inilah yang mendasari Oracle untuk mematerialisasi view (semacam membuat tabel dummy untuk view tersebut).

MV dengan database link biasanya digunakan untuk replikasi (replication) dan distribusi data (distributed Database). Sementara MV dengan multi join (ke banyak tabel) digunakan untuk data warehouse.

Berikut ini langkah-langkah membuat MV dengan database link. Dalam script ini kata MATERIALIZED VIEW saya ganti SNAPSHOT, di mana dua terminologi ini mempunyai arti dan fungsi yang sama.

Persiapan Awal

Informasi mengenai database dan komputer yang ingin kita replikasi sama seperti konfigurasi sebelumnya, jadi ini cuma meneruskan ajah, so check this one out..

Persiapan di Database Source (Server_Pusat)

SQL> conn server/server

SQL> create snapshot log on employees tablespace users;

Keterangan :

Snapshot log menyimpan delta (perubahan) data di tabel source. Dengan adanya log ini, ketika snapshot di-refresh, maka snapshot hanya mengambil delta yang ada di source tersebut. Inilah yang disebut denganrefresh fast. Kalau tidak menggunakan snapshot log, kita tidak bisa melakukanrefresh fast, dengan kata lain ketika refresh maka yang dilakukan adalah melakukan query ulang ke tabel source.

Persiapan di Database tempat Snapshot

1. Siapkan tablespace untuk menyimpan data milik schema SNAPSHOT_USER (Login sebagai system)Create tablespace snapshot_tbsdatafile '/data/snapshot_tbs01.dbf' size 8192M;alter tablespace snapshot_tbs adddatafile '/data/snapshot_tbs02.dbf' size 8192M;

Page 10: Distributed Database Using Oracle

2. Buat userBerhubung kita udah punya user sebelumnya kita skip aja bagian inih..

3. Buat TNS Names. Bisa pakai netca atau manual dengam menambahkan entry berikut di file $ORACLE_HOME/network/admin/tnsnames.oraIni udah kita lakukan ketika meng-konfigurasi database link

4. Buat database linkIni juga udah kita buat di langkah sebelumnya

5. Buat SnapshotSQL> conn SNAPSHOT_USERSQL> create snapshot employeesrefresh faststart with sysdate next trunc(sysdate + 1)as select * from employees@ke_server;

Snapshot di atas akan direfresh mulai nanti malam jam 12,trunc(sysdate + 1). Pekerjaan refresh ini dilakukan oleh job Oracle, lihat jobnya di view USER_JOBS atau DBA_JOBS. Dengan DBMS_JOB kita bisa merubah schedule refresh.Secara fisik, snapshot TBLMV mempunyai tabel dengan name TBLMV (disimpan di default tablespace: snapshot_tbs).

Alhamdulillah..

Akhirnya selesai juga nulis nih tutorial, semoga secuil ilmu yang saya dapatkan ini berguna bagi yang membaca dan yang mem-praktek-in..

Regards

Hari Setiaji