Ci sono momenti in cui è necessario correggere dati su Prod che non esistono su altri server. Questo non è solo dovuto a bug ma potrebbe derivare da un'importazione di dati da un file inviato da un client errato o da un problema causato da qualcuno che ha hackerato il tuo sistema. O da un problema causato da una cattiva immissione dei dati. Se il tuo database è di grandi dimensioni o critico nel tempo, potresti non avere il tempo di ripristinare l'ultimo backup e correggere su dev.
La tua prima difesa (e qualcosa che nessun database aziendale può permettersi di essere senza!) Sono le tabelle di controllo. Puoi usarli per annullare modifiche errate ai dati. Inoltre, è possibile scrivere script per riportare i dati allo stato precedente e testarli su altri server molto prima che sia necessario ripristinare i dati controllati. Quindi l'unico rischio è che siano stati identificati i record corretti da ripristinare.
Successivamente 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 dichiarazione selezionata prima di apportare la modifica e una corsa dopo la modifica per assicurarsi che la modifica sia corretta. Lo script dovrebbe assicurarsi che sia mostrato il numero di righe elaborate. Abbiamo alcune di queste pre-impostate in un modello che assicura che i pezzi vengano eseguiti. Modelli per le modifiche, aiutano a risparmiare tempo nella scrittura della correzione.
Se è presente una grande quantità di dati da modificare o aggiornare, prendere in considerazione la possibilità di scrivere lo script da eseguire in batch con commit per ciascun batch. Non si desidera bloccare l'intero sistema mentre si correggono un milione di record. Se hai grandi quantità di dati da correggere, assicurati che un dba o qualcuno che è abituato a ottimizzare le prestazioni riesamini lo script prima di essere eseguito ed eseguito durante le ore di chiusura, se possibile.
Successivamente tutti gli script per modificare qualsiasi cosa sulla produzione vengono revisionati e messi nel controllo del codice sorgente. Tutti loro - senza eccezioni.
Infine, gli sviluppatori non dovrebbero eseguire questi script. Dovrebbero essere gestiti da dbas o da un gruppo di gestione della configurazione. Se non si dispone di nessuno di questi, solo le persone che sono leader tecnologici o superiori dovrebbero avere il diritto di gestire le cose su prod. Meno persone gestiscono cose su prod, più facile è rintracciare un problema. Gli script devono essere scritti in modo che vengano semplicemente eseguiti, senza evidenziare parti ed eseguendo un passaggio alla volta. Sono le cose in evidenza che spesso mettono le persone nei guai quando si sono dimenticate di evidenziare la clausola where.