none
info backup granulare RRS feed

  • Domanda

  • Ciao a tutti,
    ho un db sql (2005) che è particolarmente critico nel senso che andrebbe backuppato ogni transazione. Attualmente io faccio un backup full la domenica e un differenziale (ore 12.00 ogni giorno). Il problema è che nel caso di problemi recupero solo i dati del db alle 12.00 del giono prima.
    Come posso schedulare un backup (penso dei TL) in modo che venga backuppata ogni transazione?

    grazie

    Gianni

    mercoledì 15 settembre 2010 07:36

Risposte

  • Solo un dubbio. Anche il backup dei TL è una schedulazione che lancio e contestualmente tutti i TL non salvati tra una schedulazione e l'altra sarebbero persi....non so se mi sono spiegato...

    Al limite dovrei schedulare un backup dei TL ogni minuto, è corretta come logica?

    Teoricamente si, praticamente no :-)

    Non ha senso la frequenza che proponi dato che avresti una miriade di backup del t-log di piccole dimensioni da gestire ed in fase di rirpistino diventeresti pazzo perdendo un mucchio di tempo e rischiando di fare casini con i restore; inoltre in caso di crash dei dischi/controller perderesti in ogni caso 1 minuto di dati.

    Se è VERAMENTE richiesta una soluzione che non comporti la perdita di alcuna transazione, potresti valutare il Database Mirroring sincrono.

    Ciao!


    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://social.microsoft.com/Forums/it-IT/sqlserverit
    • Contrassegnato come risposta gianni123 giovedì 16 settembre 2010 08:30
    giovedì 16 settembre 2010 07:52
    Moderatore

Tutte le risposte

  • Come posso schedulare un backup (penso dei TL) in modo che venga backuppata ogni transazione?

    Ciao Gianni,

    SQL Server oltre alla modalità di backup Full e Differenziale offre la possibilità di eseguire i backup del transaction log (il recovery model deve essere full), salvando solo le transazioni successive all'ultimo t-log backup.

    In questo modo puoi aumentare la frequenza dei backup.

    In caso di crash come prima cosa devi verificare se è possibile eseguire il backup dell'ultimo frammento di t-log. Se il controller o i dischi non sono compromessi, l'operazione dovrebbe aver successo ed in questo modo sei sicuro di non perdere alcuna transazione, diversamente perderai quelle successive all'ultimo backup del t-log.

    Per eseguire il restore dovrai prima di tutto ripristinare l'ultimo full backup, seguito da eventuali backup differenziali ed infine ripristinare l'intera catena dei backup del t-log. Solo alla fine eseguirai il recovery del db che provvederà ad annullare le transazioni aperte ma mai chiuse e ad eseguire il roll-forward delle transazioni concluse con successo ma non ancora inserite nei data files.

    Se intendi mantenere una copia del db su un altro server sincronizzata in modo sincrono (o asincrono) con il db principale puoi dare un'occhiata alla funzionalità di Database Mirroring

    Ciao!


    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://social.microsoft.com/Forums/it-IT/sqlserverit
    mercoledì 15 settembre 2010 09:04
    Moderatore
  • Ok grazie per le indicazioni.

    Solo un dubbio. Anche il backup dei TL è una schedulazione che lancio e contestualmente tutti i TL non salvati tra una schedulazione e l'altra sarebbero persi....non so se mi sono spiegato...

    Al limite dovrei schedulare un backup dei TL ogni minuto, è corretta come logica?

     

    graze

    Gianni

    giovedì 16 settembre 2010 07:40
  • Solo un dubbio. Anche il backup dei TL è una schedulazione che lancio e contestualmente tutti i TL non salvati tra una schedulazione e l'altra sarebbero persi....non so se mi sono spiegato...

    Al limite dovrei schedulare un backup dei TL ogni minuto, è corretta come logica?

    Teoricamente si, praticamente no :-)

    Non ha senso la frequenza che proponi dato che avresti una miriade di backup del t-log di piccole dimensioni da gestire ed in fase di rirpistino diventeresti pazzo perdendo un mucchio di tempo e rischiando di fare casini con i restore; inoltre in caso di crash dei dischi/controller perderesti in ogni caso 1 minuto di dati.

    Se è VERAMENTE richiesta una soluzione che non comporti la perdita di alcuna transazione, potresti valutare il Database Mirroring sincrono.

    Ciao!


    Lorenzo Benaglia
    Microsoft MVP - SQL Server
    http://blogs.dotnethell.it/lorenzo
    http://social.microsoft.com/Forums/it-IT/sqlserverit
    • Contrassegnato come risposta gianni123 giovedì 16 settembre 2010 08:30
    giovedì 16 settembre 2010 07:52
    Moderatore