modul praktikum

22
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

description

PRAKTIKUM BASIS DATA TERDISTRIBUSIMODUL 5REPLIKASI

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