Cosa fare dopo aver cancellato accidentalmente molte voci del database?

6

Oggi al lavoro ho fatto un aggiornamento alla produzione. L'aggiornamento prevedeva la sostituzione di vecchi articoli da due tabelle con nuovi dati. Ovviamente ho fatto un backup dei tavoli prima di questo.

Bene, ora 6 ore dopo essere tornato a casa mi sono reso conto che durante la doccia c'era un riferimento di chiave esterna a cascata per molte tabelle e quando ho sostituito i vecchi dati ho rimosso anche molti altri dati - non sono nemmeno sicuro Conosco tutti i dati che sono stati rimossi ...

Il fatto è che ci sono circa 270 tavoli e sono stato in azienda per 3 mesi. Dovevo fare questo aggiornamento oggi e il CTO non lavorava in remoto. Ho provato a contattare via Skype ed e-mail, ma lui è via. Ho pensato di non chiamarlo a quest'ora del giorno (tarda sera qui).

Cosa dovrei fare qui? È l'inizio del weekend e mi sento male lasciare il sistema in una condizione del genere per due giorni ... e soprattutto perché ho rovinato tutto.

Il cliente sta facendo affari da miliardi di dollari ed è il maggiore cliente dell'azienda, quindi questo è stato uno dei maggiori svantaggi. Se il provider di hosting non dispone di backup notturni, probabilmente verrà licenziato. Dannazione odio la magia automatica come gli FK. : (

Che cosa faresti nella mia posizione?

    
posta rFactor 14.10.2011 - 21:12
fonte

3 risposte

18

Fai sapere a qualcuno che c'è un problema il più rapidamente possibile.

Innanzitutto, a seconda del fornitore del database e della configurazione, i DBA potrebbero avere la possibilità di annullare la modifica. Ma le opzioni per farlo diventano più difficili più tempo è trascorso. La tecnologia di flashback di Oracle, ad esempio, offre al DBA molte più opzioni se l'errore viene notato rapidamente rispetto a quando l'errore verrà notato da qualche giorno a partire da ora.

In secondo luogo, se è necessario ripristinare da un backup, è preferibile avere il weekend per ripristinare il backup e recuperare i dati necessari al tentativo di eseguire il ripristino e il ripristino durante la settimana. Probabilmente ci vorranno almeno alcune ore per riavere i nastri di backup, quindi, di nuovo, il tempo è prezioso.

In terzo luogo, da un punto di vista puramente politico, la gente sarà molto meno dispiaciuta per te dell'errore se tu sei quello che sta suonando l'allarme piuttosto che se qualcun altro scopre l'errore più tardi. Tutti fanno degli errori. Non tutti possiedono i loro errori. Preferirei avere un impiegato che ha commesso un errore costoso, ho imparato una lezione preziosa e ho avuto la forza di carattere per ammettere l'errore e lavorare per risolverlo in modo proattivo piuttosto che avere un dipendente che ha commesso un errore costoso e ha cercato di nasconderlo o evitare di attirare l'attenzione su di esso.

    
risposta data 14.10.2011 - 21:26
fonte
6

Chiama il tuo CTO e (con calma) spiega cosa è successo. Dovresti chiamare qualcuno dopo l'orario in caso di emergenza, e sembra sicuramente che questa sia un'emergenza.

    
risposta data 14.10.2011 - 22:09
fonte
2

Ecco cosa suggerirei:

In primo luogo, esegui un backup del database in questo momento per almeno conservare quello che hai al momento. Ciò sarà anche utile se uno qualsiasi dei tentativi di recuperare le informazioni che potrebbero andare perse non riesce. Almeno la situazione non peggiora.

Quindi entra in contatto il più velocemente possibile con i ragazzi che eseguono i backup. Quindi ripristinare tali dati in un database separato in modo da poter determinare ciò che manca dal database live. Questo potrebbe non essere facile ma almeno vale la pena provare ed è un inizio per rimettere tutto in carreggiata.

La mia raccomandazione finale è che ti assicuri di comunicare durante tutto il processo a tutti gli stakeholder. Inizia con il tuo capo in quanto è probabile che ti sosterrà o potrebbe darti una copertura politica dietro le quinte.

Una volta che tutti sanno cosa è successo, subirai un sacco di calore. Quindi scusarsi e prendere l'iniziativa per elaborare un piano per contenere e ridurre al minimo l'impatto. Secondo la mia esperienza, anche se le parti interessate (compresi i clienti stimolanti) sono molto arrabbiate con te, hanno ancora bisogno di te poiché è probabile che tu sia la persona migliore per risolvere i problemi. E ricorda sempre: è impossibile comunicare troppo.

Buona fortuna!

    
risposta data 14.10.2011 - 22:01
fonte

Leggi altre domande sui tag