repair table mysql

Menganalisa masalah pada sebuah system yang sedang running(produksi) haruslah cepat dan tepat untuk menghindari downtime yang lama. Salah satu server yang saya handle mengalami masalah, kebetulan saat terjadi masalah saya tidak berada di office sehingga trouble shoot yang bisa dilakukan secara remote. Rekan di bagian Network Operation Centre(NOC) melaporkan kejadian ini via telepon bahwa service pop3 ini mengalami masalah di kantor dan sejumlah client, server email pop3 yang menggunakan operating system linux sangat diperlukan untuk kebutuhan mail hosting client kantorku.

Langkah menghadapi kasus ini adalah melihat log error yang terjadi baik pada mail client dan log error pada mailserver.

Saya mencoba menggunakan mail client untuk test tarik email dan didapat error sebagai berikut :

There was a problem logging onto your mail server. Your Password was rejected. Account: ‘mail.namadomain.net’, Server: ‘mail.namadomain.net’, Protocol: POP3, Server Response: ‘vmysql: error creating table ‘vlog’: Table ‘vlog’ already exists’, Port: 110, Secure(SSL): No, Server Error: 0x800CCC90, Error Number: 0x800CCC92

Dari log error diatas didapat letak permasalahan ada pada table vlog pada database vpopmail yang menggunakan Mysql.

Untuk lebih menelusuri apa yang terjadi pada table vlog, saya remote ke server pop3 yang berada di Gedung Cyber Lt IV, dan melihat log

# tail -f /var/log/mail.log

…………snip……………………..
May 21 11:05:55 mailserver vpopmail[5112]: vchkpw-pop3: password fail renata@namadomain.net:202.51.xxx.xxx
May 21 11:05:55 mailserver mysqld[5030]: 080521 11:05:55 [ERROR] /usr/sbin/mysqld: Table ‘./vpopmail/vlog’ is marked as crashed and should be repaired
………..snip………………….

Dari log aiats saya langsung dapat mengetahui bahwa table vlog yang terdapat didalam table vpopmail mengalami crash dan harus direpair.

Langkah selanjutnya adalah login ke mysql
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 445
Server version: 5.0.32-Debian_7etch5 Debian etch distribution

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> use vpopmail;
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_vpopmail |
+——————–+
| dir_control |
| domain_alias |
| lastauth |
| valias |
| vlog |
| vpopmail |
+——————–+
6 rows in set (0.00 sec)

mysql> REPAIR TABLE vlog;
+—————+——–+———-+————————————————+
| Table | Op | Msg_type | Msg_text |
+—————+——–+———-+————————————————+
| vpopmail.vlog | repair | warning | Number of rows changed from 1263639 to 1263640 |
| vpopmail.vlog | repair | status | OK |
+—————+——–+———-+————————————————+
2 rows in set (49.13 sec)

done

Kunci penyelesaian masalah ini ada pada baris command REPAIR TABLE vlog;

Jika proses repair table vlog tersebut gagal, maka siapkan solusi lain yaitu dengan menimpa/replace table vlog yang rusak dengan table vlog pada server backup.

Kemudian cek log kembali di server dan aku coba login menggunakan mail client kembali, dan berhasil tanpa muncul kembali log error sebelumnya, lalu saya telepon ke bagian NOC/CRC(Customer Response Centre) kantor untuk memberitahukan trouble shoot sudah selesai. Service POP3 sudah up kembali.

4 thoughts on “repair table mysql

  1. zach

    Terima kasih atau tutorialnya. Kemaren saya sempat mendapat masalah yang sama. Ini gara-gara harddisk saya penuh dan mysql erorr. Tabel vlog tersebut berhasil di reper.

    Nah sekarang masalahnya saya tidak mempunyai backup server mail. Jika suatu saat vlog terserbut error lagi dan tidak bisa di reper saya harus bagaimana ?

    Ada solusinya pak ?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.