Questa è un'area enorme - quindi aspettati che questa domanda sia chiusa in un ordine abbastanza breve ma, in cima alla mia testa (come un ex DBA su yuge database):
Mart / Repository
È possibile mitigare alcuni rischi se si dispone di un database separato per gli aggiornamenti e un database separato che tutti utilizzano. Quindi è solo un caso di copiare i dati da un DB all'altro dopo aver effettuato vari controlli. Mart / repository è come talvolta viene descritto ma potresti avere primario / secondario, master / slave ecc.
Codice sorgente
Per tutto ciò che può cambiare, avere un codice sorgente che si riferisce a come i dati sono stati aggiornati. Quanti di questi hai varia da DB a DB ma potresti averne uno per ogni utente, ruolo, feed di dati, modulo di codice ecc.
Crea / aggiorna la data
Qualcosa che può essere di grande aiuto quando si traccia dove le cose sono andate storte è avere una creazione e aggiornare i dati per ogni riga. Quindi puoi vedere a colpo d'occhio quali righe sono state aggiornate.
ETL
Se l'aggiornamento del database prende parte come parte di un data factory, potresti essere in grado di ripristinare una vendemmia precedente da file flat.
Backup
Naturalmente i backup completi richiedono molto spazio, ma il solito scenario è che un backup completo avvenga a intervalli regolari (per esempio settimanali) e parziali su base più frequente (ogni giorno ecc.).
Ripristino puntuale
A seconda di quale RDBMS si sta utilizzando, alcuni punti di supporto nel recupero del tempo. Ciò ti consente di tornare al momento in cui era noto un buono stato. Ciò richiede tuttavia una grande quantità di spazio di archiviazione che aumenta per quanto lontano si desidera tornare indietro.
Audit
Avere tabelle di controllo ti dirà chi (o cosa) ha fatto un aggiornamento a una riga. Questo può darti un buon punto di partenza per le indagini.
Storia
Per alcune tabelle critiche, una copia della riga pertinente viene presa al momento dell'aggiornamento, in modo che i dati possano essere ripristinati, se necessario.
Convalida dei dati
Verifica che i controlli di convalida di base vengano eseguiti sui dati prima che vengano archiviati, al di sopra dei controlli di tipo di dati di base.
Integrità referenziale
L'integrità referenziale non è una pallottola d'argento, ma può aiutare a garantire che i dati siano ben strutturati.