Odissea migratoria
Scritto da: Claudio in Ascoli, Informatica, Internet, tags: ascoli calcio, phpbb, phpbb2, phpbb3, tifometro, tifometro bianconeroOssia: come rendere un’operazione di apparente routine un’esperienza drammatica.
Qualche settimana fa, una domenica, provo ad accedere come di consueto al Tifometro Bianconero, un forum di tifosi dell’Ascoli. Bum: sito non raggiungibile. Colgo la palla al balzo, avendo appena migrato questo blog su Netsons e trovandomi decisamente bene: avverto Daniele, che subito conviene con me dell’urgenza dell’operazione. In pochi giorni è tutto predisposto: il dominio su Netsons è acquistato, spazio disponibile, tutto pronto: finalmente passiamo a phpBB3, dopo che il vecchio host ancora aveva PHP3 e MySQL4 (preistoria informatica, possiamo dire).
Lunedì 5 maggio (avrà influito), ore 14: l’ora X. Il Tifometro va regolarmente giù, inizio a fare il backup del database.

Primo problema: alcune tabelle sono esageratamente grandi (le due sottolineate, contenente i testi di tutti i post e quello che ho scoperto essere un pachidermico sistema di ricerca dei post stessi, facevano 170 megabyte in due), quindi è impossibile backupparle. Scatta la prima crisi: per un paio di volte credevo di aver avuto backup completi, salvo poi scoprire che il simpatico server che ci ospitava le tirava fuori a metà. La crisi si risolve con una grande idea: faccio sette backup separati: uno per i post, cinque (sic) sequenziali per coprire tutta la tabella di ricerca e uno per le tabelle rimanenti, di dimensioni modeste. Ce la faccio, e quindi inizio a sparare sul nuovo server (se fosse una persona lo dovrei ringraziare per quanto mi ha sopportato ieri). Un’importazione media durava dai quindici ai venti minuti, quindi nel frattempo mi metto anche a studiare un po’ di ” Teoria della calcolabilità e complessità”: figuratevi come stavo disperato già li. Verso le 18.30 il restore finisce, e comincio a installare phpBB3, ma mi sfugge un dettaglio: per importare il tutto avevo bisogno anche dei file effettivi del forum presenti sul vecchio server, oltre che dal database: e via altri 30-40 minuti a fare lo spostamento (che deve ovviamente passare per il mio computer, quindi prima scaricare tutto e poi ributtare tutto su Netsons). A questo punto decido di prendermi un break, esco con la mia signora e torno per le 21, quando trovo Maurizio che mi sbraita contro perché, a conti fatti, avevo lasciato l’installazione a metà visibile a tutti invece della classica videata “Stiamo lavorando per voi”. Ad ogni modo, il trasferimento che avevo lasciato in sospeso è andato liscio liscio: possiamo procedere. Pochi click (oddio, mica tanto pochi… una trentina?) e il forum sembra essere a posto. Iniziamo a lavorare per impostare tutto, per cercare di rispettare l’orario delle 23, che sarebbe quello previsto per la fine dei lavori. Alle 21:55 ecco che arriva li: il dramma.
Maurizio: se provi ad entrare (sei admin quindi puoi fare login) troverai inanzitutto un carattere un po’ strano (evabbè) ma non ha le lettere accentate
Maurizio: esempio barelò me lo scrive Barel?
Calma. Respira. È un problema del tuo browser, gli dico, un problema di codifica. No, non lo è, ce l’ho anche io. Controllo il database. Tanti piccoli ? erano spuntati dal nulla, al posto delle lettere accentate, come formiche intorno allo zucchero. Bene, gli utenti con lettere accentate sono solo nove, li correggiamo a mano. No, cari signori miei. TUTTI i caratteri accentati, di TUTTE le tabelle sono stati sostituiti da punti esclamativi.
Qualcuno ha nominato la tabella dei post, che pesava 65 megabyte?
Li la scelta: potevo decidere di passarci sopra e amen, così mi consigliava anche Maurizio stesso. No, dico io. Se faccio un lavoro, lo faccio per bene. Via tutto il database, si ricomincia da zero. Torno sul vecchio in cerca di un metodo che mi consentisse di non perdere gli accenti, ma pare (perché poi, a cose completamente fatte, ho capito che forse potevo fare diversamente e molto più facilmente) che l’unico modo per non perdere i caratteri accentati sia quello di fare un copia e incolla delle query che popolano le tabelle. C’è un problema: una tabella che ha 135.078 righe, ha una query di popolamento di altrettante righe di codice. Ovviamente, può un browser essere capace di copiare e incollare in un file di testo tanta roba senza esaurire subito la memoria e crashare? Ovviamente no. E qui arriva il mio martirio: scopro, per raffinazioni successive, che posso lavorare per 5.000 righe alla volta. Un rapido calcolo: per 28 volte ho esportato la frazione di popolamento, copiato, preso il documento di testo sul mio PC (che poi avrei usato per ricostruire la tabella) incollato, verificato di non aver perso niente e sarei passato alla frazione successiva. Niente di clamoroso, se non fosse che il colpo accusato dal computer durante queste iterazioni è stato davvero forte: blocchi continui a ogni passaggio, e rabbia che sale sempre di più. Ma alla fine ce la faccio: ho tutto il database. Ricontrollo gli accenti: sono tutti lì. Lo ricostruisco sul nuovo spazio: coincide tutto.
I più attenti (anche se dubito che ci sia qualcuno che ha letto fin qui) noteranno una cosa: e la tabella di ricerca, quella da 90 e passa megabyte? Beh, fortuna ha voluto che un’ora prima, quando ancora non si verificava la tragedia, avevo notato che phpBB3 ha portato con se un nuovo metodo di ricerca, che rendeva completamente inutile quella tabella. Altrimenti vi dico solo di quante righe era composta: 4.037.325. È l’una passata, ma il database è tutto in ordine: stavolta installo davvero, e va tutto bene. Mando un SMS a Maurizio:
Restore terminato senza problemi. Vai e finisci il lavoro.
Ovviamente ero ben cosciente che lui era a letto da almeno due ore, e che avrebbe letto il messaggio la mattina dopo. Ma io avevo finito. E, non nascondo, anche piuttosto soddisfatto.
