Ceux qui ont déjà fait une connerie sous root, et les autres.
Moi, je n'ai pas encore fait de connerie sous root, mais ce que je viens de faire mériterait le prix de la connerie de la semaine. En effet, j'ai un programme sur son serveur qui fait des enregistrements divers et variés dans une table MySQL, tout ce qu'il y a de plus classique. En observant mon programme, je le trouvais un peu 'lent' hier soir, "Certainement la table qui doit devenir grande" me dis-je. Effectivement, je regarde :
klines 1 906 385 MyISAM latin1_swedish_ci 310,1 Mo
uhost 122 390 385 MyISAM latin1_swedish_ci 2,06 Go
Effectivement, c'est sans appel, il y a grand besoin d'un bon coup d'OPTIMIZE dans tout ça. Ni une ni deux, je mets le programme en stand-by, mysql en ligne de commande, hop hop hop, un coup de use par ci et vlan: "OPTIMIZE TABLE `ial`;" !
Une heure passe, deux heures ... trois heures, je commence à trouver cela bien long. Je regarde le MyTOP: "6400 OPTIMIZE TABLE", il réponds, il n'as pas l'air d'être planté pourtant, regardons le 'top' : 0,2% CPU 98,1% IDLE. Bon, il à du planté, l'activité disque est plate comme l'encéphalogramme de la grenouille... On va killer proprement hein ! MyTOP, 'k' ID to kill : 4487. Et, là VLAN : MySQL me crache un violente erreur 28. L'erreur 28 ? No space left on device ...
Je tente de lire ma table :
SELECT COUNT( * ) AS num
FROM `Detector`.`uhost`
#1016 - Can't open file: 'uhost.MYI' (errno: 144)
Merde ... j'ai gaufré ma table de 6,000,000 d'enregistrements..., le /etc/init.d/mysql restart ne donne pas beaucoup d'espoir:
Detector.uhost
warning : Table is marked as crashed and last repair failed
error : Keyblock size at page -1 is not correct. Block length: 254 key length: 2
error : Corrupt
Improperly closed tables are also reported if clients are accessing
the tables *now*. A list of current connections is below.
+++-++-++-+--+
| Id | User | Host | db | Command | Time | State | Info |
+++-++-++-+--+
| 5 | debian-sys-maint | localhost | | Query | 0 | | show processlist |
+++-++-++-+--+
Uptime: 2 Threads: 1 Questions: 632 Slow queries: 0 Opens: 568 Flush tables: 1 Open tables: 512 Queries per second avg: 316.000
Heureusement, le .MYD existe toujours dans le /var/lib ... je le copie vers un filesys ou l'espace regorge, et je tente la commande miracle myisamchk -r, et j'attends...
Sephiroth:/sephiroth/home# myisamchk -r uhost.MYI
- recovering (with sort) MyISAM-table 'uhost.MYI'
Data records: 4505073
- Fixing index 1
736000
Putain mais quel con ... au moins ça m'apprendra a être impatient et à ne pas regarder mon espace libre ! Et puis la prochaine fois, promis, je fait un /var/ avec un vrai point de montage dedans a l'interieur et tout plein de Go rien que pour lui … :x
Mise a jour 28/09 20:02: Il n'y a pas que MySQL qui fait la tronche :
SMTP Server error: Transcript of session follows.
Out: 220 mail.yakaa.net ESMTP Postfix Welcome.
In: helo localhost
Out: 250 mail.yakaa.net
In: mail from: <kataras13@wilesreptiles.com>
Out: 452 Insufficient system storage
Session aborted, reason: lost connection