Comprensione dell'impatto / rischio della disattivazione della "verifica dell'integrità del backup" sul backup SQL


12

Attualmente utilizziamo piani di manutenzione standard per i backup sui server SQL Server 2005/2008 / 2008R2 / 2012 nel nostro ambiente e la casella "Verifica integrità backup" è sempre stata selezionata.

Alcuni backup durano molto a lungo, quindi ho consigliato di disattivare questa opzione, ma il management ha bisogno di me per documentare l'impatto e i rischi di questa modifica.

Comprendo l'uso e la cronologia di questa opzione, mi sembra inutile raddoppiare il tempo per il processo di backup quando (a mio avviso), qualsiasi errore che potrebbe verificarsi si verifichi durante la fase di backup , non durante la verifica.

Ho sbagliato? È un rischio minimo disattivarlo, se eseguo il backup su disco e non su nastro in streaming o altro? (Effettuiamo il backup in rete su un'appliance di backup EMC DD-800, se pertinente.)

Esistono raccomandazioni ufficiali sulla SM per quando è sicuro spegnerlo?

Esegui "verifica" su ogni backup nel tuo ambiente? Li controlli a campione?

MODIFICA : Per chiarire, quando si seleziona "verifica integrità del backup" nel piano di manutenzione, SQL eseguirà un RIPRISTINO VERIFICAMENTE completo su ciascun database immediatamente dopo ogni backup. Questo è altrettanto intenso in termini di dati / I / O del backup originale e (sostanzialmente) raddoppia il tempo complessivo del processo di backup. Ciò non equivale a abilitare l'opzione "checksum" sul backup (che non è possibile eseguire nella procedura guidata, per quanto ne so).


Grazie a tutti. L'aggiunta di un collegamento più per il mio riferimento, sull'utilizzo di un flag di traccia per permettere di checksum sui backup, anche quando si utilizza SQL piani di manutenzione: nebraskasql.blogspot.com/2014/03/...
BradC

Risposte:


5

Ho sbagliato? È un rischio minimo disattivarlo, se eseguo il backup su disco e non su nastro in streaming o altro?

No, hai ragione :-)

RESTORE VERIFYONLYsolo non ti assicurerai che sarai in grado di recuperare il tuo database in caso di corruzione. Per sua natura, non eseguirà alcun controllo di integrità.

Un modo migliore sarà quello di eseguire periodicamente i backup e fare un ripristino valido su un altro server ed eseguire DBCC CHECKDB su di esso.

Questo è uno dei motivi per cui non sono un grande fan dei piani di manutenzione poiché la GUI non espone molte opzioni del genere backup .. with CHECKSUMche possono essere raggiunte da T-SQL.

Dal blog Myth di Paul Randal

24p) utilizzando RESTORE ... WITH VERIFYONLY convalida l'intero backup

No. L'uso di VERIFYONLY convalida solo l'intestazione del backup appare come un'intestazione del backup. Solo quando si esegue il backup con WITH CHECKSUM e si ripristina ... CON VERIFYONLY e si utilizza WITH CHECKSUM che il ripristino esegue controlli più approfonditi, incluso il checksum sull'intero backup.

Esegui "verifica" su ogni backup nel tuo ambiente? Li controlli a campione?

Non eseguo il VERIFYONLY. Invece prendo il backup con CHECKSUM e poi li ho ripristinati + CHECKDB su un altro server. È possibile seguire il campionamento statistico per la verifica dell'approccio Backup database se si desidera essere creativi.

Ciò non equivale a abilitare l'opzione "checksum" sul backup (che non è possibile eseguire nella procedura guidata, per quanto ne so).

È possibile abilitare Trace Flag 3023 in modo che l' CHECKSUMopzione sia abilitata automaticamente per il comando BACKUP. Come sempre, prova il comportamento di eventuali flag di traccia nel tuo ambiente!

La linea di fondo è: abbandonare i piani di manutenzione e utilizzare una soluzione di backup più sensata (suggerimento: la soluzione di backup di Ola) che ti consentirà di personalizzarla in base alle tue esigenze.

(Effettuiamo il backup in rete su un'appliance di backup EMC DD-800, se pertinente.)

Eseguire il backup in locale sul disco e quindi disporre di un processo di trasferimento PowerShell che copierà il backup in locale dal server in una condivisione di rete (server di backup). Sarà più veloce rispetto alla copia diretta su una condivisione di rete.

Inoltre, abilita l'inizializzazione istantanea dei file, che aiuterà con le crescite automatiche sui file di dati e contribuirà a ridurre i tempi di ripristino (in caso di necessità di ripristinare i database). È sempre utile avere opzioni a portata di mano.

Una buona lettura sarà: Backup: Pianificazione di una strategia di recupero


Grazie per la tua risposta dettagliata. Penso che potrei consigliare di abilitare il checksum sul backup, che dovrebbe rilevare una percentuale leggermente più elevata di errori durante la fase di backup e, si spera, dovrebbe compensare il (leggerissimo) rischio maggiore di saltare il BACKUP in modo VERIFICATO. Capisco cosa stai raccomandando in merito ai ripristini regolari su un server diverso, ma a causa delle dimensioni del nostro ambiente, ciò non sembra plausibile, tranne forse su base campionaria.
BradC,

@BradC Sono contento che la mia risposta ti sia stata utile. L'essenza della mia risposta è usare TSQLal contrario di GUI(piani di manutenzione) in modo da poter sfruttare la flessibilità e adattarla a mani aperte. Proprio come un FYI .. i piani di manutenzione sono stati migliorati in SQL Server 2016 CTP 2.4che MS chiama come Piani di manutenzione intelligente di SQL Server - integra le migliori pratiche e può identificare al volo strategie ottimali. Ancora nessuna GUI può battere TSQL :-)
Kin Shah,

Grazie @Kin. Ho familiarità con l'approccio di script completamente personalizzato da altri ambienti, ovviamente che può avere i suoi problemi con errori e manutenzione degli script. Stiamo valutando alcuni agenti di compressione di terze parti, quindi probabilmente avremo bisogno di script personalizzati alla fine.
BradC,

2

La linea di fondo è che a meno che non si esegua il ripristino di un database da qualche parte, non si può essere completamente sicuri che un determinato file di backup sia valido.

Il test ideale per verificare i backup è quello di impostare un ambiente in cui i backup del database e i backup del registro del database vengano ripristinati continuamente come parte del processo quotidiano. Questo è uno dei vantaggi dell'utilizzo del log shipping ...

Se si desidera continuare a verificare solo, è possibile impostare un ambiente appositamente solo per fare questo. Ciò scaricherà il lavoro dal tuo (presumibilmente) server di produzione e ridurrebbe i tempi di lavoro.

Infine, hai considerato di abbandonare i piani di manutenzione? Script come gli script di Ola sono esclusi i backup e la manutenzione: https://ola.hallengren.com/


In futuro potremmo abbandonare i piani di manutenzione, poiché stiamo valutando alcuni agenti di backup di terze parti (che vengono fatti funzionare con la nostra specifica appliance di backup). Suppongo che richiederanno script personalizzati, simili a quelli sviluppati da Ola.
BradC,

1

Tecnicamente il ripristino è come eseguire un ripristino, tuttavia non è meglio verificare che il ripristino del database sia effettivamente valido. Abbiamo avuto un'istanza in cui è stata verificata solo la verifica, tuttavia il database non è stato ripristinato a causa della corruzione, il mio punto è non contare su questo come verifica che il backup sia corretto. Ora abbiamo sviluppato un sistema che ripristina tutti i nostri database su un'istanza separata per verificarne la validità, chiaramente questo non è sempre possibile, quindi prova a campionare determinati database a settimana. I long e short non si fidano solo del 100%.


È vero, ma non sono sicuro che questo risponda davvero alla mia domanda, poiché sto raccomandando di disattivare RESTORE VERIFYONLY nel nostro ambiente. A meno che il punto non sia: "poiché solo un ripristino completo effettivo dimostrerà che il backup è fattibile, la disattivazione di questa opzione non aumenta sensibilmente il rischio".
BradC,

Corretto, l'unico vero controllo imo è effettivamente eseguire un ripristino per davvero
Gelder
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.