Domanda

A seguito di questa domanda mi chiedo quale sia il tuo SQL Il piano di backup / manutenzione del server è e come posso migliorare il mio.

Attualmente sto eseguendo due piani di manutenzione semplice dalla procedura guidata del piano.

Il primo corre di notte e fa quasi tutto ...

  • Backup completo del database e del registro delle transazioni
  • controllo dell'integrità, ricostruzione dell'indice, ricalcolo delle statistiche, ecc. (Ho controllato tutto tranne il backup incrementale)

L'altro parte ogni tre ore e fa un backup incrementale (sono paranoico, so che probabilmente è eccessivo).

I backup sono su disco, i backup completi vengono inviati alla SAN, conservati per una settimana.

Cosa ne pensi, è un piano sensato? Qualche suggerimento?

MODIFICA: si tratta di SQL Server 2005. Il DB è di 5 GB, cresce di circa 1 GB / mese.

È stato utile?

Soluzione

Sembra abbastanza buono. Sono più paranoico. Eseguo due backup completi giornalieri e backup di log delle transazioni orarie. Dipende dalle dimensioni del database o del corso. I backup vengono eseguiti direttamente su disco e quindi sottoposti a backup su nastro ogni notte.

Probabilmente non è necessario eseguire le attività di manutenzione ogni giorno. Li faccio solo nel fine settimana, ad eccezione di questo tavolo che reindicizziamo ogni sera. Anche in questo caso dipende dalle dimensioni e dall'attività del database.

Se hai abbastanza spazio su CPU e disco puoi comprimere i backup del disco per risparmiare spazio e velocizzare il trasferimento su nastro o altra posizione.

Altri suggerimenti

Dovresti parlare con i tuoi utenti / clienti / custodi dei dati, come li chiami. Devono avere una chiara comprensione di quanto lavoro possono perdere. Scrivi uno SLA se non ne hai uno. Non vuoi sorprese quando si tratta di cattive notizie.

Devono anche capire che il ripristino richiede tempo. È necessario pianificare il piano di ripristino per creare un tempo di ripristino accettabile. Ciò può significare un backup completo giornaliero, 4 differenziali e backup del log ogni 5 minuti. Questo non è pazzo o paranoico come ha detto Marcus Erickson: tutto dipende dalle tue informazioni e dal valore in dollari che la tua organizzazione attribuisce.

Non credo che tu sia paranoico eseguendo backup ogni 3 ore. Fondamentalmente, il piano di backup deve essere misurato in base ai requisiti di ripristino. Per quanto tempo puoi permetterti di rimanere inattivo mentre recuperi rispetto a quanti dati sei disposto a perdere prima di perdere tempo. Per SQL Server, è possibile ridurre considerevolmente la quantità di dati che si desidera perdere considerevolmente aggiungendo backup del registro delle transazioni al piano di backup. Molte persone lo fanno ogni pochi minuti a seconda della quantità di transazioni che attraversano il sistema. Per eseguire un ripristino è sufficiente ripristinare l'ultimo backup completo, l'ultimo incremento e quindi tutti i backup del registro delle transazioni dal momento dell'incremento. Ciò può comportare una perdita minima di dati ma può richiedere un po 'di tempo per applicare tutti i backup del registro delle transazioni. Vedo quanto segue abbastanza regolarmente: Backup completi: settimanali Backup incrementali - Notturno Registra i backup - ogni pochi minuti a seconda dei requisiti (potrebbe essere utile una volta all'ora, ecc.)

Ricorda di eseguire le esercitazioni in cui si tenta effettivamente di ripristinare dai backup creati (su un sistema di test). Questo dovrebbe essere fatto forse una volta al mese.

Il minimo che consiglio ai miei clienti è di eseguire un backup completo notturno del database e quindi un backup delle transazioni ogni 3 ore. Mi stupisce sempre quante persone non hanno mai impostato un backup. Quelle sono sempre chiamate sbagliate.

Secondo me il modo migliore è:

Effettua il backup completo del database ogni 12 ore

BACKUP DATABASE database TO DISK = 'd: /full.bak'

un backup differenziale ogni sei ore, in caso di errore semplifica il ripristino del processo

BACKUP DATABASE database DA DISK = 'd: /diff.bak' CON DIFFERENZIALE

e, naturalmente, i backup del registro delle transazioni che è meglio effettuare ogni ora.

BACKUP LOG database DISCO = 'log.bak'

In caso di errore, il processo di ripristino sarà successivo:

  • L'ultimo backup completo
  • L'ultimo backup differenziale
  • L'ultimo registro delle transazioni

Bisogna ammettere che è meglio usare il modello di recupero completo per rendere disponibile il recupero temporizzato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top