Login

           | 

Cerca nel sito...

Ricerca personalizzata

Segnala il sito

Segnala a: Mr. Wong Segnala a: Webnews Segnala a: Icio Segnala a: Oneview Segnala a: Kledy.de Social Bookmarking Segnala a:  FAV!T Social Bookmarking Segnala a: Favoriten.de Segnala a: Seekxl Segnala a: Social Bookmark Portal Segnala a: BoniTrust Segnala a: Power-Oldie Segnala a: Bookmarks.cc Segnala a: Newskick Segnala a: Newsider Segnala a: Linksilo Segnala a: Readster Segnala a: Yigg Segnala a: Linkarena Segnala a: Digg Segnala a: Del.icoi.us Segnala a: Reddit Segnala a: Jumptags Segnala a: Upchuckr Segnala a: Simpy Segnala a: StumbleUpon Segnala a: Slashdot Segnala a: Netscape Segnala a: Furl Segnala a: Yahoo Segnala a: Blogmarks Segnala a: Diigo Segnala a: Technorati Segnala a: Newsvine Segnala a: Blinkbits Segnala a: Ma.Gnolia Segnala a: Smarking Segnala a: Netvouz Segnala a: Folkd Segnala a: Spurl Segnala a: Google Segnala a: Blinklist Information
Social Bookmarking
Banner
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 PDF Stampa E-mail
Valutazione attuale: / 0
ScarsoOttimo 
Scritto da Massimiliano Pasqualoni   
Mercoledì 04 Luglio 2007 11:54
Sample Image Può capitare, a seguito di un blocco del Server o di uno shutdown irregolare, che accedendo ad un dB MySQL si ottenga l'errore

 mysql 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>

Abaubiglass ti regala subito 5,00 euro Guarda !
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...
RocketTheme Joomla Templates