Ripara e Ottimizza Database MySQL Automaticamente

001_Intro_cPanel.jpg

Soluzione definitiva per la manutenzione dei database MySQL tramite Cron Job

Ormai se si vuol avere un blog, un forum o qualsiasi tipo di sito che abbia un minimo di dinamicità è necessario utilizzare l'accoppiata vincente php + database MySQL, ma non mancano di certo i problemi, uno di quelli più fastidiosi è dover fare la manutenzione al database o ai database tramite phpMyAdmin.

Ogni volta quindi che utilizziamo il nostro blog , per scrivere un post o per rispondere ad un commento questo invia delle richieste al database modificando di fatto alcune tabelle inserendo fisicamente i record, questa operazione con l'andare del tempo può creare la frammentazione delle tabelle fino alla corruzione delle tali. Non è una novità per i webmaster di tanto in tanto riparare o ottimizzare le tabelle dei proprio database, in primo luogo per aumentare le prestazioni e in secondo luogo per evitare che il sito vada offline o i contenuti spariscano a causa di una tabella corrotta.

La domanda viene spontanea: esiste un modo per fare tutte queste operazioni di manutenzione automaticamente?

Certo che si, ma solo teoricamente, perché quando si va a chiedere informazioni ai servizi di hosting ti liquidano sempre dicendo che non è possibile (esperienza personale su più 4 di hosting differenti).

Personalmente non essendo un esperto di server linux ne tanto meno di MySQL, mi era molto difficile immaginare una soluzione che non passasse per i gestori del server, infatti dopo queste esperienze mi ero quasi convinto che non fosse possibile fare una manutenzione automatica...

Ovviamente ho provato di tutto come degli script PHP che una volta configurati permettevano di riparare e ottimizzare il database, ma dopo poco tempo si sono mostrati inefficaci: le tabelle si rompevano nonostante lo script era entrato in funzione dopo. Quindi ero tornato al punto di partenza dovevo sempre ottimizzare e riparare manualmente tramite phpMyAdmin i miei database, una vera scocciatura!

Che fare quindi rassegnarsi? No

Pochi giorni fa ho scoperto un post su My Digital Life che spiegava come riparare e ottimizzare i database automaticamente utilizzando un comando via server (quindi molto efficace).

Mi metto subito al lavoro per verificare se questo comando poteva funzionare con il mio hosting, non avendo un server di mia proprietà ma soltanto in affitto (shared,reseller o virtual) come molti di voi sanno ci sono molti limitazioni, quini ero quasi certo che non avrebbe funzionato...

Invece sorpresa funziona perfettamente! E' stata come una manna dal cielo!

Ma facciamo un passo indietro e spieghiamo passo passo come funziona e sopratutto dove funziona...

1.Requisiti

E' probabile che il trucco funzioni anche su server configurati in modo differente e con diverse versioni di MySQL, ma molto probabilmente ci saranno delle varianti che non posso prevedere...
Io ho avuto ottimi risultati su questo server:

  • Server Linux
  • Versione MySQL 5.x.x.x
  • Possibilità di accedere al pannello di controllo "cPanel" (non ho idea se funziona su altri pannelli di controllo)
  • Possibilità di accedere a Cron Job e creare Job.

2.Impostiamo il Cron Job

  1. Accedere al pannello di controllo del proprio sito www.vostrosito.com/cpanel (di solito è così)
  2. In base al tema scelto di cPanel dovrete raggiungere la funzione Cron Job
  3. Ora cPanel ci chiederà il nostro livello di esperienza mettiamo alto dovrebbe esserci un tasto "Avanzato stile unix" (anche se non siamo esperti non vi preoccupate)
  4. Inseriamo * in 3 spazi giorno,giorno,mese, questo significa che la riparazione avverrà ogni giorno all'orario che inseriremo nel passo successivo
  5. nel mio server ho impostato la manutenzione alle 8.30 del mattino dove il traffico non è eccessivo, in teoria va bene qualsiasi ora se non avete enormi database e milioni di visitatori non dovrebbe essere un problema per le prestazioni del vostro sito. Altrimenti se avete timore che questo rallenti le prestazioni date uno sguardo alle vostre statistiche e scegliete un orario dove ci sono meno visitatori.

3.il comando per riparare/ottimizzare i database

Ora passiamo al comando mi raccomando rispettate maiuscole,minuscole trattini e spazi, ogni piccola variazione sarà interpretata dal vostro server come un comando diverso perciò occhio!

mysqlcheck -Aao --auto-repair -u nomeutente  -ppassword

Attenzione:il nome utente deve essere staccato dalla -u e la password deve essere attaccata alla -p proprio come in questo esempio non è un errore!

Nella schermata Cron Job visualizzerete questo risultato:

30 8 * * * mysqlcheck -Aao --auto-repair -u nomeutente  -ppassword

Attenzione:questa non è unica stringa da inserire nel campo comando! Ma va divisa per campi , giorno, mese,comando ecc...

Che cosa abbiamo detto di fare?
Ogni giorno all'orario che avete impostato voi il server farà un controllo di tutti i database e se necessario riparerà e ottimizzerà tutti i database presenti nell'account! Fenomenale non trovate?

Non dovrete più ottimizzare 1 database alla volta ma tutti insieme!

Se volete saperne di più o sperimentare altre funzioni vi rimando alla guida ufficiale MySQL purtroppo non è molto semplice ed è disponibile solo in inglese...

Most Commented Posts