Hello, unfortunately not all of the site is translated into English, or is poorly translated. I apologize and ask you to help me. Notify errors, send me translations, together we will build a free service certainly helpful to many!
| Ripristinare un dB MySQL rovinato |
|
|
|
| Scritto da Massimiliano Pasqualoni | |||
| Mercoledì 04 Luglio 2007 11:54 | |||
Può capitare, a seguito di un blocco del Server o di uno shutdown irregolare, che accedendo ad un dB MySQL si ottenga l'erroremysql error: Can't open file: 'file.MYD'. (errno: 145) mysql error number: 1016 Questo è dovuto a delle inconsistenze all'interno del file. Fortunatamente per noi MySQL ha delle utility per il recupero delle tabelle che possono aiutarci a ripristinare il dB. Tale ripristino non è sicuro al 100%, se il file è fisicamente danneggiato o se non ci sono sufficenti informazioni all'interno da poter recuperare, può capitare di avere un recupero parziale delle tabelle, o di non riuscire a recuperare nulla. Però fare un tentativo non ci costa nulla, male che vada dovremmo eseguire il restore di un backup per riportare in funzione il db, anche se con la perdita dei dati inseriti dopo la creazione del backup. Andiamo con ordine. Per prima cosa dal propmt dei comandi dobbiamo entrare dentro al dB in questione. Se avete nel path la directory bin di mysql vi basterà digitare il seguente comando, altrimenti dovrete andare a cercare il file mysql.exe all'interno di mysql/bin. lanciamo il prompt di mysql con il comando mysql -u %DBUSERNAME% -h %DBSERVER% -p %DBNAME% sostituendo alle variabili i vostri dati: DBSERVER è il nome del server che contiene il vostro dB DBUSERNAME è il nome dell'utente che ha diritti amministrativi su quel dB DBNAME è il nome del dB a cui non riuscite ad accedere Per esempio: mysql -u john -h db.johndoe_db -p johndb A questo punto il sistema vi chiederà la password per l'autenticazione Enter password: Una volta inserita otterremo il prompt di MySQL: mysql> Come accennavo prima, MySQL mette a disposizione due validi tool per eseguire la manutenzione del dB: check e repair table Check table fa un controllo della tabella e ne visualizza eventuali incongruenze, la sintassi del comando è molto semplice: check table %NOMETABELLA%; dove %NOMETABELLA% è il nome della tabella o l'insieme delle tabelle separate da un virgola. L'output del comando sarà simile a quello riportato: +--------------------------------------+--------+------------+------------------------------------------+ | Table | Op | Msg_type | Msg_text | +--------------------------------------+--------+------------+------------------------------------------+ | %DBNAME%.%NOMETABELLA[0]% | check | warning | Table is marked as crashed | | %DBNAME%.%NOMETABELLA[1]% | check | status | OK | +--------------------------------------+--------+-----------+-------------------------------------------+ A questo punto sappiamo che la tabella %NOMETABELLA[0]% è rovinata e dobbiamo ripristinarla. Per il ripristino usiamo il comando repair table con la sintassi: repair table %NOMETABELLA[0]% Otterremo in risposta una schermata simile a +--------------------------------------+-------+-----------+-----------+ | Table | Op | Msg_type | Msg_text | +--------------------------------------+-------+-----------+-----------+ | %DBNAME%.%NOMETABELLA[0]% | check | status | OK | +--------------------------------------+-------+-----------+-----------+ Ripetendo l'operazioen per tutte le tabelle che risultano danneggiate è possibile ripristinare il dB. MySQL mette a disposizione altri comandi per la manutenzione dei dB come, ad esempio, MyISAMChk che lavora a dB arrestato, con le tabelle MyISAM, ovvero le tabelle stoccate nei file .MYD e .MYI MyISAMChk è utile se non conosociamo il nome delle tabelle all'interno del dB e se non abbiamo modo di reperire tale informazione. Con due soli passagi possiamo controllare e correggere tutte le tabelle all'interno dei file MyISAM: myisamchk --silent --force --fast --update-state \ --key_buffer_size=64M --sort_buffer_size=64M \ --read_buffer_size=1M --write_buffer_size=1M \ /%PATH_FILE_MYI%/*.MYI isamchk --silent --force --key_buffer_size=64M \ --sort_buffer_size=64M --read_buffer_size=1M --write_buffer_size=1M \ /%PATH_FILE_ISM%/*.ISM Altro tool di MySQL simile a MyISAMChk è MySQLCheck, che può eseguire un controllo e la correzione sulle tabelle in un unica operazione anche a dB attivo. Per l'utilizzo di questi due tool fate riferimento al manuale di MySQL per i comandi mysqlcheck e myisamchk
|
|||
| Ultimo aggiornamento Mercoledì 19 Settembre 2007 17:06 |
Altri Articoli :
» Disabilitare anteprima file su risorse di rete
Siete nel dubbio se tenere o meno le anteprime dei file?E' vero, sono belle, in locale, ed aiutano a capire che cosa stiamo vedendo, senza doverlo aprire.Ma è anche vero che se lavoriamo in rete sono un supplizio!7 si pianta sulle connessioni...
» SQL: impostare la password di root da riga di comadno
A volte può sorgere la necessità di impostare la password di root di MySQL, vediamo come fare.Â
» Permessi su file Mysql in Ubuntu
Sono da poco tornato ad ubuntu sul mio portatile.Oggi ho avuto la necessità di riprendere una vecchia installazione di Joomla sulla macchina locale per controllare un componente sviluppato. Ho estratto dallo zip di backup la cartella di Joomla in...
» Rename massivo in Ubuntu
Mi è capitato di lavorare con delle fotografie su Ubuntu.I file erano in formato jpeg, l'estensione era scritta in maiuscolo ed il programma che stavo usando per uplodare le foto su un sito non trovava i file in quanto cercava solo i file con...
» Riavviare un computer in desktop remoto da riga di comando
A volte capita di dover fare manutenzione a sistemi remoti con il desktop remoto di windows e di doverli riavviare.Purtroppo windows non consente di eseguire riavvii o spegnimenti da computer remoti, è per questo che occorre ricorrere alla riga di...


















































Può capitare, a seguito di un blocco del
Server