BAB 2
LANDAS AN TEORI
2.1 Teori – Teori Umum
2.1.1 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
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
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.
2.1.7 Data dan Informasi 2.1.7.1 Data
M enurut Whitten, Bentley, Dittman (2004, p27), data adalah fakta- fakta 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 Ramakhrisnan- Gehrke (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.
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 on- line user.
2.1.8.5 ACID
M enurut Bernstein-Newsomer (2009, p9), ada 4 properti penting dari transaksi, yaitu :
- 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 Silberschatz- Korth-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
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 :
• Memungkinkan pengguna untuk mendefinisikan database, biasanya melalui Data Definition Language (DDL). DDL mengizinkan pengguna untuk menspesifikasi tipe data dan struktur-struktur dan konstrain- konstrain pada data yang disimpan dalam database.
• Memungkinkan pengguna untuk insert, update, delete, dan retrieve data dari database, biasanya melalui Data Manipulation Language (DM L).
DM L memungkinkan pengguna untuk melakukan query.
• Menyediakan kendali akses pada database. Contohnya, DBMS 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.
- 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.
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 :
• Shared pool
Beberapa objek dan perangkat pada database sering digunakan.
Oleh karena itu, adalah lebih baik jika objek-objek dan perangkat- perangkat 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 :
- 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
- 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 komponen- komponen 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.
- 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 :
PFILE S PFILE Text file yang dapat diedit
menggunakan text editor.
Ketika perubahan dilakukan pada PFILE, instance harus di-shut down dan di-restart sebelum memberikan efek lain.
Disebut initinstance name.ora
Dapat dibuat dari SPFILE menggunakan perintah create pfile dari spfile.
Binary file yang tidak dapat diedit secara langsung.
Kebanyakan perubahan pada SPFILE dapat dilakukan secara dinamis, selama instance dalam keadaan terbuka dan sedang berjalan.
Disebut spfileinstance name.ora
Dapat dibuat dari PFILE menggunakan perintah create 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 :
• 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.
• 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.
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
kesalahan instance, beberapa perubahan blok yang tidak ditulis pada datafiles. Rekaman perubahan dalam redo logs dapat digunakan untuk memainkan kembali perubahan- perubahan 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.
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 :
- 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:
• Mendefinisikan model fisikal data yang disimpan dari sumber dan target, setiap model fisikal merepresentasi struktur data yang plural.
• Mendefinisikan 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
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).
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 komponen- komponen 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
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
- 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
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
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
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
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, tutorial- tutorial 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, fungsi- fungsi, 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,
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
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
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 bermacam- macam.
Gambar 2.2 Topologi-topologi yang didukung Oracle GoldenGate
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.
• 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
• 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.
• Mengubah sinkronisasi : Untuk menjaga data sumber disinkronisasi dengan sekumpulan data lainnya, Extract menangkap perubahan-perubahan yang dilakukan pada data
(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
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.
• Mengubah 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.
2.2.5.3.4 Trails
Untuk mendukung proses ekstraksi dan replikasi yang terus- menerus 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 menggunakan trail untuk penyimpanan, Oracle GoldenGate mendukung akurasi data dan toleransi 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
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 terus- menerus memerlukan dukungan untuk interupsi yang direncanakan atau tidak direncanakan yang disediakan checkpoint.
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 fungsi- fungsi berikut :
• Monitor dan restart proses Oracle GoldenGate
• Menerbitkan laporan-laporan permulaan, contohnya ketika throuhgput berjalan lambat atau ketika sinkronisasi yang terpendam meningkat
• Menjaga file-file trail dan log
• Mengalokasikan ruang penyimpanan data
• Melaporkan kesalahan dan kejadian
• Menerima 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
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
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-to- date) 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
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
• 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
• 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
• 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
• 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
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
dan database utama
Sinkronisasi ulang antar dua database hingga keduanya memiliki set data yang identik
Database backup bisa digunakan untuk konfigurasi live reporting yang bertujuan untuk mengurangi beban kerja sistem
Pembagian beban transaksi ke dua sistem yang identik sehingga performa dapat ditingkatkan
Tingkat ketersediaan data tinggi tetapi masih di bawah replikasi aktif-aktif
Tingkat ketersediaan data paling tinggi
Tabel 2.2 Perbandingan Replikasi Aktif-Pasif dengan Replikasi Aktif-Aktif
2.2.5.6 GGS CI (GodenGate Software Command Interface)
GGSCI adalah command interface antara user dan komponen- komponen 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 :
SEND M ANAGER
[ CHILDSTATUS [DEBUG] ] [ GETPORTINFO [DETAIL] ] [ GETPURGEOLDEXTRACTS ] 3. START MANAGER
START MANAGER digunakan untuk memulai proses 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
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 <group name>
{, SOURCEISTABLE | , TRANLOG [<bsds name>] | , VAM |
, EXTFILESOURCE <file name> | , EXTTRAILSOURCE <trail name> |
, VAMTRAILSOURCE <VAM trail name>}
{, BEGIN {NOW | yyyy-mm-dd [hh:mi:[ss[.cccccc]]]} | , EXTSEQNO <seqno>, EXTRBA <relative byte address> | , LOGNUM <log number>, LOGPOS <byte offset> | , EOF |
, LSN <value> |
, EXTRBA <relative byte address> | , EOF | LSN <value> |
, PAGE <data page>, ROW <row> |}
[, THREADS <n>]
[, PASSIVE]
[, PARAM S <parameter file>]
[, REPORT <report file>]
[, DESC “<description>”]
Untuk Extract alias :
ADD EXTRACT <group name>
, RMTHOST {<host name> | <IP address>}
, {M GRPORT <port>} | {PORT <port}
[, RMTNAM E <name>][, 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 <group name>.
Sintaks :
ALTER EXTRACT <group name>
[, <ADD EXTRACT attribute>]
[, THREAD <number>]
[, 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
terakhir. Sebelum menggunakan perintah ini, hentikan Extract dengan perintah STOP EXTRACT.
Sintaks :
CLEANUP EXTRACT <group name> [, SAVE <count>]
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 <group name> [ ! ] 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
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.
Sintaks :
KILL EXTRACT <group name>
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 <group name>
8. SEND EXTRACT
SEND EXTRACT digunakan untuk berhubungan dengan proses Extract yang sedang berjalan. Permintaan ini akan diproses sesegera mungkin setelah Extract siap untuk menerima perintah-perintah dari pengguna.
Sintaks :
SEND EXTRACT <group name>, {
CACHEM GR {CACHESTATS | CACHEQUEUES | CACHEPOOL} |
FORCESTOP |
FORCETRANS <ID> [THREAD <n>] [FORCE] | GETLAG |
GETTCPSTATS | LOGEND |
REPORT |
ROLLOVER |
SHOWTRANS [<ID>] [THREAD <n>] [COUNT <n>]
[DURATION <duration><unit>] [TABULAR]
[FILE <name> [DETAIL]] |
SKIPTRANS <ID> [THREAD <n>] [FORCE] | STATUS |
STOP |
TRACE[2] <tracefile> | TRACE[2] OFF | TRACEINIT |
TRANLOGOPTIONS
{PURGEORPHANEDTRANSACTIONS | NOPURGEORPHANEDTRANSACTIONS} |
TRANLOGOPTIONS TRANSCLEANUPFREQUENCY
<minutes> |
VAMM ESSAGE “<Teradata command>” |
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 <group name>
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 perintah STATS EXTRACT REPOTRATE.
Kolom LATEST STATISTICS menampilkan operasi- operasi per detik.
Sintaks :
STATS EXTRACT <group name>
[, <statistic>]
[, TABLE <table>]
[, TOTALSONLY <table spec>]
[, REPORTFETCH | NOREPORTFETCH]
[, REPORTRATE <time units>][, ... ] 11. STATUS EXTRACT
STATUS EXTRACT digunakan untuk mengetahui apakah Extract sedang berjalan atau tidak
Sintaks :
STATUS EXTRACT <group name> [, TASKS | ALLPROCESSES ]
12. STOP EXTRACT
STOP EXTRACT digunakan untuk menghentikan Extract dengan anggun. Perintah ini menjaga penerangan sinkronisasi untuk menjalankan Extract berikutnya, dan juga memastikan bahwa Manager tidak secara otomatis memulai Extract. Jika ada transaksi yang terbuka dan long-running ketika menjalankan STOP EXTRACT, anda disarankan dengan berkas transaksi log tertua yang akan diperlukan untuk transaksi tersebut ketika Extract di-restart. Anda dapat menggunakan opsi SEND EXTRACT dari SHOWTRANS untuk melihat detil-detil dan data dari transaksi-transaksi tersebut dan kemudiam jika diperlukan, gunakan opsi SKIPTRANS atau FORCETRANS untuk melewatkan transaksi atau memerintahkannya untuk ditulis sebagai transaksi yang sudah di-comit pada trail.
Sintaks:
STOP EXTRACT <group name>
• Replicat commands
Kegunaannya adalah untuk menciptakan dan mengatur grup Replicat. Proses Replicat membaca data yang diekstrak proses Extract dan menerapkannya pada table-tabel target atau mempersiapkannya untuk digunakan oleh aplikasi lain, seperti
load application. Perintah-perintah pada Replicat commands antara lain :
1. ADD REPLICAT
ADD REPLICAT digunakan untuk membuat grup Replicat.
Selama SPECIALRUN belum ditentukan, ADD REPLICAT membuat checkpoint sehingga keberlangsungan proses tetap terjaga. 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 :
ADD REPLICAT <group name>
{, SPECIALRUN |
, EXTFILE <full path name> | , EXTTRAIL <full path name>}
[, BEGIN {NOW | YYYY-MM -DD HH:MM [:SS[.CCCCCC]]} |
, EXTSEQNO <seqno>, EXTRBA <rba>]
[, CHECKPOINTTABLE <owner.table> | NODBCHECKPOINT]
[, PARAM S <parameter file>]
[, REPORT <report file>]
[, DESC “<description>”]
2. ALTER REPLICAT
ALTER REPLICAT digunakan untuk mengubah atribut-atribut dari grup Replicat yang dibuat dengan perintah ADD REPLICAT. Sebelum menggunakan perintah ini, hentikanReplicat dengan menjalankan perintah STOP REPLICAT <group name>.
Sintaks :
ALTER REPLICAT <group name> , <option> [, …]
3. CLEANUP REPLICAT
CLEANUP REPLICAT digunakan untuk menghapus run history untuk grup Replicat yang ditentukan. Cleanup menjaga catatan terakhir yang utuh dan berjalan sehingga Replicat dapat mengulang kembali pada proses terakhir tersebut. Sebelum menggunakan perintah ini, hentikan Replicat dengan menjalankan perintah STOP REPLICAT
<group name>.
Sintaks :
CLEANUP REPLICAT <group name> [, SAVE <count>]
4. DELETE REPLICAT
DELETE REPLICAT digunakan untuk menghapus grup Replicat. Perintah ini menghapus berkas checkpoint tetapi meninggalkan berkas parameter secara utuh. Kemudian anda
dapat menciptakan kembali grup atau menghapus berkas parameter sesuai kebutuhan. Perintah ini mebebaskan berkas- berkas trail untuk pembersihan oleh Manager, karena checkpoint yang digunakan grup yang sudah dihapus terbuang (dengan asumsi tidak ada proses lain yang sedang membaca berkas tersebut). Sebelum menggunakan DELETE REPLICAT lakukan beberapa hal berikut :
- Hentikan Replicat: STOP REPLICAT <group name>
- Jika grup ini menggunakan database table checkpoint, masuk ke dalam databse menggunakan perintah DBLOGIN, sehingga checkpoint dapat dihapus dari table.
Sintaks :
DELETE REPLICAT <group name>
5. INFO REPLICAT
INFO REPLICAT digunakan untuk melihat sejarah pemrosesan pada grup Replicat. Output dari perintah ini terdiri dari :
- Status dari Replicat (STARTING, RUNNING, STOPPED atau ABENDED).
- M emperkirakan lag replikasi
- Trail dari Replicat yang sedang membaca
- Replicat run history, termasuk checkpoint pada trail
- Informasi mengenai lingkungan (environment) Replicat Perinah dasar tanpa argumen TASKS atau ALLPROCESSES hanya menampilkan informasi untuk grup Replicat online (kontinu) . Tugas-tugas (tasks) tidak ditampilkan.
Lag values
Berikut ini adalah penjelasan mengenal nilai-nilai lag yang ditampilkan dengan INFO REPLICAT.
Byte lag adalah perbedaan dalam byte, antara posisi pembacaan pada Replicat dalam berkas trail pada saat checkpoint terakhir dan indikator end-of-file saat ini.
Time lag adalah lag dalam detik, pada waktu checkpoint
terakhir ditulis pada trail. Sebagai coontoh, jika yang di bawah ini bernilai benar :
- Current time = 15:00:00 - Last checkpoint = 14:59:00
- Timestamp of last record processed = 14:58:00 maka lag dilaporkan sebagai 00:01:00 (1 menit, perbedaan antara 14:58 dan 14:59).
Nilai lag dari UNKNOWN menunjukkan bahwa Replicat dapat berjalan tetapi belum memproses records, atau bahwa waktu pada sistem sumber lebih cepat dari waktu pada sistem target.
6. KILL REPLICAT
KILL REPLICAT digunakan untuk membunuh proses Replicat. M embunuh suatu proses meninggalkan checkpoint yang baru terjadi pada satu tempat, dan transaksi sekarang di- roll back oleh database, dengan jaminan tidak ada data yang hilang ketika proses di-restart. Proses manager tidak akan restart proses Replicat yang sudah dibunuh. Gunakan perintah ini hanya jika Replicat tidak dapat dihentikan secara anggun dengan perintah STOP REPLICAT.
Sintaks :
KILL REPLICAT <group name>
7. LAG REPLICAT
LAG REPLICAT digunakan untuk mengetahui waktu lag yang benar antara Replicat dan trail. LAG REPLICAT memperkirakan waktu lag lebih tepat daripada INFO REPLICAT karena langsung berhubungan dengan Replicat, lebih baik daripada membaca posisi checkpoint.
Replicat lag
Untuk Replicat, lag adalah perbedaan dalam detik, antara waktu dimana record terakhir diporses Replicat (berdasarkan pada waktu sistem) dan timestamp dari record pada trail.
Sintaks :
LAG REPLICAT <group name>
8. SEND REPLICAT
SEND REPLICAT digunakan untuk komunikasi dengan proses Replicat yang sedang dimulai atau sedang berjalan.
Permintaan ini dproses sesegera mungkin setelah Replicat siap untuk menerima perintah dari pengguna.
Sintaks :
SEND REPLICAT <group name>,{
FORCESTOP | GETLAG |
HANDLECOLLISIONS [<table spec>] | NOHANDLECOLLISIONS [<table spec>] |
REPORT [HANDLECOLLISIONS [<table spec>]] | STATUS |
STOP |
TRACE[2] [DDLINCLUDE | DDL[ONLY]] [FILE] <file name> |
TRACE[2] OFF | TRACEINIT}
9. START REPLICAT
START REPLICAT digunakan untuk memulai Replicat. Untuk memastikan Replicat telah dimulai, gunakan perintah INFO REPLICAT atau STATUS REPLICAT. Pilihan START REPLICAT terdiri dari: