Anda di halaman 1dari 24

PARTITIONING, BACKUP AND RECOVERY

Oleh:
NAMA NIM KELAS : KOMANG ARIASA : 1215051067 : III B

JURUSAN PENDIDIKAN TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN KEJURUAN UNIVERSITAS PENDIDIKAN GANESHA 2013

KATA PENGANTAR Puji syukur saya panjatkan kehadirat Ida Sang Hyang Widhi Wasa / Tuhan Yang Maha Esa karena atas asung kerta wara nugraha-Nyalah sehingga saya dapat menyelesaikan makalah yang berjudul Partitioning, Backup and Recovery tepat pada waktunya. Saya sebagai penulis mengucapkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah membantu dalam penyusunan makalah ini. Saya menyadari bahwa makalah ini masih jauh dari sempurna baik dari bentuk, susunan kalimat, maupun cara penulisannya. Oleh karena itu, saya sangat mengharap kritik dan saran yang membangun demi kesempurnaan makalah selanjutnya. Akhir kata semoga makalah ini dapat memberikan manfaat bagi kita semua.

Singaraja, 26 November 2013

Penyusun

DAFTAR ISI

Kata Pengantar ................................................................................................... Daftar Isi ............................................................................................................. BAB 1 PENDAHULUAN 1.1 Latar belakang ..............................................................................................

i ii

1.2 Rumusan Masalah ......................................................................................... 1 1.3 Tujuan ........................................................................................................... BAB II PEMBAHASAN 2.1 Pengertian Partitioning ............................................................................. 3 2.2 Alasan Melakukan Partitioning ................................................................ 3 2.3 Tipe Partisi di MySQL ............................................................................. 3 2.4 Pengertian Backup ................................................................................... 10 2.5 Tahap Perencanakan & Persiapkan Backup ......................................... 11 2.6 Macam Macam Backup dan Penggunaannya ........................................ 13 2.7 Pengertian Recovery ................................................................................ 15 2.8 Skema Mekanisme Recovery ................................................................... 15 2.9 Teknik Recovery dan Cara Melakukan Recovery .................................... 17 BAB III PENUTUP 3.1 Kesimpulan ................................................................................................... DAFTAR PUSTAKA 20 21 2

ii

BAB I PENDAHULUAN

1.1 Latar Belakang Basis data adalah kumpulan informasi yang disimpan didalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari database tersebut. Perangkat lunak yang digunakan untuk mengolah dan mengambil kueri (query) basis data disebut sistem manajemen basis data. Pemrosesan basis data sebagai perangkat andalan sangat diperlukan oleh berbagai institusi dan perusahaan. Dalam pengembangan sistem informasi diperlukan basis data sebagai media penyimpanan data. Kehadiran basis data dapat meningkatkan daya saing perusahaan tersebut. Basis data dapat mempercepat upaya pelayanan kepada pelanggan, menghasilkan informasi dengan cepat dan tepat sehingga membantu pengambilan keputusan untuk segera memutuskan suatu masalah berdasarkan informasi yang ada. Banyak aplikasi yang dibuat dengan berlandaskan pada basis data antara lain semua transaksi perbankan, aplikasi pemesanan dan penjadwalan penerbangan, proses regristasi dan pencatatan data mahasiswa pada perguruan tinggi, aplikasi pemrosesan penjualan, pembelian dan pencatatan data barang pada perusahaan dagang, pencatatan data pegawai beserta aktifitasnya termasuk operasi penggajian pada suatu perusahaan, dan sebagainya. Dengan berbagai kelebihan dan manfaat yang dimiliki dalam basis data maka basis data tidak terlepas dari adanya partitioning, backup and recovery yang sangat membantu dalam pembuatan basis data. Partitioning, backup and recovery ini sangat penting dan tidak dapat dilupakan begitu saja dalam pembuatan basis data. Berdasarkan dari hal diatas maka penulis membuat makalah mengenai partitioning, backup and recovery.

1.2 Rumusan Masalah 1.2.1 Apa itu partitioning? 1.2.2 Mengapa perlu melakukan partitioning?

1.2.3 Apa saja tipe partitioning yang terdapat pada MySQL? 1.2.4 Apa itu backup? 1.2.5 Bagaimana tahap perencanaan dan persiapan backup? 1.2.6 Apa saja macam macam backup yang terdapat di MySQL dan bagaimana cara penggunaannya? 1.2.7 Apa itu recovery? 1.2.8 Bagaimana skema mekanisme recovery? 1.2.9 Apa saja teknik dalam recovery dan bagaimana cara melakukannya?

1.3 Tujuan 1.3.1 Untuk mengetahui tentang pertitioning. 1.3.2 Untuk mengetahui alasan perlunya melakukan partitioning. 1.3.3 Untuk mengetahui tipe partitioning yang terdapat di MySQL . 1.3.4 Untuk mengetahui tentang backup. 1.3.5 Untuk mengetahui tahap perencanaan dan persiapan backup. 1.3.6 Untuk mengetahui macam macam backup dan cara penggunaannya. 1.3.7 Untuk mengetahui tentang recovery. 1.3.8 Untuk mengetahui skema mekanisme recovery. 1.3.9 Untuk mengetahui teknik dalam recovery dan cara melakukannya.

BAB II PEMBAHASAN

2.1 Pengertian Partitioning Partitioning adalah sebuah teknik untuk menempatkan data - data table atau index yang berbentuk page ke dalam partisi - partisi yang terpisah dalam sebuah atau beberapa file group. Fitur table dan index partitioning mulai dikenal pada SQL Server 2005 dan hanya ada pada edisi Enterprise dan Developer. Fitur ini tidak ada pada edisi Standard dan Workgroup.

2.2 Alasan Melakukan Partitioning Pada table yang berukuran sangat besar (jumlah barisnya sangat banyak) maka partitioning membantu untuk membagi sebuah data yang besar menjadi beberapa partisi yang lebih kecil sehingga mudah dikelola. Pembuatan partisi - partisi ini memungkinkan performa yang lebih baik melalui operasi parallel. Partitioning yang dimaksud pada uraian ini dikenal secara umum sebagai horizontal partitioning, yang maksudnya adalah pembagian partisi dilakukan pada baris-baris table. Hal ini berbeda dengan vertical partitioning yang pembagiannya dilakukan pada kolom -kolom table. Partitioning juga memungkinkan kita untuk mendistribusikan data-data di suatu tabel yang sama ke filesystem yang berbeda di tempat yang berbeda pula. MySQL mendukung horizontal partitioning yang berarti row-row yang berbeda akan didistribusikan ke partisi yang berbeda.

2.3 Tipe Partitioning di MySQL Sebelum melakukan partisi tabel cek lebih dahulu apa databasenya suport partisi atau tidak, caranya setelah masuk ke console MySQL ketikan perintah dibawah ini : SHOW VARIABLES LIKE '%partition%'; +-------------------+-------+ | Variable_name | Value |

+-------------------+-------+

| have_partitioning | YES + +-------------------+-------+ 1 row in set (0.06 sec)

Ada empat tipe partition yang didukung oleh MySQL, berikut adalah deskripsi dari keempat tipe tersebut: 1. RANGE partitioning Range partition adalah pembagian suatu tabel ke dalam beberapa bagian berdasarkan range (rentang) nilai tertentu. Range partition ini cocok digunakan pada kolom yang memiliki distribusi nilai yang merata. Tabel yang dipartisi menggunakan range dipartisi dimana setiap partisinya memiliki row yang mengandung variabel yang berada pada rentang nilai tertentu. Rentang nilai (range) dapat kontinu tetapi tidak overlap dan didefinisikan melalui operator VALUES LESS THAN. Partisi jenis ini akan berguna pada kondisi sebagai berikut: a) Jika kita ingin menghapus data lama, terutama untuk data yang besar, kita dapat melakukan penghapusan ataupun perubahan secara efisien. contoh : DELETE FROM employees WHERE YEAR(separated) <= 1990; b) Jika kita ingin menggunakan kolom berisikan tanggal atau waktu. c) Jika kita akan sering menjalan query yang bergantung pada kolom yang dipartisi. Contoh pembuatan range partition ini adalah sebagai berikut : CREATE TABLE tbl_penjualan ( id INT NOT NULL, nama VARCHAR(30), tgl_transaksi DATE NOT NULL DEFAULT '1970-01-01' ) PARTITION BY RANGE ( YEAR(tgl_transaksi) ) ( PARTITION p0 VALUES LESS THAN (1990), PARTITION p1 VALUES LESS THAN (1995), PARTITION p2 VALUES LESS THAN (2000), PARTITION p3 VALUES LESS THAN MAXVALUE

); contoh di atas membuat partisi berdasarkan tahun transaksi, jadi transaksi yg dari tahun 1990 akan masuk ke partisi p0, kemudian dari tahun 1995 akan masuk ke partisi p1, kemudian yang dari tahun 2000 akan masuk ke partisi p2 dan selebihnya akan masuk ke partisi p3. 2. LIST partitioning Konsep pada list partition adalah data dikelompokkan berdasarkan nilai datanya. Cocok untuk kolom yang variasi nilainya tidak banyak. Misal data kota berdasarkan wilayah provinsi. List : Jember, Malang, Surabaya pada partisi Jawa Timur; Bandung, Cirebon pada partisi Jawa Barat. Jadi list partition ini berdasarkan list dari suatu segmen, sehingga data-datanya di list terlebih dahulu. Pada list partitioning, setiap partisi didefinisikan dan diklasifikasikan berdasarkan keanggotaan sebuah nilai suatu kolom terhadap suatu daftar nilai. Partisi dilakukan oleh perintah PARTITION BY LIST( expr) di mana expr adalah nama kolom yang hendak dijadikan dasar partisi dan setiap partisi didefinisikan melalui perintah VALUES IN (value_list) di mana value_list adalah daftar bilangan bulat yang dipisahkan oleh koma. Contoh pembuatan list partition ini yaitu sebagai berikut : CREATE TABLE tbl_pegawai ( kode_pegawai VARCHAR(30), kode_golongan INT, nama_lengkap VARCHAR(255) ) PARTITION BY LIST(kode_golongan) ( PARTITION p0 VALUES IN (1, 2, 3), PARTITION p1 VALUES IN (4, 5, 6) ); contoh diatas membuat partisi berdasarkan golongan pegawai, jadi pegawai dengan golongan 1, 2 dan 3 akan masuk ke partisi p0 sedangkan karyawan dengan golongan 4, 5 dan 6 akan masuk ke partisi p1. 3. HASH partitioning

Penggunaan hash partition ini jika tidak cocok dengan RANGE ataupun LIST Partition. Kenapa harus memaksakan memakai partisi sementara tidak cocok dengan RANGE ataupun LIST? Jika ingin mendapat manfaat dari filosofi PARTITIONING yang sebenarnya di mana data disebar ke segment-segment yang berbeda. Partisi dengan hash dilakukan untuk menjamin pendistribusian yang adil (seragam) pada setiap data yang dimasukkan. Dengan partisi jenis ini, kita tidak perlu mendefinisikan keanggotaan setiap partisi. Kita hanya perlu menspesifikasi suatu ekspresi yang memiliki input suatu nilai kolom dan mempunyai output nomor partisi dari data tersebut. Contoh penggunaan hast partition ini yaitu sebagai berikut : CREATE TABLE tbl_pegawai ( kode_pegawai VARCHAR(30), kode_golongan INT, nama_lengkap VARCHAR(255) ) PARTITION BY HASH( kode_pegawai ) PARTITIONS 4; contoh diatas membuat partisi berdasarkan kode pegawai, jadi data pegawai akan di pecah menjadi empat partisi, dan yg mengatur sebuah kode pegawai masuk ke partisi yang mana langsung di atur otomatis oleh MySQL

4. KEY partitioning Partisi dengan key memiliki prinsip yang hampir sama dengan hash partitioning. Yang menjadi perbedaan adalah fungsi hashing untuk partisi

jenis ini dibuat langsung oleh server MySQL dengan fungsi MD5() pada MySQL Clusters. Untuk storage engine yang lain, server telah mengembangkan fungsi yang menerapkan algoritma yang hampir sama bernama PASSWORD(). Penggunaan key partition ini yaitu : CREATE TABLE tbl_nama ( id INT NOT NULL PRIMARY KEY, nama_lengkap VARCHAR(255) ) PARTITION BY KEY() PARTITIONS 2; Contoh diatas membuat partisi berdasarkan primary key yang bernama id, jadi data dari tbl_nama akan di pecah menjadi 2 partisi, dan yang mengatur sebuah data masuk ke partisi yang mana, diatur otomatis oleh MySQL/ Berikut ini merupakan penggunaan langsung partitioning dalam My Sql: CREATE TABLE anggota ( username VARCHAR(16) NOT NULL, namalengkap VARCHAR(25) NOT NULL, tanggal DATE NOT NULL, PRIMARY KEY(username) ) PARTITION BY KEY(username) PARTITIONS 6; dari table diatas kita ingin melihat apakah tabel anggota mempunyai 6 partisi, dan sebuah data berada di partisi yang mana. 1. Untuk melihat partition dari tabel, bisa dengan cara di bawah ini : explain partitions select * from anggota; 2. Untuk melihat sebuah data berada di partisi yang mana, bisa dengan cara dibawah ini : explain partitions select * from anggota where username='50000' ; Selanjutnya kan membuat benchmark antara tabel yang tidak di partisi, dengan tabel yang di partisi dengan KEY, dan tabel yang di partisi dengan

RANGE, di bawah ini adalah struktur tabel nya, jumlah data untuk ekperimen ini sebanyak 100.000 record. 1. Tabel tanpa partisi CREATE TABLE anggota username INT NOT NULL, namalengkap VARCHAR(25) NOT NULL, tanggal DATE NOT NULL, PRIMARY KEY(username) 2. Tabel dengan partisi KEY CREATE TABLE anggota2 ( username INT NOT NULL, namalengkap VARCHAR(25) NOT NULL, tanggal DATE NOT NULL, PRIMARY KEY(username) ) PARTITION BY KEY(username) PARTITIONS 6; 3. Partisi dengan partisi RANGE CREATE TABLE anggota3 ( username INT NOT NULL, namalengkap VARCHAR(25) NOT NULL, tanggal DATE NOT NULL, PRIMARY KEY(username) ) PARTITION BY RANGE(username) ( PARTITION P0 VALUES LESS THAN (20000), PARTITION P1 VALUES LESS THAN (40000), PARTITION P2 VALUES LESS THAN (60000), PARTITION P3 VALUES LESS THAN (80000), PARTITION P4 VALUES LESS THAN (100001) )

pengukurannya dengan query sederhana saja dan yang menjadi ukuran nya adalah waktu yang di butuhkan dalam eksekusi query tersebut, dibawah ini adalah hasilnya : 1. Tidak menggunakan partisi Select count(*) from anggota where username > 25000 and username < 85000 +----------+ | count(*) | +----------+ | 59999 | +----------+ 1 row in set (0.15 sec) 2. Menggunakan partisi KEY Select count(*) from anggota2 where username > 25000 and username < 85000 +----------+ | count(*) | +----------+ | 59999 | +----------+ 1 row in set (0.20 sec)

3. Menggunakan partisi RANGE Select count(*) from anggota3 where username > 25000 and username < 85000 +----------+ | count(*) | +----------+ | 59999 | +----------+ 1 row in set (0.07 sec)

Ternyata yang terlama adalah tabel yang menggunkan partisi KEY (0.20 sec) dan yang tercepat adalah tabel yang menggunakan partisi RANGE (0.07). Dan 2 metode composite (gabungan) yaitu : 1. Composite range-list partition Konsep composite range-list partition ini menggabungkan partisi range dan list. Jika pada tabel mahasiswa, NIM dipartisi secara range, sedangkan untuk mendapatkan NIM sekian yang tinggal di wilayah provinsi Jawa Timur itu apa saja, maka menggunakan list. Jadi dipartisi kemudian di list berdasarkan kriteria tertentu. 2. Composite range-hash partition Composite range - hash partition merupakan konsep menggabungkan range partition dan hash partition. Sehingga partisi-partisi yang telah dibuat berdasarkan range/rentang akan dipartisi lagi ke dalam beberapa bagian berdasarkan hash.

2.4 Pengertian Backup Sebagai seorang DBA tentunya kita tidak berharap data yang tersimpan di dalam database hilang karena suatu sebab misalnya hard disk bad sector, server hilang, kebakaran atau yang lain. Untuk mencegah kehilangan data, tentunya kita harus melakukan backup database secara berkala, sehingga jika terjadi kejadian seperti di atas kita bisa langsung mengembalikan data sesuai dengan backup database terakhir. Backup database MySQL sebenarnya bisa dilakukan dengan banyak cara dan juga banyak aplikasi yang menyediakan fasilitas backup misalnya melalui PhpMyAdmin, Navicat atau aplikasi yang lain.

10

Pengertian backup merupakan suatu kegiatan untuk menyimpan database dalam bentuk datafile, control file dan archieve log ke dalam media penyimpanan lain seperti disk atau tape. Ada dua cara untuk melakukan Backup dan Recovery yaitu : 1. Physical Backup Contohnya : RMAN Backup dan Restore 2. Logical Backup Contohnya : Export dan Import, Flashback Strategi Backup Terdapat beberapa pendekatan yang dapat digunakan dalam melakukan backup data. Metode yang digunakan juga bervariasi tergantung pada data yang digunakan. Tipe-tipe backup yang umum digunakan adalah sebagai berikut : Full Backup. Umum digunakan untuk menyalin semua data yang berada pada media data asal. Differential Backup. Digunakan untuk melakukan penyalinan terhadap data yang mengalami perubahan berdasarkan kejadian khusus seperti tanggal atau even khusus lainnya. Incremental. Digunakan untuk melakukan penyalinan terhadap data yang yang mengalami berubahan. Pembuatan data backup juga dapat dilakukan dengan membagi data berdasarkan dua kategori tipe data berikut: System backup. Digunakan untuk melakukan backup terhadap sistem yang ada. Application backup. Digunakan untuk melakukan backup terhadap data yang dibutuhkan.

2.5 Tahap Perencanakan & Persiapkan Backup a. Menentukan waktu backup Backup merupakan program rutin dan melihat kapan waktu yang tepat untuk proses backup. Jika database itu cukup besar dan sering berubah secara konstan setiap hari, maka sebaiknya direncanakan agar proses backup terjadi setiap hari sehingga data tersebut dapat tersimpan

11

dengan baik. Namun, jika database itu tidak sering berubah setiap hari tidak perlu dilakukan backup setiap hari, bisa seminggu atau dua minggu sekali proses backup baru dilakukan. b. Menamakan file backup Seharusnya kita menamakan file backup secara teratur dan selalu memasukkan tanggal dimana backup terakhir dibuat. Misalnya nama database bernama blogDB dan dibackup pada tanggal 21 Juni 2009, sebaiknya diberikan nama file backup dengan nama blogdb-21062009.sql. Untuk penamaan ini tergantung dari administrator itu sendiri dan harus diperhatikan bahwa penamaan file backup tersebut juga sangat penting apalagi jika sering melakukan backup secara regular. c. Menyimpan file backup Membuat kopi dari file backup dan menyimpan file tersebut ke komputer lain atau ke penyimpan data yang lain seperti CD atau DVD. Kegagalan sebuah sistem bisa disebabkan oleh banyak sekali faktor, salah satu faktor bencana alam yang tidak pernah diduga dan diperkirakan sehingga skenario kegagalan sistem harus diperhitungkan dengan pembangunan sistem backup harian dengan media backup yang disimpan ditempat berbeda. Dengan menggunakan basis data web ini semuanya bisa dilakukan dengan mudah. Metoda backup dan recovery data sangatlah penting bagi keamanan data agar bisa terjaga dengan baik terutama saat terjadi crash pada sistem basis data yang disebabkan oleh kerusahakan fisik hardware ataupun karena faktor alam. Banyak sekali cara untuk melakukan backup data, berikut ini metoda yang bisa dlakukan saat akan melakukan backup data : a) Backup Logika vs backup Physic b) Backup online vs backup offline c) Backup local vs backup remote d) backup penuh vs backput bertambah sebagian e) Point in time recovery f) Backup scheduling, compression dan encryption g) Table Maintenance

12

2.6 Macam Macam Backup dan Penggunaannya Secara umum terdapat 3 macam cara backup yaitu sebagai berikut : a. Dump : Menduplikat seluruh record database yang dioperasikan pada database backup b. Transaction Log : Menyimpan transaksi-transaksi yang merubah database. c. Image Log : Menyimpan record-record database sesudah / sebelum perubahan pada database. Sedangkan macam macam backup terdiri dari : a. Backup satu database Proses backup 1 database ini akan menghasilkan backup yang seluruh object yang ada di dalam database yang ditunjuk saja dan nama database tidak ikut terbackup. Isi backup ini adalah Table, Data Table, View,

Trigger, function / procedure. Untuk membackup 1 database bisa menggunakan pemanggilan nama database. Untuk membackup seluruh database maka format yang digunakan adalah : # mysqldump -u -p [nama database] > [nama file].sql Misal ingin membackup database blogDB dengan password bahagia dari database MySQL dan jika sudah dibackup maka namanya adalah blogdb.sql, maka format diatas menjadi : # mysqldump -u root -pbahagia blogDB > blogdb.sql b. Backup tabel database Untuk membackup satu atau lebih tabel yang ada dalam suatu database maka formatnya adalah sebagai berikut : # mysqldump -u -p [nama database] [table1] [table2] > [nama file].sql Misal kita ingin membackup dua tabel coba1 dab coba2 dalam database blogDB, maka format perintah menjadi : # mysqldump -u root -pbahagia blogDB coba1 coba2 > duabuahtabel.sql c. Backup dua atau lebih database Jika ingin membackup dua atau lebih database menjadi maka formatnya menjadi :

13

# mysqldump -u -p database [database1] [database2] > [nama file].sql Membackup database blogDB dan database mahasiswa digabung menjadi satu dengan nama dua_database.sql, maka formatnya menjadi : # mysqldump -u root -pbahagia database blogDB mahasiswa > dua_database.sql d. Backup seluruh database Jika ingin membackup seluruh database maka formatnya sebagai berikut : # mysqldump -u -p all-databases > [nama file].sql e. Backup Kompres data Jika ingin membackup hanya data dengan format insert kemudian dikompresi # mysqldump -u root -p -t skip-opt extended-insert=false [database] | bzip2 -c > `date+%Y%m%d%H%M`_[nama_file].sql.bz2 f. Backup struktur data Jika ingin membackup struktur databasenya saja tanpa mengikut sertakan data recordnya maka formatnya menjadi : # mysqldump -u -p no-data [database] > [nama file].sql Jika lebih dari satu database formatnya menjadi : # mysqldump-u -p no-data database [database1][database2] > [nama file].sql Jika mau membackup hanya data recordnya saja, maka formatnya : # mysqldump -u -p no-create-info [database] > [nama file].sql g. Backup Kompress database Jika ingin mengkompress hasil backup database, maka formatnya : # mysqldump -u -p [database] | bzip2 -c > [namafile].sql.bz2 # mysqldump -u -p [database] | gzip -c > [namafile].sql.gz Misalnya ingin membackup database blogDB dan dikompress menggunakan bzip2 atau gzip, maka formatnya : # mysqldump -u root -pbahagia blogDB | bzip2 -c > blogdb.sql.bz2 atau

14

# mysqldump -u root -pbahagia blogDB | gzip -c > blogdb.sql.gz Jika ingin variasi backup seperti backup seluruh database, beberapa tabel maka hanya diubah sebelum tanda | dengan mengikuti pola format sebelumnya. Format untuk membackup seluruh database dengan hasil sudah dikompress. # mysqldump -u root -pbahagia all-databases | bzip2 -c > all_database.sql.bz2 atau # mysqldump -u root -pbahagia all-databases | gzip -c > all_database.sql.gz h. Script untuk backup Untuk mempermudah backup bisa menggunakan script dibawah ini : #!/bin/sh mysqldump all-databases | gzip -c > /home/dado/all_database-`date I`.sql.gz

2.7 Pengertian Recovery Recovery merupakan suatu proses untuk mengupdate database dengan file backup yang telah disimpan terakhir kalinya. Mekanisme recovery memiliki dua bagian utama, yaitu: 1. Aksi-aksi yang ditempuh selama transaksi berjalan normal untuk menjamin adanya informasi yang memadai yang kelak dibutuhkan oleh mekanisme recovery. 2. Aksi-aksi yang ditempuh setelah terjadinya kerusakan/ kegagalan sistem yang dilakukan untuk memulihkan isi basis data ke suatu keadaan yang menjamin konsistensi basis data, keatomikan, dan ketahanan transaksi.

2.8 Skema Mekanisme Recovery Dengan asumsi ruang disk yang dialokasikan untuk basis data tidak mengalami kerusakan, maka ada 3 pilihan skema untuk menjalankan mekanisme recovery secara otomatis begitu kerusakan atau kegagalan sistem telah terjadi. Ketiga skema pilihan itu adalah :

15

1. File Log dengan Penundaan Pengubahan (Incremental Log With Defered Update). 2. File Log dengan Pengubahan langsung (Incremental Log With Immediate Updates). 3. Page Bayangan (Shadow Paging), yang memerlukan akses ke disk yang lebih sedikit. Recovery untuk Transaksi Konkuren a. Interaksi dengan pengendalian konkurensi Skema recovery ini akan banyak tergantung pada skema pengendalian konkurensi yang digunakan. Untuk menjalankan proses roll back terhadap transaksi yang gagal/ batal, kita harus membatalkan perubahan yang telah dilakukan oleh transaksi tersebut. Jika sebuah transaksi T telah mengubah sebuah item data Q, tidak boleh ada transaksi lain yang boleh mengubah item data yang sama hingga T telah di-commit ataupun di-roll back. Kita dapat menjamin hal ini dengan memanfaatkan Loking Protokol Dua Fase yang ketat, yang menerapkan penguncian dengan mode exclusive hingga akhir transaksi. b. Restart recovery Pada saat sistem melakukan pemulihan data, ia membentuk dua buah daftar. Yang pertama adalah daftar undo (undo-list) yang terdiri atas transaksi - transaksi yang harus dikenai operasi undo dan daftar redo (redo-list) yang berisi transaksi - transaksi yang harus dikenai operasi redo. Kedua daftar ini dibentuk untuk proses recovery sebagai berikut. Mula-mula kedua daftar tersebut kosong. Kita melakukan penelusuran mundur terhadap file log, memeriksa record hingga ditemukannya <checkpoint> : Untuk setiap record yang ditemukan dalam bentuk <Ti commit>, kita tambahkan Ti dalam redo-list. Untuk setiap record yang ditemukan dalam bentuk <Ti start>, jika Ti tidak ada dalam redo-list, kita tambahkan Ti dalam undo-list.

16

Pada saat semua record dimaksud dalam file log telah diperiksa, kita periksa isi list L dalam record checkpoint. Untuk setiap transaksi Ti dalam L, jika Ti tidak ada dalam redo-list maka kita tambahkan Ti dalam undo-list. Begitu kedua daftar tersebut telah terbentuk, maka proses recovery akan dilakukan dengan langkah - langkah berikut ini: 1. Ulangi penelusuran mundur file log dari record terakhir, dan jalankan operasi undo untuk setiap record dalam file logyang memiliki transaksi Ti pada undo-list. Record-record transaksi dalam redo-list diabaikan dalam fase ini. Penelusuran dihentikan ketika record <Ti start> ditemukan untuk setiap transaksi Ti dalam undo-list. 2. Carilah record <checkpoint L> terakhir dalam file log. Perhatikan bahwa langkah ini dapat melibatkan penelusuran maju, jika record checkpoint telah dilewati dalam langkah 1. 3. Lakukan penelusuran maju pada file log dari record <checkpoint L> terakhir dan jalankan operasi redo untuk setiap record dalam file log yang dimiliki transaksi Ti yang da di dalam redo-list. Pada fase ini, abaikan semua record dari transaksi yang ada dalam undolist. Setelah semua transaksi dalam undo-list telah dikenai operasi undo, selanjutnya transaksi - transaksi dalam redo list juga dikenai dengan operasi redo.

2.9 Teknik Recovery dan Cara Melakukan Recovery Meski bisa dikatakan database MySQL jarang sekali mengalami kerusakan, namun segala kemungkinan bisa terjadi seperti karena konflik atau yang lainnya. Teknik recovery terdapat tiga yaitu : 1. Defered upate / perubahan yang ditunda : Perubahan pada basis data tidak akan berlangsung sampai transaksi ada pada poin disetujui (COMMIT). Jika terjadi kegagalan maka tidak akan terjadi perubahan, tetapi diperlukan operasi redo untuk mencegah akibat dari kegagalan tersebut.

17

2. Immediate Upadte / perubahan langsung : Perubahan pada basis data akan segera tanpa harus menunggu sebuah transaksi tersebut disetujui. Jika terjadi kegagalan diperlukan operasi UNDO untuk melihat apakah ada transaksi yang telah disetujui sebelum terjadi kegagalan. 3. Shadow Paging : Menggunakan page bayangan dimana pada prosesnya terdiri dari 2 tabel yang sama, yang satu menjadi tabel transaksi dan yang lain digunakan sebagai cadangan. Ketika transaksi mulai berlangsung kedua tabel ini sama dan selama berlangsung tabel transaksi yang menyimpan semua perubahan ke database, tabel bayangan akan digunakan jika terjadi kesalahan. Keuntungannya adalah tidak membutuhkan REDO atau UNDO, kelemahannya membuat terjadinya fragmentasi. Sedangkan terdapat 6 cara recovery yang terdiri dari : a. Dual recording b. Periodic dump c. Periodic dump dan transaction log d. Periodic dump dan logging after image e. Periodic dump dan logging before image dan transaction log f. Residual dump. Cara melakukan recovery pada oracle yaitu sebagai berikut : Automatic Recovery Proses recovery yang dilakukan secara otomatis. Langkah-langkahnya yaitu Buka Recovery Manager Kemudian klik push button Automatic Recovery. Jika database tidak aktif dan ingin menampilkan dan memodifikasi nama file struktur database, maka pilih tombol File. Jika database tidak aktif dan ingin menampilkan dan mengubah parameter parameter database yang akan berefek mulai dari database dibuka sampai proses recovery. Pilih tombol Recovery. Memulihkan Database dengan Full Backup Untuk melakukan proses recovery database ikuti langkah - langkah berikut ini : Buka Recovery Manager Pilih push button Restore From

18

Full Database Backup Pilih tombol File Pilih tombol Parameters Pilih Tombol Recovery Pilih Recover. Jika memilih Restore From Tape, pilih tape Device dari kontak daftar drop down. Jika memilih Restore From Disk, pilih direktori untuk memilih file yang akan pulihkan Pilih backup. Pilih klausa Pilih tombol OK. Memulihkan File Kontrol File kontrol merupakan bagian yang vital dari sebuah database. Untuk memulihkan file kontrol ini bisa mengikuti langkah - langkah berikut ini : Buka Recovery Manager Pilih push button Restore Control File Pilih tombol File atau pilih tombol Parameters klik tombol OK Pilih Recover dari kotak dialog Recovery Manager Restore From Tape Restore From Disk Directory Directory Create A New Control File. Backup Pilih Restore From Tape, Restore From Disk, atau Create a New Control File Pilih file backup yang akan restore dari kotak daftar Backup. Jika sudah, pilih tombl OK. Menampilkan & Memodifikasi File Database Untuk Proses Recovery Untuk menampilkan dan memodifikasi nama file struktur database, ikuti langkah - langkah berikut ini. Buka Recovery Manager Klik atau pilih tombol Files, push button Data Files dan file - file isinya ditampilkan dalam kotak File List Gunakan kotak nama file, tombol Add, dan tombol Remove untuk mendefinisikan daftar file data dalam database Pilih radio button Log Files Gunakan kotak nama file, tombol Add, dan tombol Remove untuk mendefinisikan file-file log dalam database Pilih radio button Control File Gunakan kotak nama file, tombol Add, dan tombol Remove untuk mendefinisikan file-file kontrol database Jika sudah selesai, pilih tombol OK sehingga akan masuk kembali ke kotak dialog Recovery Manager.

19

BAB III KESIMPULAN

3.1 Kesimpulan 1. Partitioning adalah sebuah teknik untuk menempatkan data - data table atau index yang berbentuk page ke dalam partisi - partisi yang terpisah di dalam sebuah atau beberapa filegroup. Partitioning memungkinkan kita untuk mendistribusikan data - data di suatu tabel yang sama ke file system yang berbeda di tempat yang berbeda pula. 2. Backup merupakan suatu kegiatan untuk menyimpan database dalam bentuk datafile, control file dan archieve log ke dalam media penyimpanan lain seperti disk atau tape. Ada dua cara untuk melakukan Backup dan Recovery yaitu Physical Backup dan Logical Backup. 3. Recovery merupakan suatu proses untuk mengupdate database dengan file Backup yang telah disimpan terakhir kalinya.

20

DAFTAR PUSTAKA

http://mudafiq.student.umm.ac.id/2010/05/03/partisi-index-dan-tabel-databaseoracle/ http://dendieisme.blogspot.com/2009/05/mysql-partition-table.html http://sugengsuprayogi.wordpress.com/2010/04/30/backup-recovery-mysql

21

Anda mungkin juga menyukai