Makalah Backup Recovery
-
Upload
komang-ariasa -
Category
Documents
-
view
921 -
download
10
description
Transcript of Makalah Backup Recovery
PARTITIONING, BACKUP
AND RECOVERY
Oleh:
NAMA : KOMANG ARIASA
NIM : 1215051067
KELAS : III B
JURUSAN PENDIDIKAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN KEJURUAN
UNIVERSITAS PENDIDIKAN GANESHA
2013
i
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
ii
DAFTAR ISI
Kata Pengantar ...................................................................................................
Daftar Isi .............................................................................................................
BAB 1 PENDAHULUAN
1.1 Latar belakang ...............................................................................................
1.2 Rumusan Masalah .........................................................................................
1.3 Tujuan ...........................................................................................................
BAB II PEMBAHASAN
2.1 Pengertian Partitioning .................................................................................
2.2 Alasan Melakukan Partitioning .....................................................................
2.3 Tipe Partitioning dan Cara Melakukan di MySQL ........................................
2.4 Mengolah Partisi Basis Data .........................................................................
2.5 Pengertian Backup and Recovery ..................................................................
2.6 Metode dan Macam – Macam Backup Data ..................................................
2.7 Skema Mekanisme Recovery ........................................................................
2.8 Teknik dan Cara Melakukan Recovery .........................................................
2.9 Server Log .....................................................................................................
BAB III PENUTUP
3.1 Kesimpulan ...................................................................................................
DAFTAR PUSTAKA
i
ii
1
1
2
3
3
3
8
11
13
19
21
23
26
27
1
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?
2
1.2.3 Apa saja tipe partitioning dan bagaimana cara melakukannya pada
MySQL?
1.2.4 Bagaimana cara mengolah partisi basis data?
1.2.5 Apa itu backup and recovery?
1.2.6 Apa saja metode dan macam – macam backup data?
1.2.7 Bagaimana skema mekanisme recovery?
1.2.8 Apa saja teknik dan bagaimana cara melakukan recovery?
1.2.9 Apa itu server log?
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 dan cara melakukannya pada
MySQL.
1.3.4 Untuk mengetahui cara mengolah pastisi basis data.
1.3.5 Untuk mengetahui tentang backup and recovery.
1.3.6 Untuk mengetahui metode dan macam – macam backup data.
1.3.7 Untuk mengetahui skema mekanisme recovery.
1.3.8 Untuk mengetahui teknik dan cara melakukan recovery.
1.3.9 Untuk mengetahui tentang server log.
3
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 dan Cara Melakukan 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 |
+-------------------+-------+
4
| 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
);
5
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. Column partitioning
6
Column partition memungkinkan penggunaan beberapa kolom dalam
kunci partisi. Semua kolom ini diperhitungkan baik untuk tujuan
menempatkan baris dalam partisi dan untuk menentukan partisi yang harus
diperiksa untuk pencocokan baris dalam pemangkasan partisi . Selain itu,
kedua partisi range columns dan partisi list columns ini juga mendukung
penggunaan kolom non - integer untuk menentukan rentang nilai atau
anggota daftar . Berikut merupakan contoh penggunaan pastisi column :
CREATE TABLE customers_3 (
first_name VARCHAR ( 25 ) ,
last_name VARCHAR ( 25 ) ,
street_1 VARCHAR ( 30 ) ,
street_2 VARCHAR ( 30 ) ,
city VARCHAR ( 15 ) ,
renewal DATE
)
PARTITION BY RANGE COLUMNS ( renewal) (
PARTITION pWeek_1 VALUES LESS THAN ( '2010 - 02-09 ' ) ,
PARTITION pWeek_2 VALUES LESS THAN ( '2010 - 02-15 ' ) ,
PARTITION pWeek_3 VALUES LESS THAN ( '2010 - 02-22 ' ) ,
PARTITION pWeek_4 VALUES LESS THAN ( '2010 - 03-01 ' )
) ;
4. Hash partitioning
Penggunaan hash partition ini jika tidak cocok dengan RANGE
ataupun LIST Partition. 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,
7
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
5. 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 partitioning 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/
dalam rancangan basis data.
8
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 Mengolah Partisi Basis Data
a. Manajemen range dan list partitions
Partisi range dan list sangat berkaitan dengan bagaimana menambah
dan mendrop partisi yang ditangani. Mendrop partisi range dan list lebih
mudah daripada menambah satu, untuk melakukan drop biasanya
dilakukan dengan pernyataan ALTER TABLE dengan klausa DROP
PARTITION. Berikut ini merupakan contoh cara penggunaannya
mysql> CREATE TABLE tr (id INT, name
VARCHAR(50),purchased DATE)
-> PARTITION BY RANGE(YEAR(purchased)) (
-> PARTITION p0 VALUES LESS THAN (1990),
-> PARTITION p1 VALUES LESS THAN (1995),
9
-> PARTITION p2 VALUES LESS THAN (2000),
-> PARTITION p3 VALUES LESS THAN (2005)
-> );
mysql> INSERT INTO tr VALUES
-> (1, 'desk organiser', '2003-10-15'),
-> (2, 'CD player', '1993-11-05'),
-> (3, 'TV set', '1996-03-10'),
-> (4, 'bookcase', '1982-01-10'),
-> (5, 'exercise bike', '2004-05-09'),
-> (6, 'sofa', '1987-06-05'),
-> (7, 'popcorn maker', '2001-11-22'),
-> (8, 'aquarium', '1992-08-04'),
-> (9, 'study desk', '1984-09-16'),
-> (10, 'lava lamp', '1998-12-25');
Untuk melihat barang-barang yang seharusnya dimasukkan ke p2
partisi seperti yang ditunjukkan di sini :
mysql> SELECT * FROM tr
-> WHERE purchased BETWEEN '1995-01-01' AND '1999-12-31';
+------+-----------+------------+
| id | name | purchased |
+------+-----------+------------+
| 3 | TV set | 1996-03-10 |
| 10 | lava lamp | 1998-12-25 |
+------+-----------+------------+
Untuk mendrop partisi bernama p2, jalankan perintah berikut :
mysql> ALTER TABLE tr DROP PARTITION p2;
Untuk menambahkan partisi range atau daftar baru ke tabel dipartisi
sebelumnya, gunakan ALTER TABLE ... ADD PARTITION. Untuk tabel
yang dipartisi oleh RANGE, ini dapat digunakan untuk menambahkan rsnge
baru ke akhir dari daftar partisi yang ada . Contoh penggunaannya adalah
sebagai berikut :
10
CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(50) NOT NULL,
lname VARCHAR(50) NOT NULL,
hired DATE NOT NULL
)
PARTITION BY RANGE( YEAR(hired) ) (
PARTITION p1 VALUES LESS THAN (1991),
PARTITION p2 VALUES LESS THAN (1996),
PARTITION p3 VALUES LESS THAN (2001),
PARTITION p4 VALUES LESS THAN (2005)
);
ALTER TABLE employees ADD PARTITION (
PARTITION p5 VALUES LESS THAN (2010),
PARTITION p6 VALUES LESS THAN MAXVALUE
);
b. Manajemen Hash Partition dan Key Partition
Tabel yang dipartisi oleh hash partition dan key partition sangat mirip
satu sama lain dan sangat berkaitan dengan membuat perubahan dalam
setup partisi. Berikut ini merupakan cara menajemen hash partition dan key
partition : Misalkan kita memiliki tabel yang berisi data tentang klien, yang
terbagi menjadi dua belas partisi. Tabel klien didefinisikan sebagai
ditunjukkan di sini :
CREATE TABLE clients (
id INT,
fname VARCHAR(30),
lname VARCHAR(30),
signed DATE
)
PARTITION BY HASH( MONTH(signed) )
PARTITIONS 12;
11
Untuk mengurangi jumlah partisi 12 sampai 8, jalankan perintah
ALTER TABLE berikut :
mysql> ALTER TABLE clients COALESCE PARTITION 4;
Untuk meningkatkan jumlah partisi untuk tabel klien dari 12 sampai 18
menggunakan ALTER TABLE ... ADD PARTITION seperti yang
ditunjukkan di sini :
ALTER TABLE klien ADD PARTITION PARTISI 6 ;
2.5 Pengertian Backup and Recovery
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.
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. Backup data adalah memindahkan
atau menyalin kumpulan informasi (data) yang tersimpan di dalam hardisk
komputer yang biasanya dilakukan dari satu lokasi/perangkat ke
lokasi/perangkat lain. Fungsinya yaitu kita masih mempunyai cadangan data
dari data yang hilang/rusak/terhapus, baik yang disebabkan oleh kesalahan kita
sendiri atau faktor lain di luar kemampuan kita, seperti: terkena virus, file rusak
(tidak bisa dibuka), perangkat komputer error/bermasalah, mati listrik,
bencana, dan lain sebagainya. Dengan begitu cadangan data yang sudah kita
simpan tersebut dapat kita gunakan kembali sebagai pengganti data yang telah
hilang/rusak/terhapus tadi. Fungsi back up data lebih mengacu pada faktor
keamanan dan kenyamanan dalam menggunakan komputer.
Sedangkan pengertian recovery merupakan suatu proses untuk
mengupdate database dengan file backup yang telah disimpan terakhir kalinya.
Kegunaan dari proses ini adalah kemudahan serta keefektifan proses input data
dari data backup-an. Misalnya saat sistem operasi komputer kita sudah normal
12
dan MySQL juga sudah stabil maka kita tidak perlu lama-lama lagi memasukan
data lama. Kita hanya perlu merecovery data yang sebelumnya yang telah di
back-up. 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.
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
dengan baik. Namun, jika database itu tidak sering berubah setiap hari
13
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.
2.6 Metode dan Macam – Macam Backup data
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
Backup logika adalah menyimpan perintah logic dari struktur
database dan isinya yang direpresentasikan dalam perintah SQL. Seperti
CREATE DATABASE, CREATE TABLE dan INSERT DATA.
Backup fisik adalah mengambil datatabase dalam bentuk fisik, untuk
database yang menggunakan Appserv secara fisik data disimpan pada
folder C:\\Appserv\Mysql\data\ Pada folder tersebut terdapat file
database, setiap table diciptakan dari 3 file yaitu .MYD, ,FRM dan .MYI,
pada saat pengambilan data dilakukan dengan mengcopy folder yang
didalamnya menyimpan data dari database yang kita punya. Data yang
diambil adalah seluruh database dan tidak bisa terpilih, sangat berbeda
14
dengan backup secara logika, data yang diambil bisa dipilih sesuai
dengan yang diinginkan. Berikut ini karakteristik backup secara logika :
• Backup dilakukan melalui server MySQL untuk mengambil
struktur dan informasi data.
• Backup berjalan lebih lambat karena server harus mengakses
informasi data dan mengirimkannya dalam bentuk logika pada file
backup.
• Output bisa lebih besar dari pada bentuk fisik, misalkan data yang
disimpan 5 MB dalam bentuk file sql maka pada saat recovery akan
terjadi kehabisan memori karena prosesnya akan menghabiskan
banyak memori untuk mengembalikan dalam bentuk semula.
• Backup dan Restore dilakukan dengan mengabaikan mesin yang
digunakan.
• Backup logika tidak melibatkan banyak file hanya satu file logika
yang biasanya disimpan dalam file .SQL
• Data disimpan dalam bentuk logika yang merupakan bahasa DDL
dan DML.
• Backup data dilakukan saat server sudah dijalankan.
• Program untuk backup digunakan mysqldump.exe yang
memanggil file dikeluarkan dalam bentuk logika file, seperti
tsiswa.sql
• Untuk mengeluarkan data dalam bentuk file lain bisa digunakan
perintah : SELECT …..INTO OUTFILE
Berikut ini karakteristik backup fisik :
• Backup terdiri dari salinan file dan database, ini adalah salinan dari
semua bagian direktori MySQL, data dari table memori tidak
disampan pada disk.
• Backup data secara fisik lebih cepat karena tidak melakukan
memrosesan logika, hanya pengcopian secara fisik.
• Outputnya lebih sederhana dibandingkan backup logika.
• Sebagai tambahan dari database, backup dapat meliputi file
manapun yang terdiri dari file MYi, MYD dan FRM.
15
b) Backup online vs backup offline
Backup online dilakukan saat server MySQL sedang berjalan,
sedangkan backup offline dilakukan saat server sedang dihentikan.
Metoda Backup Online mempunyai karakteristik :
• Lebih sedikit mengganggu klien lain karena dapat menggunakan
mysql server tanpa harus menghentikan pekerjaan selama proses
backup.
• Backup data hanya dilakukan pada data yang tidak sedang terlibat
dalam transaksi.
Metoda Backup Offline mempunyai karakteristik :
• Mempengarui klien yang kurang baik sebab server tidak berjalan
selama proses berlangsung.
• Backup lebih sederhana memeriksa prosedur sebab tidak ada
kemungkinan gangguan campur tangan dari aktifitas klien.
c) Backup local vs backup remote
Suatu backup local dilakukan pada host yang sama pada server
MySQL yang sedang running, sedangkan suatu backup remote diaktifkan
dari suatu host yang berbeda.
• Mysqldump dapat menghubungkan ke server remote atau local.
Karena output SQL (perintah create dan insert) local atau remote
dapat diselesaikan dan degenerate dari client.
• Mysqlhotcopy melaksanakan hanya backup local,menghubungkan
ke server untuk menguncinya untuk menghindari modifikasi data
dan kemudian menyalin file ke local.
• Select ………into outfile dapat diaktifkan dari satu host remote
dari client, tetapi field output diciptakan pada host server.
• Backup fisik secara khas diaktifkan pada server mysql sedemikian
hingga server dapat diambil saat ofline, walaupun cara
pengambilannya bisa dengan remote.
d) Backup penuh vs backput bertambah sebagian
16
Suatu backup penuh meliputi semua data yang diatur oleh suatu
MySQL Server pada titik ditentukan pada waktunya. Suatu incremental
backup terdiri dari perubahan pada data sesuai dengan log pada-server.
e) Point in time recovery
Metoda lain menggunakan log binary untuk mencapai point in time
recovery. Ini dilaksanakan dengan recovery yang pertama dari backup
yang pertama dan merecovery seperti semula dan memodifikasi
prosesnya sampai waktu yang kita tentukan.
f) Backup scheduling, compression dan encryption
Backup scheduling adalah suatu yang penting untuk otomatisasi
prosedur backup. Proses ini bisa menghindari proses hacking yang
dilakukan diinternet sehingga data selalu terjaga. Proses ini biasa
diterapkan pada system online yang mengcover banyak data pada
transaksi.
g) Table Maintenance
Integritas data dapat disepakati jika table mengalami corrupt. My SQL
menyediakan program untuk memeriksa table dan perbaikan jika terdapat
masalah yang ditemukan, program ini biasa diterapkan pada table
MyIsam.
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
17
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 :
# 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
18
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
# 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
19
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 Skema Mekanisme 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.
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 :
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.
20
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.
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.
21
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 undo-
list.
Setelah semua transaksi dalam undo-list telah dikenai operasi
undo, selanjutnya transaksi - transaksi dalam redo list juga dikenai
dengan operasi redo.
2.8 Teknik 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.
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
22
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
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
23
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.
2.9 Server Log
MySQL mempunyai mekanisme untuk mengetahui apa saja yang terjadi
pada saat MySQL berjalan. Pada saat terjadi kesalahan atau terjadi masalah
saat menjalankan atau menghentikan MySQL, atau saat terjadi penambahan
atau pengubahan atau penghapusan data pada tabel, atau pada saat menjalankan
query terhadap suatu tabel. Semua kejadian itu bisa kita ketahui dan disimpan
pada suatu file log. Dari file log ini bisa kita ketahui apa saja yang terjadi pada
MySQL. Pada log tertentu juga bisa menyimpan data pada tabel. Tipe-tipe log
yang ada pada MySQL yaitu :
Error Log.
Error log pada MySQL berisi kesalahan yang terjadi pada saat
MySQL dijalankan atau dihentikan. Kesalahan yang dimaksud adalah
kesalahan yang sifatnya kritis, misalnya jika terjadi masalah pada tabel
yang memerlukan tindakan perbaikan pada tabel tersebut, MySQL akan
menulis pesan ke log. MySQL tidak akan menulis pesan ke log untuk
24
kesalahan seperti duplikasi data pada suatu tabel karena primary key, dan
lain-lain.
Menentukan file log ini dapat dilakukan dengan menambahkan entry
log-error pada file konfigurasi MySQL (file “my.ini”) pada bagian
mysql. Dari sini dapat kita tentukan nama file log dan direktori tempat
penyimpanan file log. Default disimpan pada direktori data MySQL.
[mysqld]
log-error="C:/Program Files/MySQL/MySQL 5.1/errlog.err"
Bisa juga dengan menambahkan parameter --log-error[=file_name]
pada saat menjalankan MySQL. Log file akan mencatat semua proses
yang terjadi termasuk yang menghasilkan error. Contoh penggunaannya
bisa dilakukan dengan : Log-error=<path/filename>
General Query Log.
General Query Log pada MySQL berisi semua aktivitas pada saat
client melakukan koneksi ke server atau pada waktu koneksi terputus dan
query dari client yang dikirim ke server. Fasilitas ini sangat berguna
untuk merekam segala aktivitas tiap client yang terhubung ke server. Bisa
juga untuk mengetahui kesalahan yang mungkin terjadi dari perintah atau
query yang dikirim client. Sama seperti Slow Query Log, sebelum
MySQL 5.1.6 tujuan penulisan log selalu ke file. Mulai MySQL 5.1.6
terdapat pilihan untuk menulis log ke file atau tabel atau keduanya.
Tujuan penulisan log ditentukan dengan pilihan --log-output yang bisa
berisi nilai TABLE, FILE atau NONE (tidak menulis log). Jika tujuan
penulisan ke tabel, maka tabel tujuan adalah mysql.general_log.
Misalnya:
--log-output=TABLE
--log-output=FILE
--log-output=TABLE,FILE
Sebelum MySQL 5.1.6, untuk mengaktifkan General Query Log
dengan menggunakan pilihan --log[=file_name]. Mulai MySQL 5.1.6
gunakan pilihan --general_log yang bisa memiliki nilai 0 (tidak aktif)
atau 1 (aktif). Sedangkan pilihan --general_log_file[=file_name]
digunakan untuk menentukan direktori tempat file log, jika tujuan
25
penyimpanan log pada file. Mulai MySQL 5.1.12 kita dapat
mengaktifkan atau non aktifkan General Query Log pada saat MySQL
sedang berjalan. Cara ini bisa digunakan misalnya untuk backup file log.
Setelah General Query Log non aktif, ganti nama file log dan buat file
log baru, kemudian aktifkan lagi General Query Log. Set ‘ON’ untuk
mengaktifkan atau ‘OFF’ untuk non aktif.
SET GLOBAL general_log = 'OFF';
SET GLOBAL general_log = 'ON';
Bisa juga mengaktifkan General Query Log dengan melakukan
pengaturan file konfigurasi MySQL (my.ini).
[mysqld]
general-log=1
log-output=FILE
general-log-file="C:/Program Files/MySQL/MySQL
5.1/log.log"
Tidak seperti error logging yang secara otomatis diterapkan, kita
harus memberi izin yntuk menerapkan query logging dan binary logging.
Binary Log. Informasi yang ditulis ke log adalah saat menjalankan query
dari client yang mengubah data. Juga digunakan untuk replikasi.
Slow Query Log. Informasi yang ditulis ke log adalah saat menjalankan
query selama selang waktu tertentu.
Secara default semua file log dibuat pada direktori data MySQL. Kita
dapat memaksa MySQL untuk menutup dan membuka lagi file log (atau
berganti ke file log baru) dengan melakukan “flush” terhadap log. Caranya
adalah dengan menjalankan perintah FLUSH LOGS atau menjalankan salah
satu dari perintah - perintah berikut dari command prompt.
mysqladmin flush-logs
mysqladmin refresh
Pada General Query Log dan Slow Query Log, log dapat disimpan pada
tabel (mulai MySQL 5.1.6). Untuk General Query Log disimpan pada tabel
mysql.general_log, dan untuk Slow Query Log disimpan pada tabel
mysql.slow_log. Tiap file log ditentukan dengan melakukan pengaturan pada
file konfigurasi MySQL. Pada sistem operasi Windows, file yang dimaksud
adalah file “my.ini” dan biasanya terletak pada direktori instalasi MySQL.
26
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. Secara umum terdapat 3 macam cara backup yaitu Dump, Transaction
Log, Image Log.
4. Recovery merupakan suatu proses untuk mengupdate database dengan file
Backup yang telah disimpan terakhir kalinya.
5. Teknik recovery terdapat tiga yaitu : Defered upate / perubahan yang
ditunda, Immediate Upadte / perubahan langsung, Shadow Paging.
Sedangkan terdapat 6 cara recovery yang terdiri dari : Dual recording,
Periodic dump, Periodic dump dan transaction log, Periodic dump dan
logging after image, Periodic dump dan logging before image dan
transaction log, Residual dump.
6. MySQL mempunyai mekanisme untuk mengetahui apa saja yang terjadi
pada saat MySQL berjalan. Pada saat terjadi kesalahan atau terjadi
masalah saat menjalankan atau menghentikan MySQL, atau saat terjadi
penambahan atau pengubahan atau penghapusan data pada tabel, atau pada
saat menjalankan query terhadap suatu tabel. Tipe-tipe log yang ada pada
MySQL yaitu : Error Log, General Query Log, Binary Log, Slow Query
Log.
27
DAFTAR PUSTAKA
Mudafiq. 2010, Partisi Indeks dan table database Oracle.
http://mudafiq.student.umm.ac.id. Diakses pada tanggal 26 November 2013.
Dendie. 2009, MySQL Partition Table. http://dendieisme.blogspot.com. Diakses
pada tangggal 26 November 2013.
Yoyok. 2010, Backup Recovery MySQL. http://sugengsuprayogi.wordpress.com.
Diakses pada tanggal 26 November 2013.
Rudy. 2009, Backup Recovery MySQL. http://rudycs.blogspot.com. Diakses pada
tanggal 26 November 2013.