Contact me sending an e-mail (antispam defense activated) |
Title: Check delle tabelle e recover da un crash Author: Sandro Tosi Last modified: 2007-08-26 In caso di arresto inatteso del database server (per esempio a fronte di un crash del sistema), e` possibile che alcune tabelle risultino danneggiate: e` quindi necessario controllarne lo stato ed effettuarne il recover. Per controllare lo status di una tabella, il comando da lanciare e`: mysql> CHECK TABLE <table_name> EXTENDED; Per esempio: mysql> CHECK TABLE gare_bck EXTENDED; +--------------------+-------+----------+----------+ | Table | Op | Msg_type | Msg_text | +--------------------+-------+----------+----------+ | nuototest.gare_bck | check | status | OK | +--------------------+-------+----------+----------+ 1 row in set (0.15 sec) E` possibile omettere il parametro "EXTENDED", ma meglio aspettare qualche attimo in piu` e far verificare la tabella in dettaglio, no? Se il risultato non e` "OK", allora si deve riparare la tabella, con il comando: mysql> REPAIR TABLE <table_name> EXTENDED; (con la stessa indicazione di prima riguardo ad "EXTENDED"), per esempio: mysql> REPAIR TABLE gare_bck EXTENDED; +--------------------+--------+----------+----------+ | Table | Op | Msg_type | Msg_text | +--------------------+--------+----------+----------+ | nuototest.gare_bck | repair | status | OK | +--------------------+--------+----------+----------+ 1 row in set (0.12 sec) Al posto di effettuare queste operazioni dal client mysql, viene distribuita anche un'utility per effettuare il check (ed eventualmente il repair) delle tabelle MyISAM: mysqlcheck. Per controllare tutti i db sul database server: # mysqlcheck -u root -p --auto-repair --all-databases un esempio di job notturno di check (ed eventuale repair): # mysqlcheck -o --auto-repair -C -F -r -q -A Ovviamente maggiori informazioni sono disponibile nella manpage e tramite lo switch "--help". Un altro tool, ma esclusivamente da utilizzare a database server spento e per tabelle MyISAM e` "myisamchk". |