modul praktikum
-
Upload
riza-sativa -
Category
Documents
-
view
63 -
download
10
description
Transcript of modul praktikum
-
PRAKTIKUM BASIS DATA TERDISTRIBUSI
MODUL 5
REPLIKASI
Oleh :
Sukma Fitri Agustin (201010370311057)
Bactiar Arif Pahlevi (201010370311479)
LABORATORIUM REKAYASA PERANGKAT LUNAK
TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2012 -2013
-
I. TUJUAN
Mahasiswa mengenal sinkronisasi database diantara database yang
terdistribusi
Mahasiswa mampu mengimplementasikan konsep sinkronisasi database pada
skema yang homogen (sama), baik menggunakan trigger maupun stored
procedure
Mahasiswa mampu mengimplementasikan job_scheduler yang digunakan
untuk proses penjadwalan dari sinkronisasi data antar server
II. APLIKASI YANG DIBUTUHKAN Aplikasi Oracle XE
SQL Developer
Aplikasi Oracle Client
III. DASAR TEORI
KONSEP DASAR REPLIKASI
Replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dan objek-
objek database dari satu database ke database lain dan melaksanakan sinkronisasiantara
database sehingga konsistensi data dapat terjamin. Dengan menggunakan teknik replikasi
ini, data dapat didistribusikan ke lokasi yang berbeda melalui koneksi jaringan lokal
maupun internet. replikasi juga memungkinkan untuk mendukung kinerja aplikasi,
penyebaran data fisik sesuai dengan penggunaannya, seperti pemrosesan transaksi online
dan DSS (Desiscion Support System) atau pemrosessan database terdistribusi melalui
beberapa server. Keuntungan replikasi tergantung dari jenis replikasi tetapi pada
umumnya replikasi mendukung ketersediaan data setiap waktu dan dimanapun
diperlukan. Adapun keuntungan lainnya adalah :
1. Memungkinkan beberapa lokasi menyimpan data yang sama. Hal ini sangat
berguna pada saat lokasi-lokasi tersebut membutuhkan data yang sama atau
memerlukan server yang terpisah dalam pembuatan aplikasi laporan.
2. Aplikasi transaksi online terpisah dari aplikasi pembacaan seperti proses analisis
database secara online, data smarts atau data warehouse.
-
3. Memungkinkan otonomi yang besar. Pengguna dapat bekerja dengan meng-copy
data pada saat tidak terkoneksi kemudian melakukan perubahan untuk dibuat
database baru pada saat terkoneksi
4. Data dapat ditampilkan seperti layaknya melihat data tersebut dengan
menggunakan aplikasi berbasis Web
5. Meningkatkan kinerja pembacaan
6. Membawa data mendekati lokasi individu atau kelompok pengguna. Hal ini akan
membantu mengurangi masalah karena modifikasi data dan pemrosesan query
yang dilakukan oleh banyak pengguna karena data dapat idistribusikan melalui
jaringan dan data dapat dibagi berdasarkan kebutuhan masing-masing unit atau
pengguna.
7. Penggunaan replikasi sebagai bagian dari strategi standby server. replikasi dapat
digunakan apabila sebuah organisasi atau perusahaan didukung oleh hardware dan
aplikasi sofware dalam sebuah sistem yang terdistribusi.
Aplikasi yang berbeda mempunyai kebutuhan yang berbeda untuk otonomi dan
konsistensi data. replikasi diperlukan dalam sistem terdistibusi apabila berikut ini:
1. Mengcopy dan mendistribusikan data dari satu atau lebih lokasi
2. Mendistribusikan hasil copy data berdasarkan jadwal
3. Mendistribusikan perubahan data ke server lain
4. Memungkinkan beberapa pengguna di beberapa lokasi untuk melakukan
perubahan dan kemudian menggabungkan data yang telah dimodifikasi
5. Membangun aplikasi data yang menggunakan perlengkapan online maupun
offline
6. Membangun aplikasi Web sehingga pengguna dapat melihat volume data yang
besar.
-
MERENCANAKAN REPLIKASI
Perencanaan yang baik sebelum replikasi dapat memaksimalkan konsistensi data,
meminimalkan kebutuhan jaringan dan menghindari beberapa masalah. Beberapa hal
yang menjadi pertimbangan dalam perencanaan replikasi:
1. Kebutuhan data yang akan diubah dan siapa yang mengubah
2. Pendistribusian data memerlukan konsistensi, otonomi dan kesinambungan
3. Kelengkapan replikasi yang meliputi kebutuhan user, infra struktur teknik,
jaringan dan keamanan serta karakteristik data
4. Jenis replikasi dan pilihannya
Arsitektur Replikasi
Guna menangani proses pemutakhiran data yang harus dapat dilakukan oleh semua
tingkatan terkait maka arsitektur replikasi yang dirancang merupakan simetric
replication .Replikasi merupakan proses pengkopian dan pengelolaan objek-objek dari
database yang membentuk suatu sistem database terdistribusi (Distributed Database).
Dengan arsitektur replikasi database menjamin ketersediaan database, yaitu tersedianya
alternatif lain jika suatu database jatuh (down) atau untuk mempercepat akses ke database
terdekat. Misalnya sebuah aplikasi hanya perlu mengakses database lokal di Hub/Spoke
daripada mengakses remote database server di pusat sehingga mengurangi lalu lintas
komunikasi data.
Jika server database di Hub/Spoke terganggu aplikasi masih dapat mengakses database
lainnya yang menyimpan data tereplikasi tersebut. Rancangan arsitektur replikasi
ditempatkan pada seluruh server-server database baik di pusat maupun di Hub dan Spoke.
Manfaat lainnya arsitektur replikasi menjamin sinkronisasi data antar database
berdasarkan jadwal yang sudah ditentukan, antar database pusat dengan Hub dan Spoke
terjadi sinkronisasi data. Sehingga data di Hub dan Spoke dengan data di pusat selalu
-
sama, hal ini bertujuan untuk menjaga konsistensi data melalui multipoint, secara global
digambarkan sebagai berikut:
Log Transaksi
Guna menjamin validasi dan integrasi data dari proses kegagalan transakasi saat
pemutakhiran data dibuatlah suatu file log transaksi.
File log ini akan mencatat seluruh proses yang terjadi saat pemutakhiran data baik di
Hub/Spoke maupun di pusat. Setiap database yang ditempatkan pada server akan disertai
oleh file log ini.
Propagasi Data Asynchronous
Proses propagasi data yang digunakan dalam rancangan database ini adalah asynchronous
data propagation. Pemilihan ini bertujuan untuk memjaga validasi data antara
Hub/Spoke dengan Pusat dengan pengendalian validasi dari published database.
-
Bila dalam proses pemutakhiran terjadi di Hub/Spoke, kendali validasi berada di
Hub/Spoke tersebut, begitu juga jika dilakukan di Pusat maka otomatis kendalinya berada
di Pusat. Sebagai gambaran dijelaskan dalam diagram dibawah ini:
Keuntungan yang diperoleh dengan arsitektur di atas:
Hub/Spoke memiliki databasenya sendiri, sehingga memperbesar
keleluasaan/otonomi, Hub/Spoke untuk memelihara dan mengelola datanya
baik bagi kepentingannya sendiri maupun kepentingan Pusat.
Mekanisme dua arah (Pull/Push subscribe), memungkinkan pengambilan
data mutakhir dalam kondisi mendesak atau diluar jadwal pengambilan.
Kesederhaan dalam proses pemutakhiran data (Updating)
Database yang mutakhir selalu tersedia.
Derajat Latency data dapat diatur sendiri melalui mekanisme penjadwalan.
Menekan biaya operasional karena proses pemutakhiran ke pusat dilakukan
secara terjadwal dan tidak perlu selama 24 jam.
Arsitektur Aplikasi
Dengan mempertimbangkan isu kinerja, skalabilitas serta kehandalan, maka aplikasi yang
akan digunakan dirancang dengan arsitektur 3-tier.
-
Pada model komputasi 3-tier selain client dan data base server terdapat middle tier
sebagai application server yang berfungsi sebagai pusat bisnis proses dan aplikasi logika
seperti gambar di bawah ini:
Client side bersifat sebagai thin-client yang tidak banyak melakukan pemrosesan karena
hampir seluruhnya dilakukan oleh application server. Pada sisi client hanya perlu diinstall
sebuah browser untuk proses transaksi.
Arsitektur ini mendukung deployment atas distributed component object yang berbasis
arsitektur object request broker (ORB). ORB pada tier-2 bertanggungjawab atas request
client yang berkomunikasi dengan application server melalui internet-inter ORB protocol
(IIOP) dan HTTP.
Keuntungan yang diperoleh dari arsitektur ini:
a. Proses maintenance lebih mudah karena logika aplikasi hanya terdapat pada satu site
yaitu application server.
b. Beban logika aplikasi dapat dibagi bersama antara application server (dalam bentuk
modul-modul aplikasi) dan database server (dalam bentuk store procedure) tanpa
banyak mengganggu lalu lintas jaringan. Artinya misi menjaga kehandalan kinerja
aplikasi sudah tercapai.
_
-
Mekanisme Roll Back
Untuk menjamin keutuhan pemutakhiran database disusun suatu mekanisme yang dapat
menjaga keutuhan hasil updating terhadap suatu kejadian kegagalan dalam proses
pemutakhiran database, maka perlu dibangun mekanisme roll back, yang dimaksudkan
bahwa apabila dalam proses pemutakhiran database terdapat satu proses gagal yang
mengakibatkan kegagalan seluruh transasksi, maka roll back akan menjamin bahwa
seluruh transasksi bisa dikembalikan seperti sediakala secara utuh tanpa cacat data
sedikitpun.
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.
ENVIRONMENT Database source
- IP: 10.21.106.81
- Nama Instance: DBSOURCE
- Nama Table: TBLMV
- Nama Owner: OWNSOURCE
Di Database yang akan kita buat Snapshot:
- Nama Owner: SNAPSHOT_USER
- Nama snapshot: TBLMV. Refresh (sinkronisasi) dilakukan tiap malam
- TNS Name untuk koneksi ke database DBSOURCE: DBSOURCE
- Nama db link: LINKDBSOURCE
Persiapan di Database Source Buat MV log (snapshot log) SQL> conn OWNSOURCE
SQL> create snapshot log on TBLMV tablespace USERS;
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 dengan refresh fast. Kalau tidak menggunakan snapshot
log, kita tidak bisa melakukan refresh fast, dengan kata lain ketika refresh maka yang
dilakukan adalah melakukan query ulang ke tabel source.
Step-step di database tempat Snapshot
1. Siapkan tablespace untuk menyimpan data milik schema SNAPSHOT_USER Create tablespace snapshot_tbs
datafile '/data/snapshot_tbs01.dbf' size 8192M;
-
alter tablespace snapshot_tbs add
datafile '/data/snapshot_tbs02.dbf' size 8192M;
2. Buat user SQL> conn / as sysdba
SQL> create user snapshot_user identified by napshot_passwd
default tablespace snapshot_tbs temporary tablespace temp;
SQL> grant resource to snapshot_user;
SQL> grant connect to snapshot_user;
SQL> grant create snapshot to snapshot_user;
SQL> grant create database link to snapshot_user;
SQL> grant create public synonym to snapshot_user; 3. Buat TNS Names. Bisa pakai netca atau manual dengam menambahkan entry
berikut di file $ORACLE_HOME/network/admin/tnsnames.ora DBSOURCE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST=10.21.106.81)(PORT=1521))
)
(CONNECT_DATA =
(service_name = DBSOURCE)
)
)
4. Buat database link SQL> conn SNAPSHOT_USER
SQL> create database link LINKDBSOURCE connect to OWNSOURCE
identified by OWNSOURCE_PASSWD using 'DBSOURCE';
5. Buat Snapshot SQL> conn SNAPSHOT_USER
SQL> create snapshot TBLMV
refresh fast
start with sysdate next trunc(sysdate + 1)
as select * from TBLMV@LINKDBSOURCE;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).
6. Kalau diperlukan, kitapun bisa membuat index di tabel TBLMV sesuai kehendak kita (tidak ada aturan untuk menyamakan index di sini dengan yang di SOURCE).
Contoh, kita akan membuat index untuk kolom nilai: SQL> create index TBLMV_01_IDX on TBLMV (nilai)
-
IV. TUGAS PRAKTIKUM
Buatlah replikasi database pada beberapa database sesuai dengan studi kasus yang ada di
bawah ini:
1. Perpustakaan
2. Kemahasiswaan
3. KRS
4. Kepegawaian
-
5. Keuangan
6. Penjualan
7. Pergudangan
8. Kendaraan bermotor
9. Parawisata
10. Pengiriman barang
11. Transportasi
12. Penginapan
Dari salah satu contoh studi kasus diatas buatlah skemanya terlebih dahulu, kemudian
buatlah tabel pada satu database. Dari database yang sudah dibuat tersebut, buatlah
replikasi pada database yang berbeda. Untuk implementasi database tersebut gunakan
salah satu DBMS yang ada (Oracle, MySQL, PostgreSQL)
-
V. HASIL PRAKTIKUM
1. (slave) memberi hak akses db pada mysql slave agar bisa di akses secara
remote
2. (master) memberi hak akses agar dapat di akses oleh slave server untuk
replication
3. (master) edit file ini pastikan baris yang ditandai ada, jika tidak, buatlah
4. (master) koneksi master melalui cmd
-
5. (master) mengecek status master, jika seeprti diatas berarti server siap
6. (Slave) ketikkan perintah tersebut untuk setting slave server, sesuaikan seperti
yang dibuat pada master server
7. (Slave) ketikkan perintah itu untuk mengaktifkan slave
8. (slave) ketikan perintah diatas untuk melihat status slave jika tidak ada error
berarti konfigurasi sudah benar
-
9. Testing Database
10. Testing database hasil insert
11. Hasil insert
-
VI. KESIMPULAN
Replikasi adalah suatu teknik untuk melakukan copy dan pendistribusian data dan
objek-objek database dari satu database ke database lain dan melaksanakan
sinkronisasiantara database sehingga konsistensi data dapat terjamin. Dengan
menggunakan teknik replikasi ini, data dapat didistribusikan ke lokasi yang
berbeda melalui koneksi jaringan lokal maupun internet. replikasi juga
memungkinkan untuk mendukung kinerja aplikasi, penyebaran data fisik sesuai
dengan penggunaannya, seperti pemrosesan transaksi online dan DSS (Desiscion
Support System) atau pemrosessan database terdistribusi melalui beberapa server