Ci sono momenti in cui è necessario correggere i dati su Prod che non esistono su altri server. Questo non è solo da bug, ma potrebbe essere da un'importazione di dati da un file che un client ha inviato che non era corretto o da un problema causato da qualcuno che ha violato il sistema. O da un problema causato da una cattiva immissione dei dati. Se il tuo database è di grandi dimensioni o di importanza temporale, potresti non avere il tempo di ripristinare l'ultimo backup e correggere l'aggiornamento.
La tua prima difesa (e qualcosa che nessun database aziendale può permettersi di fare senza!) sono tabelle di controllo. Puoi usarli per annullare le modifiche ai dati errati. Inoltre, è possibile scrivere script per restituire i dati allo stato precedente e testarli su altri server molto prima che sia necessario ripristinare i dati controllati. Quindi l'unico rischio è che tu abbia identificato i record corretti da ripristinare.
Avanti tutti gli script per modificare i dati sulla produzione dovrebbero includere quanto segue:
Dovrebbero essere in transazioni esplicite e avere un blocco TRY Catch.
Dovrebbero avere una modalità di test che è possibile utilizzare per ripristinare le modifiche dopo aver visto quali sarebbero state. È necessario disporre di una selezione di stato prima che la modifica sia stata apportata e una eseguita dopo la modifica per garantire che la modifica fosse corretta. Lo script dovrebbe assicurarsi che il numero di righe elaborate sia mostrato. Abbiamo alcuni di questi pre-impostati in un modello che assicura che i pezzi vengano eseguiti. Modelli per le modifiche, aiuta a risparmiare tempo anche nella scrittura della correzione.
Se vi è una grande quantità di dati da modificare o aggiornare, quindi considerare di scrivere lo script per l'esecuzione in lotti con commit per ciascun batch. Non vuoi bloccare l'intero sistema mentre correggi un milione di record. Se disponi di grandi quantità di dati da correggere, assicurati che un dba o qualcuno che è abituato all'ottimizzazione delle prestazioni riveda lo script prima di eseguirlo ed eseguirlo durante l'orario di riposo, se possibile.
Avanti tutti gli script per modificare qualsiasi cosa sulla produzione sono riesaminati dal codice e inseriti nel controllo del codice sorgente. Tutti loro - senza eccezioni.
Infine gli sviluppatori non dovrebbero eseguire questi script. Dovrebbero essere eseguiti da dbas o un gruppo di gestione della configurazione. Se non possiedi nessuno di questi, solo le persone che sono lead tecnologici o superiori dovrebbero avere il diritto di eseguire le cose su prod. Il minor numero di persone che eseguono le cose su prod, più è facile rintracciare un problema. Gli script dovrebbero essere scritti in modo tale da essere semplicemente eseguiti, senza parti evidenziate e correndo un passo alla volta. È l'evidenza che spesso mette le persone in difficoltà quando si dimentica di evidenziare la clausola where.