Progettazione per tabelle di backup

3

Abbiamo 11 tabelle per i dati transazionali. Ora, questi dati potrebbero avere alcuni problemi di integrità dei dati. Abbiamo preparato una serie di script SQL per risolvere i problemi di integrità dei dati, che il cliente può eseguire dall'interfaccia utente, ma alcuni potrebbero richiedere input da parte dell'utente finale.

In alcuni casi, gli utenti finali tornano da noi e ci chiedono di annullare le modifiche, a causa dell'impatto funzionale, quindi abbiamo 11 tabelle di backup, che sono le stesse tabelle transazionali ma senza alcun vincolo dato che è necessario archiviare danneggiato i dati.

Domanda: Il mio architetto senior ha proposto di cambiare il nostro progetto per utilizzare una singola tabella per questo scopo, e fare il backup in clob usando dbms_xmlgen e persistere in un CLOB / XMLtype. La sua preoccupazione principale è l'overhead di elaborazione e manutenzione per queste nuove tabelle, ad esempio, un'introduzione a una nuova colonna in una tabella transazionale richiederà anche l'alterazione nella tabella di backup.

Nel mio caso d'uso,  1. il conteggio delle righe della tabella transazionale può essere in milioni,  2. alla volta, eseguiamo il backup di righe che vanno da 1 a 100000 circa.  3. Inizialmente, avremo bisogno di ripristinare i dati nel 5% dei casi, ma alla fine, potrebbe scendere più vicino allo zero.  4. Inoltre, questo è richiesto nel periodo di tempo iniziale, a meno che i nostri script non si dimostrino a prova di errore.

    
posta Tejas 09.04.2018 - 12:41
fonte

1 risposta

4

Dalla tua descrizione, sembra che tu stia semplicemente reinventando il backup rendendolo inutilmente complesso.

Invece:

  • Se il tuo database lo supporta (Microsoft SQL Server lo fa, non lo so per gli altri), usa le istantanee prima di eseguire le operazioni rischiose. Il vantaggio delle istantanee è che è possibile annullare le modifiche in qualsiasi momento se si è scoperto che si è commesso un errore e sia la creazione di un'istantanea che il ripristino stesso richiedono millisecondi, rispetto ai minuti o alle ore per un backup ordinario.

  • Altrimenti, si basano su backup standard, eseguendo un backup appena prima dell'operazione rischiosa. Assicurati di aver scelto attentamente tra backup completi e incrementali, poiché entrambi hanno vantaggi e svantaggi in termini di spazio utilizzato, tempo per creare un backup, ecc.

Sia le istantanee che i backup standard possono essere automatizzati. In pratica, il cliente vedrà ancora un pulsante nell'interfaccia utente che consente di eseguire gli script originali, preceduti da un comando che crea uno snapshot o un backup. Un secondo pulsante consentirà al cliente di tornare allo stato originale se qualcosa va storto.

    
risposta data 09.04.2018 - 13:24
fonte

Leggi altre domande sui tag