Minggu, 13 November 2011

Membuat Script Repair Database

Seperti yang saya tulis di

http://bimosaurus.com/2011/11/13/membuat-script-repair-database/



Salah satu permasalahan dalam sebuah webserver dengan database MySQL adalah error database/table yang rusak akibat mesin PC mati mendadak. Biasanya dengan demikian, input data akan gagal, penampilan database akan diketahui dari sisi web sebagai pesan error sebagai berikut: Table Error ERROR xxxx: Can’t open file: ‘xxx.MYD’.

Bagaimana cara memperbaiki? Cara paling singkat adalah melihat lebih dulu folder data MySQL yang biasanya jika pada Xampp windows akan tersimpan di …xampp\mysql\data\namadatabase atau jika pada linux terdapat di /var/lib/mysql/namadatabase. Check lebih dulu permission file nama file yang dimaksud apakah user mysql memiliki akses untuk membaca file tersebut.

Namun cara lain yang tidak kalah penting adalah melakukan repair database dari sisi MySQL itu sendiri. Hal ini bisa dilakukan dengan perintah

REPAIR TABLE

setelah lebih dulu melakukan CHECK TABLE satu persatu

mysql> use sistem;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------+
| Tables_in_sistem |
+---------------------+
| input |
| kota |
| menu |
| userlog |
| users |
| welcome |
+---------------------+
10 rows in set (0.00 sec)

mysql> CHECK TABLE welcome;
+------------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------------+-------+----------+----------+
| sistem.welcome | check | status | error |
+------------------+-------+----------+----------+
1 row in set (0.02 sec)

mysql> REPAIR TABLE welcome;
+----------------+--------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+----------------+--------+----------+----------+
| sistem.welcome | repair | status | OK |
+----------------+--------+----------+----------+
1 row in set (0.05 sec)

mysql>

Untuk selanjutnya kita bisa membuat sebuah script PHP yang berfungsi untuk memberikan CHECK table dan REPAIR table untuk sistem kita sendiri. Kira-kira script tersebut akan seperti ini:

<table><tr valign=top><td>
Check Database:<br />
 
 
<table class="table-common">
<tr><th>Table</th><th>Status</th></tr>
<?php
$sql_3 = "SHOW TABLES";
 
$q_3 = mysql_query($sql_3);
 
while($r_3=mysql_fetch_array( $q_3 )){
 
$table_name = $r_3[0];
 
$sql_4 = "CHECK TABLE `$table_name`";
 
$q_4 = mysql_query($sql_4);
 
while( $r_4 = mysql_fetch_array( $q_4 ) ){
 
?>
<tr><td><?php echo $table_name; ?></td><td><?php echo $r_4[Msg_text];?></td></tr>
<?php
 
}
 
}
?>
</table>
 
<form action="" method="post"><input type="submit" name="repair" value="Repair"></form>
</td>
 
<td><div style="margin-left:100px; margin-top:20px;">
<?php
 
 
 
if( isset( $_POST[repair] ) ){
sleep(5);
?>
<table class="table-common">
<tr><td>Nama Table</td><td>Status Repair</td></tr>
<?php
 
 
 
$sql_1 = "SHOW TABLES";
 
$q_1 = mysql_query($sql_1);
 
while($r_1=mysql_fetch_array( $q_1 )){
 
$table_name = $r_1[0];
 
$sql_2 = "REPAIR TABLE `$table_name`";
 
$q_2 = mysql_query($sql_2);
 
while( $r_2 = mysql_fetch_array( $q_2 ) ){
 
?>
<tr><td><?php echo "Table ". $table_name;?></td>
<td><?php echo $r_2[Msg_text];?></td></tr>
<?php
 
}
 
}
 
 
 
 
 
 
 
?>
</tr>
</table>
<?php
}
?>
</div>
</td>
</tr>
</table>

Contoh tampilannya akan seperti berikut :

dan

Sekian… Semoga berguna

15 komentar:

  1. Ooo... ini bagian dari Disaster Recovery System (DRS) ya

    BalasHapus
  2. Hehehe iya mas, setidaknya secara simple bisa tertangani dulu.. ternyata dimana-mana saya membuat sistem informasi dengan database server MySQL, Repair model seperti ini adalah wajib ada.. First Aid :D

    BalasHapus
  3. Mas, sorry OOT nih...

    Setiap kali saya bikin spoiler (auto show / hide semacam di thread kaskus) di postingan blog selalu gagal, karena MP gak mengijinkan kode2 javascript. Ada tips gak, mas?

    BalasHapus
  4. fungsi file PHP nggo ngecheck n ngerepair database otomatis yo kang?

    BalasHapus
  5. hai, apa kabar? alhamdulillah ya [kolo-kolo] kita bisa ol..

    BalasHapus
  6. dan, postingan ini mengingatkanku.. bahwa statusku masih mahasiswi informatika... fyuh

    BalasHapus
  7. maaf baru bales....saya sendiri menyerah mas kalau javascript di MP :D.. tapi sepertinya bisa diakali pake css yang event a:actived nya mengubah height halaman...

    *ada saran teman teman yang lain?

    BalasHapus
  8. ho oh... terutama yen bar listrik mati mendadak

    BalasHapus
  9. lhaaaa ayooo sinau.... jane pengn iso onlen bareng meneh ming yo kui .. the buntut and the sanding kui lho hahahaha

    BalasHapus
  10. nek aku nulis wae mbak :D heheheheh

    BalasHapus
  11. Wah mus melu nimbrung wae.. sopo eruh iso tambah elmu

    BalasHapus
  12. mbaca ya tetep gak mudeng hahahaha

    BalasHapus