Tales from the Machine Room


Home Page | Comments | Articles | Faq | Documents | Search | Archive | Tales from the Machine Room | Contribute | Login/Register

SQL delle mie brame...

E' venerdi', e come ogni venerdi' mi aspetta il lungo orrore di un meeting con il Super-Luser (boss) per fare il punto sullo stato di imbecillita' dei vari Luser, meglio noto come "stato della situazione".

Giunto in Sala Comando inizio pertanto stampando il log dei problemi, e' un lungo elenco in cui la voce piu' ripetuta nella colonna "risposte" e' "RTFM".

Mentre la stampante macina la foresta amazzonica, io controllo i problemi del mattino. Il backup e' andato a ramengo un'altra volta.

Dato che non siamo riusciti a far funzionare il nuovo tape (vedere messaggio relativo alla Tape Library Sony di qualche tempo fa'), siamo ritornati ad usare un Mamooth Tape da 80 Gb, il quale funziona, MA... 80 Gb sono circa un quarto di quanto dovremmo effettivamente backuppare ed i nastri che abbiamo per quel coso portano la firma autografa di Elvis Presley (tanto per far capire quanto sono nuovi).

Quando, qualche tempo fa', durante una riunione con il management sono stati proposti due piani di investimento (1) comperare nuovi nastri e pagare qualcuno perche' completasse l'accrocchio mostruoso che passa per procedura di contabilita' [vedi nota] e (2) comperare nuovi laptop per tutti i super-luser, cosicche' i vecchi laptop potessero essere regalati a figli/figlie/amici/conoscenti potete immaginare quale dei due sia stato approvato all'istante e senza alcuna discussione. Chi ha detto "1" ??? Datti all'ippica!.

Il tutto funziona parzialmente bene (a parte i vari super-luser che non distinguono un computer da una lattina di birra se non quando cercano di versarla nel bicchiere), se non che un backup 'completo' viene fatto in 4 giorni (cioe' una volta alla settimana) e di tanto in tanto uno dei nastri si rivela sballato, cosicche' l'intero set e' da sbattere via. Ergo: per questa settimana non abbiamo backup.

Ed infatti, circa 10 minuti dopo, suona il telefono...

CL (Clueless Luser) : credo di avere un problema...
IO: "credi" o "hai" ?
CL: dunque, dovevo inserire delle spese nel programma di contabilita'...
IO: ...e... ?
CL: ma ho fatto un'errore ad inserire...

un paio di campanelli di allarme cominciano a suonarmi in testa...

IO: ...e... ?
CL: allora ho cercato di cancellare la spesa

Molti campanelli di allarme cominciano a suonarmi in testa...

IO: come ? (cercando di apparire casuale)
CL: be', CL2 mi aveva fatto vedere la funzione "query diretta"...

Annoto di pestare a sangue CL2, *tutti i campanelli di allarme della citta' mi stanno suonando nella testa*...

IO: .... e ? ...
CL: allora ho provato a digitare il comando di cancellazione...
IO: non c'e' nessun comando di cancellazione sul manuale, che comando ?
CL: be', ho comperato questo libro sull'SQL l'altro giorno...

ORRORE!!! Ha letto un libro proibito!!! I campanelli di allarme di mezza europa mi stanno suonando in testa...

IO: che comando hai digitato ?
CL: be', ho trovato questo riferimento al "drop" che mi sembrava idoneo...

A questo punto mi loggo nel database server e verifico il tracing delle ultime 2 ore, ed eccolo li':
DROP TABLE {nome di una tabella molto importante}
e quel che e' peggio: COMMIT...

IO: fammi indovinare, adesso non funziona piu' niente!
CL: ..effettivamente...
IO: non solo, ma nessuno nell'ufficio riesce piu' ad accedere al sistema
CL: ...hummm...

Guardo il system monitor, una dozzina di iconcine rosse lampeggiano...

CL: ho fatto qualche cosa di sbagliato ?
IO: a parte alzarti dal letto stamattina? si', direi proprio di si'.
A questo punto sbatto giu' il telefono, chiudo a chiave la porta della Sala Comando, appiccico il cartello con su' scritto "LO SO!" e comincio a schiaffare dentro i nastri della settimana scorsa... poi mi aspetta un luuuuuungo e noioso meeting, per spiegare *perche'* tutta la contabilita' di due settimane dovra' essere re-inserita a mano...

Meno male che e' venerdi'...

[NOTA: il succitato "programma di contabilita'" e' un'accrocchio mostruoso iniziato un giorno da un sistemista annoiato, in breve il tipo aveva messo insieme un qualche cosa che pareva funzionare e consentiva di tenere sotto controllo le spese (modeste) dell'IT. Il Super-Luser di turno noto' la cosa, se ne approprio' e la presento' al Gran Concilio dei Super-Luser come La Soluzione. Il sistemista in questione, vedendo la possibilita' che gli venisse richiesto di *completare* l'accozzaglia, diede le dimissioni e se ne ando' a lavorare altrove (lucky bastard). In quel periodo la ditta stava attraversando un momento di insana floridita', pertanto vennero assegnati un semi-infinito numero di studenti-praticanti al completamento del "coso". Il risultato e' un'incubo allo stato puro, composto da codice parzialmente funzionante in un minimo 4 linguaggi, dal Cobol fino al C++, generalmente non commentato con un numero di bug da fare invidia a Microsoft. In particolare, una volta inserito un valore non c'e' modo di modificarlo o cancellarlo (sembra facile dire "aggiungiamo una funzione di cancellazione/modifica e?), l'unico modo per sistemare le cose in quel caso e' segnarsi su un foglio di carta l'ID della voce e chiamare il sistemista (io) che la cancella a manetta dal database. Per "velocizzare" l'operazione, e' presente una funzione che consente di inviare al database una qualunque query direttamente, senza alcun controllo su cio' che si invia al db. Tale funzione dovrebbe essere protetta da password per evitare problemi, ma la password non ha mai funzionato, basta premere invio per accedere...]

Davide
30/09/2002 00:00

Previous Next

Comments are added when and more important if I have the time to review them and after removing Spam, Crap, Phishing and the like. So don't hold your breath. And if your comment doesn't appear, is probably becuase it wasn't worth it.

1 message this document does not accept new posts
anonymousdrop table senza ritorno By anonymous - posted 22/05/2009 13:39
temo che anche senza commit, tanti saluti alla tabella. Infatti chi ha inventato il sql, ha deciso che i comandi che modificano lo schema di un DB non siano transazionali.

--
anonymous


Previous Next


This site is made by me with blood, sweat and gunpowder, if you want to republish or redistribute any part of it, please drop me (or the author of the article if is not me) a mail.


This site was composed with VIM, now is composed with VIM and the (in)famous CMS FdT.

This site isn't optimized for vision with any specific browser, nor it requires special fonts or resolution.
You're free to see it as you wish.

Web Interoperability Pleadge Support This Project
Powered By Gojira