jueves, 11 de septiembre de 2014

Reparando una tabla en mysql(mariadb)


Revisando un script de monitoreo para squid(mysar),  encuentro que la tabla de traffic se esta corrupta, como resultado no se esta actualizando la información sobre el consumo de Internet en la empresa.


Para solucionar esto, encuentro el siguiente comando en esta pagina.


El comando es: myisamchk

Para usarlo en Linux basta con ir al directorio de la BD:

/var/lib/mysql/mysar

Ingresar al directorio de la base de datos corrupta.

# cd mysar/

Y lanzar el comando que arregle la tabla.

# myisamchk traffic
Checking MyISAM file: traffic
Data records:  254198   Deleted blocks:       0
myisamchk: warning: Table is marked as crashed and last repair failed
- check file-size
myisamchk: warning: Size of indexfile is: 12060672      Should be: 3869696
myisamchk: warning: Size of datafile is: 34516352        Should be: 34513644
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
myisamchk: error: Found 270143 keys of 254198
- check record links
myisamchk: error: Record-count is not ok; is 270143       Should be: 254198
myisamchk: warning: Found 2608 deleted space.   Should be 0
myisamchk: warning: Found         17 deleted blocks       Should be: 0
myisamchk: warning: Found     270167 parts                Should be: 254198 parts
MyISAM-table 'traffic' is corrupted
Fix it using switch "-r" or "-o"




Revisamos los dos posibles escenarios para reparar:

# myisamchk traffic -r
- recovering (with sort) MyISAM-table 'traffic'
Data records: 254198
- Fixing index 1
- Fixing index 2
Data records: 270143

# myisamchk traffic -o
- recovering (with keycache) MyISAM-table 'traffic'
Data records: 270143

Finalmente reiniciamos el servicio y con esto ya hemos solucionado el inconveniente... fácil verdad?

No hay comentarios:

Publicar un comentario