1 8 BAB 2 LANDASAN TEORI 2.1 Teori Teori Umum Teknologi Informasi Menurut Turban, Rainer, Potter (2005, p3), teknologi informasi adalah suatu koleksi ...
Teknologi Informasi M enurut Turban, Rainer, Potter (2005, p3), teknologi informasi adalah suatu
koleksi sistem komputasi yang digunakan pada suatu perusahaan. M enurut Whitten, Bentley, Dittman (2004, p12), teknologi informasi adalah suatu istilah yang kontemporer yang menggambarkan kombinasi dari teknologi komputer (perangkat keras dan perangkat lunak) dengan teknologi telekomunikasi (jaringan data, gambar, dan suara).
2.1.2
Sistem Informasi M enurut O’ Brien (2005, p6), Sistem informasi merupakan kombinasi dari
orang, perangkat keras, perangkat lunak, jaringan komunikasi, dan sumber data yang terorganisir, yang mengumpulkan, mengubah, dan menyebarkan informasi dalam perusahaan. M enurut Whitten, Bentley, Dittman (2004, p12), sistem informasi adalah suatu aransemen yang terdiri dari orang, data, proses, dan teknologi informasi yang berinteraksi untuk mengumpulkan, memproses, menyimpan, dan menyediakan, sebagai hasil dari informasi yang diperlukan untuk mendukung suatu perusahaan. M enurut Turban, Rainer, Potter (2005, p36), sistem informasi adalah suatu proses
9
mengumpulkan, memproses, menyimpan, menganalisis, menyebarkan informasi untuk tujuan khusus; kebanyakan sistem informasi terkomputerisasi.
2.1.3
Proses Bisnis M enurut Whitten, Bentley, Dittman (2004, p27), proses bisnis adalah
aktivitas-aktivitas yang merespon kegiatan-kegiatan bisnis (contohnya : pesanan). Proses bisnis adalah pekerjaan, prosedur-prosedur, dan aturan-aturan yang diperlukan untuk menyelesaikan kegiatan-kegiatan bisnis, terlepas dari teknologi informasi yang digunakan untuk mengotomatisasikan atau mendukungnya.
2.1.4
Analisis M enurut Hoffer-George-Valacich (1999, p28), analisis adalah proses
mempelajari cara kerja perusahaan saat ini dan sistem informasi yang digunakan untuk melakukan tugas-tugas perusahaan. Analisis terdiri dari beberapa fase. Yang pertama adalah menentukan persyaratan. Pada bagian ini, analis bekerja dengan pengguna untuk menentukan atau mencari tahu apa yang pengguna inginkan dari sistem yang diusulkan. Biasanya dilakukan sebuah pembelajaran yang hati-hati dari berbagai sistem yang ada baik secara manual maupun secara komputerisasi, yang mungkin dapat diganti atau dikembangkan sebagai bagian dari proyek ini. Kedua, persyaratan tersebut dipelajari dan dibuat strukturnya berdasarkan relasi yang ada dan menghapus atau membuang semua pengulangan. Ketiga, membuat alternatif desain awal untuk dicocokkan dengan persyaratan di atas. Kemudian dilakukan
10
proses perbandingan antara alternatif-alternatif tersebut untuk mencari alternatif mana yang paling baik yang memenuhi persyaratan termasuk biaya, tenaga kerja, tingkatan teknis yang perusahaan ingin lakukan pada proses pengembangan. Hasil dari analisis adalah uraian dari solusi alternatif yang direkomendasikan oleh tim analis. Setelah rekomendasi tersebut diterima, proses perencanaan dapat segera dimulai untuk memperoleh perangkat keras dan sistem perangkat lunak yang dibutuhkan untuk membangun atau mengoperasikan sistem seperti yang diusulkan.
2.1.5
Sistem M enurut Whitten (2007, p6), sistem adalah satu grup komponen-komponen
yang saling berhubungan yang berfungsi bersama-sama mencapai hasil yang diinginkan.
2.1.6
Analisis sistem M enurut Whitten (2007, p32), analisis sistem adalah pembelajaran dari suatu
problem bisnis dengan tujuan menyarankan peningkatan dan spesifikasi permintaan dan prioritas bisnis sebagai solusi.
11
2.1.7
Data dan Informasi 2.1.7.1 Data M enurut Whitten, Bentley, Dittman (2004, p27), data adalah faktafakta mentah mengenai orang, tempat, kejadian, segala sesuatu yang penting dalam organisasi. Setiap fakta tersebut secara relatif tidak berarti.
2.1.7.2 Informasi M enurut Turban, Rainer, Potter (2005, p38), informasi adalah data yang telah diproses sehingga memiliki arti dan nilai bagi penerima. M enurut Whitten, Bentley, Dittman (2004, p27), informasi adalah data yang telah diproses ke dalam bentuk yang lebih berguna bagi seseorang. Informasi dibentuk dari kombinasi data-data yang diharapkan memiliki arti bagi penerima.
2.1.8
Transaksi 2.1.8.1 Pengertian Transaksi M enurut Connolly-Begg (2005, p558), transaksi adalah satu atau serangkaian aksi yang dilakukan oleh satu pengguna atau program aplikasi, yang mengakses atau mengubah isi dari database. M enurut RamakhrisnanGehrke (2002, P526), transaksi dilihat dari sisi DBM S adalah suatu serangkaian atau daftar aksi-aksi. Aksi-aksi yang dapat dieksekusi oleh suatu transaksi terdiri dari aksi membaca dan menulis objek-objek database.
12
2.1.8.2 Transaksi Bisnis M enurut Bernstein-Newsomer (2009, p1), transaksi bisnis adalah suatu interaksi dalam dunia nyata, biasanya antara suatu perusahaan dengan 1 orang atau perusahaan lain, dimana perubahan terjadi. Contohnya, perubahan uang, produk, informasi, atau pelayanan permintaan.
2.1.8.3 ProsesTransaksi M enurut Bernstein-Newsomer (2009, p1), proses transaksi adalah suatu proses dari transaksi bisnis dengan komputer yang terhubungan dengan jaringan komputer.
2.1.8.4 Transaksi On-line M enurut Bernstein-Newsomer (2009, p1), transaksi on-line adalah suatu eksekusi dari sebuah program yang melakukan fungsi admistratif dengan cara mengakses sebuah shared database, biasanya oleh seorang online user.
2.1.8.5 ACID M enurut Bernstein-Newsomer (2009, p9), ada 4 properti penting dari transaksi, yaitu :
13
-
Atomicity M aksudnya transaksi dieksekusi secara komplit atau tidak sama sekali.
-
Consistency M aksudnya transaksi mempertahankan
konsistensi internal
database. -
Isolation M aksudnya transaksi dieksekusi seolah-olah transaksi berjalan sendiri, tanpa transaksi lain.
-
Durability M aksudnya hasil transaksi tidak hilang ketika terjadi kegagalan.
2.1.9
Database M enurut Connolly-Begg (2005, p15), database adalah kumpulan data yang
saling berhubungan secara logika, dan deskripsi dari data ini, dirancang untuk menghasilkan informasi yang dibutuhkan oleh perusahaan. M enurut SilberschatzKorth-Sudarshan (2001, 11), database adalah kumpulan data yang mengandung informasi yang relevan untuk perusahaan.
2.1.10 Database Management System (DBMS ) M enurut Silberschatz-Korth-Sudarshan (2001, 11), database adalah suatu kumpulan data-data yang berhubungan dan suatu set program yang mengakses data
14
tersebut. M enurut Connolly-Begg (2005, p16), database management system adalah suatu sistem software yang memungkinkan pengguna untuk mendefinisikan, menciptakan, memelihara, dan mengatur akses pada database. DBM S adalah perangkat lunak yang berinteraksi dengan pengguna program aplikasi dan database. Sebuah DBM S menyediakan failitas sebagai berikut : •
M emungkinkan pengguna untuk mendefinisikan database, biasanya melalui Data Definition Language (DDL). DDL mengizinkan pengguna untuk menspesifikasi tipe data dan struktur-struktur dan konstrainkonstrain pada data yang disimpan dalam database.
•
M emungkinkan pengguna untuk insert, update, delete, dan retrieve data dari database, biasanya melalui Data Manipulation Language (DM L). DM L memungkinkan pengguna untuk melakukan query.
•
M enyediakan
kendali akses
pada database.
Contohnya, DBM S
menyediakan : - Sistem keamanan yang mencegah pengguna yang tidak memiliki otorisasi dalam mengakses database. - Sistem integrasi yang memelihara konsistensi dari data yang disimpan - Sistem kendali yang mengizinkan pembagian akses pada database - Kendali sistem pemulihan yang mengembalikan database ke dalam status konsisten yang sebelumnya jika terjadi kesalahan, termasuk kesalahan dalam perangkat lunak ataupun perangkat keras.
15
- Sebuah katalog yang bisa diakses pengguna, yang di dalamnya berisi deskripsi data pada database.
2.1.11 Arsitektur Oracle 2.1.11.1
Oracle Instance
M enurut Kyte (2010, p52), Instance adalah suatu kumpulan proses belakang layar Oracle atau threads dan wilayah memori bersama, yaitu memori yang dipakai bersama pada threads atau proses yang berjalan pada komputer tunggal. Suatu database instance dapat eksis tanpa disk penyimpanan. M enurut Zeis, Ruel, dan Wessler (2009, p14), instance adalah kombinasi dari memori dan proses – proses yang merupakan bagian dari instalasi yang berjalan. M enurut Greenwald, Stackowiak, dan Stern (2004, p22), instance mengacu pada perangkat lunak yang mengeksekusi pada server yang menyediakan akses pada database. Instance berjalan pada komputer atau server, sedangkan database tersimpan dalam disk yang ada pada server. Berikut ini adalah figur mengenai instance.
16
Gambar 2.1 Oracle Instance
Instance terdiri dari struktur dan proses in-memory pada server. Sebagai contoh, Oracle menggunakan wilayah pemakaian memori bersama yang disebut System Global Area (SGA) dan wilayah memori privat untuk setiap proses disebut Program Global Area (PGA).
2.1.11.1.1 System Global Area (S GA) M enurut Zeis, Ruel, dan Wessler (2009, p14), SGA adalah suatu grup struktur memori bersama. SGA terdiri dari hal-hal seperti data dan SQL. SGA digunakan bersama untuk proses-proses belakang layar Oracle dan proses-proses server. SGA dibentuk dari beberapa bagian yang disebut komponen-komponen SGA, yaitu :
17
•
Shared pool Beberapa objek dan perangkat pada database sering digunakan. Oleh karena itu, adalah lebih baik jika objek-objek dan perangkatperangkat tersebut siap digunakan ketika diperlukan. Data pada shared pool tidak pernah ditulis pada disk. Shared pool sendiri dibentuk dari 4 wilayah utama : 1. Library cache 2. Dictionary cache 3. Quickest result cache 4. SQL result cache Cache adalah wilayah sementara pada memori, dibuat untuk mengambil secara cepat informasi yang mungkin memakan waktu lebih lama untuk dijalankan. Shared pool merupakan cache yang paling sering menggunakan SQL statements yang digunakan pengguna database.
•
Database buffer cache Database buffer cache merupakan porsi terbesar pada SGA. Terdiri dari data dari berkas-berkas
pada disk.
Karena
pengaksesan data dari disk lebih lambat dari memory, database buffer cache digunakan untuk menyembunyikan data pada memori untuk pengaksesan lebih cepat. Database buffer cache terdiri dari data dari semua tipe objek berikut :
18
- Tabel-tabel - Indexes - Materialized views - Sistem data Database buffer cahce menangkap data yang paling sering diakses pengguna database. •
Redo log buffer Redo log buffer merupakan komponen memori lain yang menyimpan setiap SQL statement yang mengubah data. Statement tersebut
dan
informasi-informasi
yang
diperlukan
untuk
merekonstruksinya disebut redo entry. Redo log buffer digunakan ketika berberapa hal berikut terjadi : - Setiap kali ada commit pada data di database - Setiap 3 detik - Ketika redo buffer sudah sepertiga penuh - Sebelum setiap dirty block ditulis pada disk Redo log buffer menyimpan informasi transaksi untuk tujuan pemulihan (recovery). •
Large pool Large pool meringankan kinerja shared pool dari permintaan memori. Fitur-fitur berikut menggunakan large pool : - Oracle Recovery Manager
19
- Oracle Shared server - Parallel processing - I/O-related server processes Tanpa large pool, proses-proses tersebut mencuri memori dari wilayah shared pool untuk SQL. Hal ini dapat menyebabkan SQL poor processing dan constant resizing dari wilayah SQL pada shared pool. Large pool menangkap objek Java yang baru digunakan dan kode aplikasi ketika opsi JVM Oracle digunakan. •
Java pool Java pool merupakan komponen memori yang opsional. Java pool menangkap data untuk operasi besar seperti aktivitas restore dan backup Recovery Manager (RMAN) dan komponenkomponen Shared server.
•
Streams pool Streams
pool menangkap
data yang berasosiasi dengan
permintaan yang mengantri ketika opsi Oracle’s Advanced Queing digunakan. M enurut Greenwald, Stackowiak, dan Stern (2004, p66), Oracle menggunakan SGA untuk operasi-operasi berikut: - M enyembunyikan (caching) blok database yang mengandung tabel dan index data pada database buffer cache.
20
- M enyembunyikan SQL statements yang diurai dan dioptimasi, stored procedures, dan informasi data dictionary pada shared pool. - M enyangga (buffering) redo log entries pada redo log buffer sebelum ditulis pada disk. Ada 2 tipe file inisialisasi parameter, yaitu Parameter Files (PFILES) dan Server Parameter Files (SPFILES). Berikut adalah perbandingan antara PFILES dan SPFILES :
21
PFILE
S PFILE
Text file yang dapat diedit Binary file yang tidak dapat menggunakan text editor.
diedit secara langsung.
Ketika perubahan dilakukan Kebanyakan pada PFILE, instance harus
perubahan
pada
SPFILE dapat dilakukan secara
di-shut down dan di-restart dinamis, selama instance dalam sebelum
memberikan
efek keadaan terbuka dan sedang
lain.
berjalan.
Disebut initinstance name.ora
Disebut spfileinstance name.ora
Dapat dibuat dari SPFILE Dapat
dibuat
dari
PFILE
menggunakan perintah create menggunakan perintah create pfile dari spfile.
spfile dari pfile.
Tabel 2.1 PFILE dan S PFILE
2.1.11.1.2 Program Global Area (PGA) PGA terdiri dari informasi yang digunakan untuk informasi privat atau informasi yang berkaitan dengan sesi yang diperlukan user. PGA terdiri dari :
22
•
Session memory - Informasi login - Informasi seperti pengaturan khusus pada sesi (contoh, format apa yang digunakan ketika tanggal ditampilkan)
•
Private SQL area - Variabel-variabel yang menyimpan nilai selama eksekusi SQL - Work areas untuk proses khusus yang dibutuhkan SQL: sorting, hash-joins, bitmap operations - Cursors
2.1.11.2
Oracle Database
M enurut Kyte (2010, p52), Database adalah koleksi berkas-berkas atau disk-disk sistem operasi fisikal. M enurut Zeis, Ruel, dan Wessler (2009, p14), database adalah komponen atau berkas-berkas fisikal. M enurut Loney (2004, p23), Oracle database adalah koleksi data dari satu atau lebih file. Database terdiri dari struktur fisikal dan logical. M enurut Greenwald, Stackowiak, dan Stern (2004, p23), komponen-komponen database antara lain: • Tablespaces Tablespace adalah struktur logis, dibentuk dari struktur fisik yang disebut datafiles. Setiap tablespace terdiri dari satu atau lebih datafiles, dan tiap datafile hanya menjadi milik 1 tablespace.
23
• Physical files Ada 3 tipe physical files yang membentuk Oracle database, yaitu : - Control files Control file terdiri dari berkas-berkas yang membentuk database termasuk datafiles dan redo log files. Control file juga mengandung informasi kunci mengenai isi dan keadaan database, seperti: 1. Nama database 2. Kapan database dibuat 3. Informasi tablespace 4. Datafile offline ranges 5. Log history dan informasi current log sequence 6. Informasi archieved log 7. Informasi backup set, pieces, datafile dan redo log 8. Informasi datafile copy 9. Informasi checkpoint - Datafiles Datafiles terdiri dari data aktual yang disimpan dalam database. Data ini mengandung tabel-tabel dan index yang menyimpan data, kamus data yang menyimpan informasi mengenai struktur data,
dan rollback
segments yang
digunakan untuk mengimplementasi-kan skema concurrency.
24
Suatu datafile terbentuk dari blok-blok database Oracle yang dibentuk dari blok-blok sistem operasi pada disk. Blok oracle memiliki besar antara 2 hinga 32 KB. Datafile hanya menjadi miliki 1 database dan hanya milik 1 tablespace dalam database. Data dibaca dalam unit-unit pada blok-blok Oracle dari datafile ke memori sesuai keperluan, tergantung dari kegiatan yang sedang dikerjakan pengguna. Blok data ditulis dari memori ke datafile yang disimpan dalam disk untuk memastikan
bahwa
database
dapat
dipercaya
untuk
menyimpan perubahan yang dilakukan oleh user. Dari sudut pandang fisik, datafile disimpan dalam blok sistem operasi. Dari sudut pandang logis, datafile memiliki 3 level intermediate organizational, yaitu : data blocks, extents dan segments.
Extent adalah
kumpulan data
blocks yang
berdekatan dalam datafile Oracle. Segment adalah suatu objek yang mengambil ruang pada database Oracle, seperti tabel atau index yang dikompromi dari satu atau lebih extents. - Redo log files Redo log file menyimpan suatu “rekaman” perubahan yang dilakukan pada database sebagai hasil dari transaksi dan aktivitas internal Oracle. Dalam operasi normalnya, Oracle menangkap perubahan blok pada memori, dalam kejadian
25
kesalahan instance, beberapa perubahan blok yang tidak ditulis pada datafiles. Rekaman perubahan dalam redo logs dapat digunakan untuk memainkan kembali perubahanperubahan yang hilang ketika kesalahan muncul, sehingga memproteksi konsistensi transaksional.
2.1.11.3
Oracle Background Process
Ada banyak tipe proses belakang layar Oracle. Tiap proses mengerjakan pekerjaan khusus dalam membantu memelihara instance. Ada lima proses belakang layar Oracle yang diperlukan, dan beberapa proses opsional. Proses yang diperlukan ditemukan dalam semua Oracle instances. Proses yang opsional digunakan atau tidak, tergantung dari opsi fitur Oracle mana yang digunakan pada database. Proses yang utama antara lain : 1. System Monitor (SM ON) M elakukan recover-following jika terjadi kegagalan instance, menggabungkan space kosong pada database, dan mengatur space yang digunakan untuk sorting. 2. Process Monitor (PMON) M embersihkan koneksi pengguna database yang gagal. 3. Database Writer (DBWn*) M enuliskan database blocks yang telah dimodifikasi dari SGA’s Database Buffer Cache ke datafiles pada disk.
26
4. Log Writer (LGWR) M enuliskan informasi transaksi recovery dari SGA’s Redo Log Buffer ke online Redo Log Files pada disk. 5. Checkpoint (CKPT) Update file-file database pada saat melakukan Checkpoint.
2.1.11.4
Repository
M enurut Whitney (2007, p89), repository adalah suatu database dan/atau directory file dimana pengembang-pengembang sistem menyimpan semua dokumentasi, pengetahuan, dan artefak untuk satu atau lebih sistem informasi atau
proyek.
Suatu
repository
biasanya otomatis
untuk
penyimpanan, pengambilan, dan pembagian informasi yang mudah.
2.1.11.5
Chained Rows
M enurut Naude (2008), chained row adalah suatu row yang sangat besar size-nya untuk bisa ada pada 1 blok data pada database. Sebagai contoh, jika menggunakan besar blok 4 KB pada database, dan Anda perlu meng-insert baris sebesar 8 KB ke dalamnya, Oracle akan menggunakan 3 blok dan menyimpan baris tersebut ke dalam bagian-bagian. Beberapa kondisi yang menyebabkan perantaian baris antara lain :
27
-
Table-tabel dimana besar row melebihi besar blok
-
Tabel-tabel dengan kolom long dan long raw cenderung memiliki perantaian baris
-
Tabel-tabel dengan lebih dari 255 kolom akan memiliki chained row ketika Oracle memecah lebar tabel ke dalam bagian-bagian.
2.2 Teori – Teori Khusus 2.2.1
Migrasi Data M enurut M unoz, Syracuse (2000, p3), migrasi adalah pergerakan suatu “file
system” dari satu server ke server yang lain. M enurut M orales (2002, p1-3), migrasi database menunjuk pada koleksi proses-poses dan prosedur-prosedur untuk mengkonversi data dari satu server database ke server database yang lainnya. M enurut Howard, Irving, Sceales, dan Sauvage (2009, p15), suatu metode untuk replikasi data antara 1 sumber dan 1 target, terdiri dari: •
M endefinisikan model fisikal data yang disimpan dari sumber dan target, setiap model fisikal merepresentasi struktur data yang plural.
•
M endefinisikan model logical data dari sumber dan target, setiap model logical terdiri dari node-node yang plural dan berdasarkan pada struktur data dari model fisikal yang berhubungan.
M enurut IBM dalam tulisannya yang berjudul “Best practices for data migration”, migrasi data adalah proses pembuatan salinan eksak dari data yang sedang digunakan oleh perusahaan dari satu database ke database yang lainnya dan
28
jika memungkinkan, tidak mematikan atau mengganggu aktivitas aplikasi yang sedang berjalan yang kemudian mengarahakan semua aktivitas input/output ke database yang baru tersebut. M enurut kontributor Wikipedia pada artikel yang berjudul “Data Migration”, untuk mencapai prosedur migrasi data yang efektif, data pada sistem yang lama dipetakan ke sistem yang baru yang menyediakan rancangan untuk ekstraksi dan loading data. Perancangan tersebut menghubungkan format data lama dengan format data baru dan syarat-syaratnya. Pemrograman migrasi data memerlukan banyak fase tetapi minimal terdiri dari ekstraksi data dimana data dibaca dari sistem lama dan loading data dimana data ditulis ke sistem baru.
2.2.2
Replikasi Data M enurut Haswell (2005, p3), replikasi adalah penciptaan satu atau lebih
salinan “file system”. M enurut Bell, Kindahl, Thalmann (2010, p5), Replikasi digunakan untuk melipatgandakan semua perubahan yang terjadi pada suatu server yang disebut master server atau master, ke server lain yang disebut slave server atau slave. Dua hal penting dari replikasi adalah menciptakan backup dari server utama untuk menghindari kehilangan data jika master mengalami kerusakan dan untuk memiliki salinan dari server utama untuk menjalankan reporting dan analisis kerja tanpa mengganggu jalannya bisnis. M enurut Howard, Irving, Sceales, dan Sauvage (2009, p1), replikasi, seperti migrasi atau sinkronisasi data, dikerjakan dalam database, antara sumber (source) dan tujuan (target).
29
M enurut kontributor Wikipedia pada artikel yang berjudul “Replication (Computer Science)”,
replikasi adalah proses pembagian informasi untuk
memastikan konsistensi antara sumber daya yang berlebihan, seperti komponenkomponen perangkat lunak atau perangkat keras, untuk meningkatkan keandalan, toleransi kesalahan, atau aksesibilitas.
2.2.3
High Availability (Ketersediaan Tinggi) M enurut Viv (2010, p1-1), ketersediaan adalah tingkatan dimana suatu
aplikasi, servis, atau fungsi dapat di akses ketika diminta. Ketersediaan diukur dari persepsi dari pengguna akhir dari suatu aplikasi. Pengguna akan mengalami frustasi ketika data mereka tidak tersedia atau sistem komputasi tidak berjalan sesuai yang diinginkan. Karakteristik – karakteristik utama dari solusi yang memiliki ketersediaan tinggi antara lain : - Reliability (Ketahanan uji) Perangkat keras yang tahan uji adalah satu komponen dari solusi ketersediaan tinggi. Perangkat lunak yang tahan uji, seperti database, Web server, dan aplikasi-aplikasi, perlu untuk diimplementasikan dengan solusi yang memiliki ketersediaan tinggi. - Recoverability (Pemulihan Kembali) Ada banyak cara untuk memulihkan kembali ketika terjadi kesalahan. Oleh karena itu, adalah penting untuk memutuskan tipe kesalahan apa
30
yang mungkin terjadi pada lingkungan ketersediaan tinggi dan bagaimana memulihkan kembali dari semua kesalahan dengan cara yang tepat sesuai dengan kebutuhan bisnis. - Timely error detection (Deteksi Kesalahan yang Tepat) Jika suatu komponen pada arsitektur yang ada gagal, maka deteksi yang cepat penting untuk memulihkan kembali dari semua kesalahan yang tidak diharapkan. Walaupun memiliki kemampuan pemulihan kembali yang cepat, jika membutuhkan tambahan 90 menit untuk mencari masalah yang terjadi, maka akan terjadi SLA. - Continuous operation (Operasi yang Berkelanjutan) M enyediakan akses secara berkelanjutan pada data adalah penting ketika sejumlah kecil atau tidak ada downtime diterima untuk melaksanakan aktivitas pemeliharaan. Aktivitas-aktivitas, seperti memindahkan table ke lokasi lain pada database atau menambah CPU pada perangkat keras, harus
jelas
disediakan
untuk
pengguna akhir
dalam arsitektur
ketersediaan tinggi. Secara khusus, arsitektur ketersediaan tinggi harus memiliki ciri-ciri sebagai berikut : - M enghadapi kesalahan-kesalahan secara berkelanjutan tanpa mengalami interupsi, atau dalam jumlah minimal. - M enghadapi perubahan sistem, data atau aplikasi - M enyediakan pengukuran pencegahan yang terpasang tetap
31
- M enyediakan monitoring yang aktif dan deteksi yang cepat terhadap kesalahan - M enyediakan kemampuan pemulihan kembali yang cepat - Operasi deteksi dan pemulihan kembali yang otomatis - M enjaga data sehingga mencegah kehilangan data - Adanya implementasi operasi terbaik untuk mengatur lingkungan yang ada - M encapai tujuan dari SLA (contohnya, recovery time objective (RTO), dan recovery point objective (RPO)), untuk kemungkinan terendah dari total biaya kepemilikan
2.2.4
MySQL M enurut DuBois (2008, p21), di dalam dunia database, M ySQL diklasifikasi
sebagai relatioinal database management sistem (RDBM S). Database adalah tempat penyimpanan informasi yang ingin disimpan. M anagement sistem adalah perangkat lunak yang memungkinkan penggunaan data dengan melakukan insert, retrieve, modify, atau delete records. Relational menunjukkan jenis tertentu DBM S, yang baik dalam menghubungan informasi yang tersimpan dalam satu tabel ke informasi yang disimpan di tempat lain dengan cara melihat elemen-elemen umum dari setiap tabel. Kemampuan dari relational DBM S terletak pada kapabilitas untuk mendorong data dari tabel-tabel dan menggabungkan informasi dari tabel yang
32
berhubungan untuk menghasilkan jawaban dari pertanyaan yang tidak bisa didapatkan dari 1 tabel saja. 2.2.4.1 Sejarah MySQL MySQL diciptakan pada tahun 1979, yaitu ketika M ichael “M onty” Widenius menciptakan sistem database yang dinamakan UNIREG untuk perusahaan Swedia TcX. UNIREG belum memiki antarmuka SQL waktu itu. Sehingga TcX tidak lagi menggunakan UNIREG di pertengahan tahun 1990. Kemudian TcX menggunakan alternatif lainnya. Salah satu alternatif yaitu mSQL, DBM S yang diciptakan oleh David Hughes. mSQL tidak bekerja dengan baik juga untuk TcX, kemudian Widenius memutuskan untuk menciptakan database server yang baru dengan disesuaikan dengan kebutuhan khususnya. Sistem tersebut selesai dan dirilis pada suatu grup kecil di M ei 1996, dan kemudian menjadi versi pertama dari M ySQL. Beberapa bulan kemudian, M ySQL 3.11 dirilis ke publik dengan distribusi biner untuk Solaris. Sumber dan biner Linux kemudian juga mengikuti. Suatu komunitas developer yang antusias dan ramah, General Public License (GPL)-based licensing policy yang mengerjakan distribusi biner untuk Linux. Saat ini, M ySQL tersedia untuk berbagai macam platform komputer, antara lain Linux, M acOS, dan Windows, baik untuk source, maupun bentuk binernya. Beberapa tahun kemudian, TcX mendapatkan penghasilan tambahan dari MySQL AB, suatu perusahaan swasta yang menjadi pemilik tunggal dari
33
source code dan trademark dari M ySQL server, dan memungkinkan pemeliharaan, penjualan, dan perkembangan lebih lanjut dari M ySQL database server. Perusahaan ini diatur oleh M ichael Widenius, David Axmark, dan Allan Larsson, didukung oleh staff penuh waktu dan pendukung-pendukung aktif dari komunitas worldwide developer. Pada tahun 2008, M ySQL AB secara resmi diakuisisi Sun M icrosistems, dan di tahun 2009, Sun M icrosistems diakuisisi oleh Oracle, yang saat ini memiliki dan membangun mesin database M ySQL. Walaupun Oracle beroperasi secara komersial di beberapa pasar yang berbeda, source code dari M ySQL tetap ada di bawah lisensi GNU General Public License (pengguna dapat membayar dukungan komersial untuk MySQL). 2.2.4.2 Fitur Unik MySQL Fitur-fitur unik dari MySQL antara lain: •
Speed (Kecepatan) Dalam RDBM S, kecepatan, yang merupakan waktu yang diperlukan
untuk
mengeksekusi
suatu
query
dan
mengembalikan hasil ke pengguna, adalah hal yang penting. MySQL memiliki kecepatan yang tinggi. Hasil perbandingan yang
dilakukan
eWeek
di
Februari
2002
yang
membandingkan IBM DB2, M icrosoft SQL Server, MySQL, Oracle9i, dan Sybase, mendapatkan keimpulan : “MySQL memiliki kinerja terbaik dan skalabilitas MySQL dapat
34
menyaingi Oracle. M ySQL memiliki throuhgput tertinggi, bahkan melebihi jumlah yang dihasilkan Oracle”. •
Reliability (Keandalan) MySQL
dirancang
dengan
menghasilkan
keandalan
maksimum dan uptime, dan sudah diuji dan dijamin untuk penggunaan dalam jumlah besar, aplikasi mission-critical. MySQL mendukung transaksi, yang memastikan konsistensi data dan mengurangi resiko kehilangan data, dan replikasi dan clustering, 2 teknik yang secara signifikan mengurangi downtime pada kejadian kegagalan server. •
Scalability (Skalabilitas) MySQL dapat mengatasi database yang besar dan kompleks tanpa terlalu banyak kejatuhan kinerja. Tabel-tabel beberapa GB yang memiliki ratusan dari ribuan record adalah luar biasa, dan M ySQL website sendiri mengklaim penggunaan database yang mengandung 50 juta records. Suatu pengujian di tahun 2005 oleh MySQL Test Labs mendemonstrasikan bahwa “MySQL menunjukkan skalabilitas yang mendekati linear
pada
lingkungan
multi-CPU,”
dengan
kinerja
peningkatan dalam proposi dari jumlah CPU ditambahkan pada
sistem.
Kemampuan
untuk
menimbang
sesuai
permintaan menyebabkan MySQL popular dengan bisnis
35
seperti Eli Lily, Alstom, Dun & Bradstreet, Epson, dan New York Times, situs bervolume tinggi seperti Google, Facebook, dan Slashdot, dan organisasi pemerintah seperit NASA, U.S. Census Bureau, dan Swedish National Police. •
Ease of Use MySQL mudah digunakan bahkan seorang pemula dapat mengerti hal-hal dasar dalam beberapa jam, dan perangkat lunak ini didukung oleh buku petunjuk yang detil, tutorialtutorial online yang banyak, komunitas developer yang berwawasan tinggi, dan buku-buku yang banyak. Sedangkan kebanyakan
interaksi dengan
M ySQL adalah
melalui
antarmuka command-line, alat-alat graphical, browser-based, juga dapat digunakan untuk menyederhanakan tugas dari managing dan administering database server MySQL. •
Portability and Standard Compliance MySQL mendukung banyak fitur penting dari standar SQL ANSI (American National Standards Institute), dan sering memperluas standar ANSI dengan ekstensi umum, fungsifungsi, dan tipe-tipe data yang dirancang untuk meningkatkan portabilitas dan menyediakan fungsionalitas yang tinggi kepada user. MySQL juga dapat digunakan untuk sistem operasi UNIX maupun yang bukan UNIX, seperti Linux,
36
Solaris, FreeBSD, OS/2, M acOS, dan Windows95, 98, M e, 2000, XP, NT dan Vista, dan berjalan di arsitektur yang bermacam-macam, termasuk Intel x86, Alpha, SPARC, PowerPC, dan IA64. •
Multiuser support MySQL sepenuhnya merupakan sistem multiuser, yang berarti bahwa multiple clients dapat mengakses dan menggunakan satu atau lebih database MySQL secara bersamaan. MySQL juga memiliki sistem privilege yang kuat dan fleksibel yang mengizinkan administrator dalam menjaga akses pada data yang sensitif menggunakan kombinasi user dan skema otentikasi yang host-based.
•
Internationalization Sebagai suatu program yang digunakan oleh jutaan pengguna di negara-negara seluruh dunia, M ySQL harus mendukung berbagai macam bahasa dan character sets (termasuk Latin, China, dan Eropa). Character sets diambil ke dalam account ketika sorting, comparing, dan saving data.
•
Wide appilication Support MySQL membuka application programming interfaces (APIs) ke banyak bahasa pemrograman, sehingga memungkinkan untuk menulis aplikasi database-driven dalam bahasa yang
37
diinginkan. Saat ini, M ySQL menghubungkan ke bahasa C, C++, Eiffel, Java, Perl, PHP, Python, Ruby dan Tcl, dan konektor-konektor tersedia untuk aplikasi JDBC, ODBC dan .NET. •
Open-Source Code Source code MySQL gratis karena ada di bawah lisensi GNU General Public License. Hal ini menjadi kunci keberuntungan, karena
pengguna
diizinkan
untuk
mengunduh
dan
memodifikasi aplikasi sesuai dengan keinginan mereka. Lisensi yang unik ini meningkatkan popularitas MySQL, menciptakan komunitas global developers dan users MySQL yang aktif dan antusias. Komunitas ini memainkan peran aktif dalam menjaga MySQL tetap memimpin persaingan, dengan cara menguji keandalan perangkat lunak pada jutaan instalasi worldwide dan memperluas mesin untuk tetap berada pada teknologi terkini.
2.2.4.3 Binary log Binary log mengandung "events" yang menggambarkan perubahan database seperti operasi create tabel atau perungan terhadap data tabel. Binary log juga mengandung events untuk statement-statement yang berpotensial memberi perubahan (contoh, operasi DELETE yang tidak
38
ditemukan baris yang sesuai). Binary log juga memiliki informasi tentang berapa panjang setiap statement yang meng-update data.
2.2.5
Oracle GoldenGate 2.2.5.1 Pengenalan Oracle GoldenGate Oracle GoldenGate memungkinkan perubahan dan maniuplasi data pada level transaksi di tengah peron yang lebih dari satu dan berbeda-beda. Oracle GoldenGate mengunakan
arsitektur
modular
yang akhirnya
memberikan fleksibilitas dalam mengekstrak dan mereplikasi catatan-catatan data yang dipilih, perubahan transaksional dan perubahan-perubahan pada DLL (data definition language) melewati topologi-topologi yang bermacammacam.
Gambar 2.2 Topologi-topologi yang didukung Oracle GoldenGate
39
2.2.5.2 The 3 States of Availability Oracle
GoldenGate
membagi
situasi
ketersediaan
(state
of
availability) menjadi tiga. Ketiga situasi ketersediaan itu didukung penuh oleh kemampuan Oracle GoldenGate untuk terus menyediakan data secara kontinu. Ketiga situasi ketersediaan itu bisa dilihat pada Gambar 2.3 The 3 States of Availability figure.
Gambar 2.3 The 3 States of Availability figure •
State 1: Active Situasi pertama adalah ketika database aktif mengalami degradasi performa yang mempengaruhi banyaknya pekerjaan yang bisa diselesaikan dalam satu waktu (throughput) serta waktu respon database tersebut. Salah satu cara paling efektif untuk menangani ini adalah dengan melakukan offload atau mendistribusikan aktivitas proses.
40
•
State 2: Planned Outage
Situasi kedua adalah ketika perusahaan ingin mengganti hardware mereka karena sudah tidak layak pakai, mengganti software mereka ke versi yang lebih tinggi, beralih ke server yang lebih murah tetapi lebih tangguh, atau karena perusahaan itu berganti vendor. Kondisi seperti ini disebut planned outage (kegagalan terencana). Oracle GoldenGate mampu mengeliminasi downtime akibat kegagalan-kegagalan terencana seperti yang disebutkan di atas. •
State 3: Unplanned Outage Kondisi ketiga terjadi ketika terjadi kegagalan pada sistem atau data secara tak terencana. Hal ini bisa dikarenakan terjadi failure pada sistem dan perangkat keras, ulah manusia yang tak bertanggung jawab ataupun karena bencana alam. Oracle GoldenGate mampu melakukan perpindahan (fail over) ke backup dengan cepat sehingga proses bisnis tidak terganggu.
2.2.5.3 Arsitektur GoldenGate Oracle GoldenGate terdiri atas komponen-komponen berikut : •
Extract
•
Data pump
•
Replicat
41
•
Trails atau extract files
•
Checkpoints
•
Manager
•
Collector
Gambar 2.4 Komponen-komponen Oracle GoldenGate
2.2.5.3.1
Extract
Proses Extract berjalan pada sistem sumber dan merupakan mekanisme ekstraksi dari Oracle GoldenGate. Konfigurasi Extract dapat dilakukan dengan cara : •
Initial loads : Untuk initial data loads, Extract mengekstrak sekumpulan data secara langsung dari objek sumber.
•
M engubah sinkronisasi : Untuk menjaga data sumber disinkronisasi dengan sekumpulan data lainnya, Extract menangkap perubahan-perubahan yang dilakukan pada data
42
(secara khusus transaksional insert, update, dan delete) setelah sinkronisasi awal telah dikerjakan. Perubahan DDL dan pengurutan juga diekstraksi jika sesuai dengan tipe database yang digunakan. Proses Extract menangkap semua perubahan yang dilakukan pada objek-objek yang dikonfigurasi untuk sinkronisasi. Proses Extract menyimpan semua perubahan sampai tahap telah menerima commit records atau rollbacks. Ketika rollback diterima, Extract membuang data untuk transaksi tersebut. Ketika commit diterima, Extract mengirimkan data untuk transaksi tersebut kepada proses trail pada sistem target. Semua catatan log untuk sebuah transaksi ditulis pada trail sebagai suatu unit
transaksi
yang
diatur
secara
berurut.
Perancangan
ini
mempertanggungjawabkan kecepatan dan integritas data.
2.2.5.3.2
Data pump
Data pump adalah Extract tambahan yang dikonfigurasi pada sistem sumber. Jika suatu data pump tidak digunakan, proses Extract harus mengirimkan data ke dalam remote trail pada sistem target. Jika data pump dikonfigurasikan, grup Extract primer akan menuliskan ke dalam local trail dan kemudian data pump akan membaca trail dan menyalinnya ke dalam remote trail yang ada di sistem target. Data pump
43
menambah fleksibilitas penyimpanan dan juga melayani pengisolasian proses Extract primer dari aktivitas TCP/IP.
2.2.5.3.3
Replicat
Proses replicat berjalan pada sistem target. Replicat membaca perubahan data yang diekstrak dan perubahan DDL (jika ada perubahan) yang dispesifikasikan dalam konfigurasi Replicat, dan kemudian mereplikasikannya kembali ke database target. Konfigurasi Replicat dalam dilakukan dengan cara : •
Initial loads : Untuk initial data loads, Replicat dapat mengaplikasikan data ke objek target atau mengirimkannya ke high-speed bulk-load utility.
•
M engubah sinkronisasi : untuk menjaga sinkronisasi, Replicat mengaplikasikan perubahan data yang diekstrak pada objek target menggunakan native database interface atau ODBC, bergantung pada tipe database. DDL dan urutan-urutan yang direplikasi juga diaplikasikan, jika sesuai dengan database yang
digunakan.
Replicat
mengpalikasikan
perubahan-
perubahan yang direplikasi dengan perintah yang sama ketika perubahan-perubahan tersebut di-commit di database sumber.
44
2.2.5.3.4
Trails
Untuk mendukung proses ekstraksi dan replikasi yang terusmenerus dari perubahan database, Oracle GoldenGate menyimpan perubahan-perubahan yang ditangkap ke disk dalam file yang berseri yang disebut trail. Suatu trail dapat berada pada sistem sumber ataupun target, atau juga pada sistem intermediate, tergantung pada bagaimana konfigurasi Oracle GoldenGate. Pada s istem lokal, trail dikenal sebagai extract trail atau local trail. Pada remote system trail dikenal sebagai remote trail. Dengan GoldenGate
menggunakan
mendukung
trail
akurasi
untuk
data
dan
penyimpanan, toleransi
Oracle
kesalahan.
Penggunakan trail juga mengizinkan aktivitas ekstraksi dan replikasi muncul secara bebas dengan trail yang lainnya. Dengan proses yang terpisah ini, ada juga kesempatan untuk mengatur bagaimana data dikirimkan. Contohnya, daripada mengekstrak dan mereplikasi perubahan secara terus-menerus, kita dapat mengekstrak perubahan-perubahan secara terus-menerus tetapi menyimpannya dalam trail untuk replikasi pada target nantinya, kapan pun aplikasi target memerlukannya.
2.2.5.3.5
Checkpoints
Checkpoint menyimpan posisi yang baru dibaca dan disalin dari suatu proses ke disk untuk tujuan pemulihan (recovery). Checkpoint ini
45
memastikan bahwa perubahan data yang ditandai untuk sinkronisasi diekstraksi dengan proses Extract dan direplikasi dengan proses Replicat, dan juga mencegah proses yang berulang/redundan. Checkpoint menyediakan toleransi kesalahan dengan mencegah kehilangan data, mengharuskan sistem, jaringan atau suatu proses Oracle GoldenGate untuk memulai kembali. Untuk konfigurasi sinkronisasi yang kompleks, checkpoint memungkinkan proses Extract atau Replicat yang lebih dari satu untuk membaca kumpulan trail yang sama. Checkpoint bekerja dengan inter-process acknowledgement untuk mencegah kehilangan data pada jaringan. Oracle GoldenGate memiliki teknologi pengirisan
pesan
yang terjamin. Extract menciptakan
checkpoint untuk posisinya pada sumber data dan pada trail. Replicat menciptakan checkpoint untuk posisinya pada trail. Suatu sistem checkpoint digunakan oleh proses Extract dan Replicat yang beroperasi secara kontinu, tetapi tidak diperulkan proses Extract dan Replicat yang berjalan pada batch mode. Suatu batch process dapat dijalankan kembali dari titik mulainya, dimana proses terusmenerus memerlukan dukungan untuk interupsi yang direncanakan atau tidak direncanakan yang disediakan checkpoint.
46
2.2.5.3.6
Manager
Manager adalah pengontrol proses dari Oracle GoldenGate. Manager harus berjalan pada kedua sistem di konfigurasi Oracle GoldenGate sebelum Extract atau Replicat dapat dimulai, dan Manager harus tetap berjalan sementara proses-proses tersebut berjalan sehingga fungsi manajemen sumber daya dilakukan. Manager melakukan fungsifungsi berikut : •
Monitor dan restart proses Oracle GoldenGate
•
M enerbitkan laporan-laporan permulaan, contohnya ketika throuhgput berjalan lambat atau ketika sinkronisasi yang terpendam meningkat
•
M enjaga file-file trail dan log
•
M engalokasikan ruang penyimpanan data
•
M elaporkan kesalahan dan kejadian
•
M enerima dan mengirimkan permintaan dari user interface
2.2.5.3.7
Collector
Collector adalah suatu proses yang berjalan pada layar belakang pada sistem target. Collector menerima perubahan database yang diekstrak yang dikirim melalui jaringan TCP/IP, dan menuliskannya ke file trail atau extract. Secara khusus, Manager memulai Collector secara otomatis ketika suatu koneksi jaringan diperlukan. Ketika Manager
47
memulai Collector, proses dikenal sebagai Collector dinamis, dan pengguna-pengguna Oracle GoldenGate tidak berinteraksi dengannya. Walaupun demikian, Collector juga bisa dijalankan secara manual. Ini dikenal sebagai Collector statis. Tidak semua konfigurasi Oracle GoldenGate menggunakan proses Collector. Ketika suatu Collector dinamis digunakan, Collector dapat menerima informasi hanya dari satu proses Extract, maka harus ada satu Collector dinamis di setiap proses Extract yang digunakan. Ketika Collector statis digunakan, beberapa proses Extract dapat berbagi satu Collector. Walaupun demikian, perbandingan satu banding satu adalah yang optimal. Proses Collector selesai ketika gabungan proses-proses Extract selesai. Untuk default, proses Extract memulai koneksi TCP/IP dari sistem sumber ke Collector pada target, tetapi Oracle GoldenGate dapat dikonfigurasi sehingga Collector memulai koneksi dari target. Pemulaian koneksi dari target mungkin diperlukan jika misalnya target ada pada area jaringan yang bisa dipercayai, tetapi sumber ada di area jaringan yang kurang bisa dipercayai.
2.2.5.4 Topologi Oracle GoldenGate Oracle GoldenGate dirancang untuk dapat menanggulangi The 3 States of Availability seperti yang telah dijelaskan di atas. M aka dari itu, kita
48
dapat melakukan konfigurasi pada Oracle GoldenGate agar dapat digunakan untuk mengeliminasi masalah-masalah yang telah dideskripsikan pada poin 2.2.4.2 The 3 States of Availability di atas. •
Unidirectional/Live Reporting Konfigurasi ini bertujuan untuk menyediakan suatu sistem yang murah namun efektif khusus untuk melakukan reporting. Oracle GoldenGate mampu menyediakan data yang paling baru (up-todate) untuk dapat digunakan dalam hal reporting. Dengan begitu, sistem utama tidak akan mengalami overload akibat penggunaan sumber daya yang berlebihan untuk melakukan reporting.
Gambar 2.5 Proses Live Reporting Oracle GoldenGate
•
Real-time Data Distribution/Query Offloading Konfigurasi Query Offloading ini bertujuan untuk meringankan beban database akibat dari read-only queries seperti searching
49
produk oleh pelanggan. Query seperti ini sebenarnya tidak berat, akan tetapi karena query ini dilakukan dalam jumlah banyak, maka database utama akan mengalami overhead yang cukup signifikan. Hal ini menyebabkan peningkatan penggunaan CPU dan penurunan performa. Banyak perusahaan mengatasi masalah ini dengan berinvestasi pada database tambahan dengan harapan agar sistem dapat berjalan dengan lebih baik. Oracle GoldenGate dapat membuat replica dari database utama pada platform yang murah dan mengkonfigurasikan read-only queries ini ke sistem replica. Dengan begitu, database utama akan memiliki performa yang lebih baik dan waktu penggunaan yang lebih lama.
Gambar 2.6 Proses query offloading Oracle GoldenGate
50
•
Real-time Data Warehousing/Business Intelligence Konfigurasi ini memungkinkan suatu Business Intelligence dan data warehousing yang real-time dengan menyediakan solusi terintegrasi yang termasuk data quality dan data profiling, melakukan pengambilan data yang beresiko rendah, transformasi berkecepatan tinggi dan kemudian melakukan loading di dalam data warehouse. Dengan begitu, perusahaan dapat membuat keputusan dengan lebih tepat dan menjaga keuntungan kompetitif bagi perusahaan itu.
Gambar 2.7 Proses Real-Time Business Intelligence Oracle GoldenGate
51
•
Active-Passive-Bidirectional Replication/Live Standby Konfigurasi ini ditujukan untuk disaster recovery and data protection di mana Oracle GoldenGate menyediakan data secara kontinu bahkan ketika terjadi kegagalan pada sistem utama. Oracle GoldenGate membuat replika dari database utama dan terus melakukan data transfer dari database utama ke database standby. Ketika terjadi kegagalan pada sistem utama, sistem akan langsung diarahkan ke database standby sehingga proses bisnis tidak berhenti. Kita dapat terus menggunakan database standby sampai database utama selesai diperbaiki. Ketika selesai diperbaiki database utama akan langsung melakukan data capture pada database standby agar database utama meperoleh update terbaru selama terjadi kegagalan sistem utama.
Gambar 2.8 Proses Live Standby Oracle GoldenGate
52
•
Active-Active-Biderectional Replication Konfigurasi ini memiliki tingkat ketersediaan data paling tinggi. Oracle GoldenGate menyediakan dua database yang saling dan terus mereplika sehingga kedua database tersebut memiliki set data yang identik. Kedua database tersebut dapat dipakai oleh dua sistem aplikasi yang berbeda sehingga konfigurasi ini berguna untuk membagi beban pada masing-masing database. Ketika terjadi kegagalan pada salah satu sistem, maka sistem tersebut akan secara langsung dipindahkan ke sistem yang lainnya sehingga sistem yang gagal tidak akan terhenti. Dengan solusi seperti ini, maka proses bisnis perusahaan tidak akan terhenti sedikitpun bahkan ketika terjadi kegagalan pada sistem sehingga perusahaan dapat meminimalkan kerugian yang mungkin terjadi.
Gambar 2.9 Proses Active-Active Replication Oracle GoldenGate
53
•
Zero-Downtime Operation M elalui pergerakan data dan sinkronisasi secara bidirectional dan real-time, Oracle GoldenGate mampu menyediakan ketersediaan sistem secara terus menerus bahkan ketika perusahaan melakukan migrasi
atau
upgrade
sistem.
Oracle
GoldenGate
memperbolehkan migrasi pada lingkungan yang heterogen (heterogenous environment) untuk upgrade pada platform yang berbeda dan migrasi dari database non-Oracle ke database Oracle.
Gambar 2.10 Proses Zero-Downtime Operations Oracle GoldenGate
54
2.2.5.5 Active-Passive Replication VS Active-Active Replication Oracle GoldenGate menyediakan dua pilihan konfigurasi replikasi yaitu replikasi aktif-pasif dan replikasi aktif-aktif. Kedua konfigurasi ini memiliki fitur khas masing-masing yang berguna untuk menyediakan data secara kontinu (continuous data availability) serta menjaga agar situasi ketersediaan (state of availability) selalu tersedia. Pada tabel 2.2 berikut diberikan perbandingan antara replikasi secara aktif-pasif dan replikasi secara aktif-aktif dan apa saja yang bisa kita dapatkan dari masing-masing konfigurasi replikasi tersebut. Active-Passive Replication
Active-Active Replication
Switchover dan recovery paling cepat
Ketersediaan data selalu terjaga
Sinkronisasi ulang antar database backup Sinkronisasi ulang antar dua database dan database utama
hingga keduanya memiliki set data yang identik
Database backup bisa digunakan untuk Pembagian beban transaksi ke dua sistem konfigurasi live reporting yang bertujuan yang identik sehingga performa dapat untuk mengurangi beban kerja sistem
ditingkatkan
Tingkat ketersediaan data tinggi tetapi Tingkat ketersediaan data paling tinggi masih di bawah replikasi aktif-aktif Tabel 2.2 Perbandingan Replikasi Aktif-Pasif dengan Replikasi Aktif-Aktif
55
2.2.5.6 GGS CI (GodenGate Software Command Interface) GGSCI adalah command interface antara user dan komponenkomponen fungsional Oracle GoldenGate. Berikut adalah beberapa grup perintah yang adalah di GGSCI : •
Manager commands Kegunaannya adalah untuk memulai dan mengatur proses Manager. Manager adalah proses yang terutama pada Oracle GoldenGate dan bertanggung jawab pada manajemen proses dan berkas-berkas,
sumber,
antarmuka pengguna,
dan
laporan
threshold dan kesalahan. Perintah-perintahnya antara lain: 1. INFO MANAGER INFO MANAGER digunakan untuk mengetahui apakah proses Manager sedang berjalan atau tidak. Jika Manager sedang berjalan, port number akan ditampilkan. Sintaks : INFO MANAGER 2. SEND MANAGER Gunakan SEND MANAGER untuk mendapatkan kembali status dari proses Manager yang aktif atau mendapatkan kembali informasi dynamic port seperti yang dikonfigurasi pada file parameter Manager. Sintaks :
Manager. Sintaks : START MANAGER 4. STATUS MANAGER STATUS MANAGER digunakan untuk mengetahui apakah proses Manager sedang berjalan atau tidak. Jika Manager sedang berjalan, port number akan ditampilkan. Sintaks : STATUS M ANAGER 5. STOP MANAGER STOP MANAGER digunakan untuk menghentikan proses Manager. Sintaks : STOP M ANAGER [ ! ] •
Extract commands Kegunaannya adalah untuk menciptakan dan mengatur grup Extract. Proses Extract menangkap perubahan-perubahan seluruh data records atau data transaksional, tergantung pada konfigurasi
57
parameter-paramter, dan kemudian mengirimkan data ke suatu sistem target untuk diaplikasikan pada tabel target atau diproses lebih jauh oleh proses lain, seperti load utility. Perintah-perintah pada Extract Commands antara lain: 1. ADD EXTRACT Gunakan ADD EXTRACT untuk membuat grup Extract. Selama tugas SOURCEISTABLE atau Extract alias tidak ditentukan, ADD EXTRACT membuat checkpoint sehingga kelanjutan proses dapat dijaga. Perintah antarmuka GGSCI mendukung lebih dari 300 grup Extract dan Replicat yang bersamaan untuk setiap instance dari Manager Oracle GoldenGate. Dengan level demikian, semua grup dapat dikontrol dan dilihat secara keseluruhan dengan perintah GGSCI seperti perintah INFO dan STATUS. Sintaks : Untuk Extract regular, pasif, atau data pump : ADD EXTRACT {, SOURCEISTABLE | , TRANLOG [] | , VAM | , EXTFILESOURCE | , EXTTRAILSOURCE | , VAMTRAILSOURCE } {, BEGIN {NOW | yyyy-mm-dd [hh:mi:[ss[.cccccc]]]} | , EXTSEQNO <seqno>, EXTRBA | , LOGNUM , LOGPOS | , EOF | , LSN |
58
, EXTRBA | , EOF | LSN | , PAGE , ROW |} [, THREADS ] [, PASSIVE] [, PARAM S <parameter file>] [, REPORT ] [, DESC “<description>”] Untuk Extract alias : ADD EXTRACT , RMTHOST { | } , {M GRPORT <port>} | {PORT <port} [, RMTNAM E ][, DESC “<description>”] 2. ALTER EXTRACT ALTER EXTRACT digunakan untuk mengubah atribut-atribut dari grup Extract yang dibuat dengan perintah ADD EXTRACT, dan untuk menaikkan trail ke berkas berikutnya dengan berurut. Sebelum menggunakan perintah ini, hentikan Extract dengan perintah STOP EXTRACT . Sintaks : ALTER EXTRACT [, ] [, THREAD ] [, ETROLLOVER] 3. CLEANUP EXTRACT CLEANUP EXTRACT digunakan untuk menghapus run history untuk grup Extract yang ditentukan. Cleanup menyimpan catatan terakhir yang utuh dan yang berjalan, sehingga Extract dapat mengulang kembali proses dari proses
59
terakhir. Sebelum menggunakan perintah ini, hentikan Extract dengan perintah STOP EXTRACT. Sintaks : CLEANUP EXTRACT [, SAVE ] 4. DELETE EXTRACT DELETE EXTRACT digunakan untuk menghapus grup Extract. Perintah ini menghapus berkas checkpoint tetapi meninggalkan berkas parameter yang utuh. Dan kemudian kita dapat membuat kembali grup atau menghapus berkas parameter sesuai dengan kebutuhan. Sebelum menggunakan perintah ini, hentikan Extract dengan perintah STOP EXTRACT [group name]. Sintaks: DELETE EXTRACT [ ! ] 5. INFO EXTRACT INFO EXTRACT digunakan untuk melihat informasi berikut: - Status Extract (STARTING, RUNNING, STOPPED, atau ABENDED) - M emperkirakan Extract lag - Informasi checkpoint - Proses run history - Trail dimana Extract ditulis
60
Perintah
dasar
tanpa
argumen
TASKS
ataupun
ALLPROCESSES, menampilkan informasi hanya untuk proses
Extract
online
(secara
kontinu).
Tugas-tugas
ditiadakan. Time lag Time lag mencerminkan kelambatan, dalam detik, pada waktu dimana checkpoint terakhir ditulis pada trail. Sebagai contoh, jika yang di bawah ini bernilai benar : - Current time = 15:00:00 - Last checkpoint = 14:59:00 - Timestamp of the last record processed = 14:58:00 maka kelambatan yang dilaporkan adalah 00:01:00 (1 menit, perbedaan antara 14:58 dan 14:59). Nilai lag dari UNKNOWN menunjukkan bahwa proses dapat berjalan tetapi belum memproses records, atau waktu pada sistem sumber lebih cepat dari waktu pada sistem target. 6. KILL EXTRACT KILL EXTRACT digunakan untuk membunuh proses Extract yang berjalan dalam mode regular atau PASSIVE. Gunakan perintah ini hanya jika suatu proses tidak dapat dihentikan dengan perintah STOP EXTRACT. Proses Manager tidak akan me-restart proses Extract yang dibunuh.
61
Sintaks : KILL EXTRACT 7. LAG EXTRACT LAG EXTRACT digunakan untuk mengetahui waktu lag yang benar antara Extract dan sumber data. LAG EXTRACT lebih tepat dalam menghitung waktu lag daripada INFO EXTRACT karena LAG EXTRACT berhubungan dengan Extract secara langsung, lebih baik dari membaca posisi checkpoint pada trail. Extract lag Untuk Extract, lag adalah perbedaannya dalam detik, antara waktu dimana suatu record diproses oleh Extract (sesuai dengan waktu sistem) dan timestamp dari record pada sumber data. Sintaks : LAG EXTRACT 8. SEND EXTRACT SEND EXTRACT digunakan untuk berhubungan dengan proses Extract yang sedang berjalan. Permintaan ini akan diproses sesegera mungkin setelah Extract siap menerima perintah-perintah dari pengguna. Sintaks :
untuk
62
SEND EXTRACT , { CACHEM GR {CACHESTATS | CACHEQUEUES | CACHEPOOL} | FORCESTOP | FORCETRANS [THREAD ] [FORCE] | GETLAG | GETTCPSTATS | LOGEND | REPORT | ROLLOVER | SHOWTRANS [] [THREAD ] [COUNT ] [DURATION ] [TABULAR] [FILE [DETAIL]] | SKIPTRANS [THREAD ] [FORCE] | STATUS | STOP | TRACE[2] | TRACE[2] OFF | TRACEINIT | TRANLOGOPTIONS {PURGEORPHANEDTRANSACTIONS | NOPURGEORPHANEDTRANSACTIONS} | TRANLOGOPTIONS TRANSCLEANUPFREQUENCY <minutes> | VAMM ESSAGE “” | VAMM ESSAGE {“ARSTATS” | “INCLUDELIST [filter]” | “EXCLUDELIST [filter]”} | VAMM ESSAGE “OPENTRANS”} 9. START EXTRACT START EXTRACT digunakan untuk memulai proses Extract. Untuk memastikan Extract telah berjalan, gunakan perintah INFO EXTRACT atau STATUS EXTRACT. Sintaks : START EXTRACT
63
10. STATS EXTRACT STATS EXTRACT digunakan untuk menampilkan statistic dari satu atau lebih grup Extract. Output terdiri dari oeprasi DM L dan DDL yang termasuk pada konfigurasi Oracle GoldenGate. Untuk mendapatkan jumlah operasi yang sedang diproses terakurat setiap detik, hal yang perlu dilakukan adalah : - Jalankan perintah STATS EXTRACT dengan opsi RESET - Jalankan