Verifica e ripristino database

Da SIMPLYDEVELOP WIKI.

Di seguito è elencata la procedura per la verifica ed il ripristino di un database con errori o corrotto.

  1. - Per prima cosa occorre SEMPRE effettuare una copia del database al momento in uso (DBRETAIL.GDB)
  2. - Per impianti più articolati è bene (ma è buona norma farlo a prescindere) "staccare" eventuali postazioni client/remote dal databse oggetto di analisi. Per fare ciò, subito dopo aver effettuato la copia al punto 1, occorre aprire i servizi di Windows ed arrestare il servizio Firebird per permetterci di rinominare temporaneamente la cartella DBase (dove contenuto il DB da ripristinare) in modo tale che eventuali casse remote, che nel frattempo continueranno a lavorare in modalità off-line, non interagiscano con il DB causando danni ancora maggiori. Dopo aver rinominato la cartella DBase (es. _Dbase), riavviare il servizio.
  3. - A questo punto è possibile lanciare con un doppio click, il batch "Recovery" che effettuerà un primo controllo dell'integrità del DB, rilevando eventuali errori e cercando di fixarli contestualmente.Se il batch recovery segnalerà un numero contenuto di errori, la procedura al punto successivo dovrebbe essere in grado di ripristinare una copia del DB totalmente funzionante. Se gli errori saranno centinaia o addirittura migliaia, è facile ipotizzare che la copia non sarà probabilmente recuperabile o qualora lo fosse, sarebbe mancante di svariati dati storici.
  4. - Al termine del batch recovery, lanciare sempre con un doppio click il batch "Pulizia" che genererà in primis una copia compressa del DB (dbretail.gbk), dalla quale cercherà poi di estrarre nuovamente il db ripristinato. Se la procedura viene portata a termine regolarmente, con tutta probabilità saremo riusciti a ripristinare una copia funzionante. Ripetere quindi il batch recovery per vedere se gli errori vengono ancora rilevati o meno. Se non si riuscisse a portare a termine la procedura, sarà necessario ricorrere al ripristino di una copia di backup.

Terminata l'operazione di ripristino, ripetere la procedura al punto 2 avendo cura di rinominare la cartella in "DBase".

Se occorre tentare il ripristino di un backup, occorre procedere come segue:

  1. - Rinominare dalla cartella DBase eventuali file chiamati DBRETAIL.GDB e DBRETAIL.GBK.
  2. - Andare nella cartella BackupDB per trovare una copia da ripristinare. Il software esegue per sicurezza una copia di backup completa ad ogni primo avvio del software di giornata. Questo implica che eventuali backup che andremo ad utilizzare, conterrà il venduto fino alla chiusura della sera precedente la data del backup.
  3. - Indicizzare i file nella cartella BackupDB per Ultima Modifica decrescente, in questo modo vedremo in alto i file di backup più recenti.Fate attenzione alle dimensioni dei file. Con questo ordinamento i primo file (il più recente) dovrebbe essere quello di dimensioni maggiori rispetto ai successivi che per logica saranno teoricamente di dimensioni minori man mano che si arriva in fondo.Se un file è di dimensioni minori rispetto a quello che lo segue, con tutta probabilità è una copia parziale o danneggiata, ed occorrerà quindi tentare il ripristino del file successivo.
  4. - Copiare il file individuato dalla cartella BackupDB alla cartella DBase. Il file selezionato potrà essere un dbretail.gbk (ultima copia di backup creata) oppure un file dbretail.00X dove la X identifica il numero di giorni precedenti del backup. Difatti ogni volta che viene generato una nuova copia di backup, quelle già presenti nella cartella scalano di un numero passando da .gbk a .001 .002 e così via fino ad attivare a .031 in quanto probabilmente si è scelto di conservare le copie di backup degli ultimi 31 giorni (impostazione di default).Se il file scelto per il recupero è un file con estensione .00X rinominarlo in .gbk una volta copiato nella cartella DBase, in quanto il batch pulizia che provvederà alla ricostruzione del database, lo fa partendo dalla copia compressa con estensione .gbk.
  5. - Lanciare con un doppio click il batch "Pulizia". Se la procedura viene portata a termine regolarmente, con tutta probabilità saremo riusciti a ripristinare una copia funzionante. Eseguire quindi il batch recovery per vedere se vengono rilevati errori o meno. Se non si riuscisse a portare a termine la procedura di ripristino, sarà necessario ricorrere al ripristino di una copia di backup più vecchia eseguendo gli stessi passi appena citati.

Qualora non si riuscisse a portare a termine la procedura o non ci si sentisse sicuri di farlo in autonomia, consigliamo sempre di rivolgervi all'assistenza tecnica.


Nota bene
In base alla dimensione del database ed alle prestazioni del computer (i touch per resistere molti anni, vengono messi al minimo della potenza), il processo potrebbe durare anche molto tempo. Per database molto grandi è consigliabile avvisare il cliente che non potrà utilizzare la postazione fino a fine processo pertanto è da valutare la possibilità di eseguire l'operazione in un orario pianificato che non blocchi il lavoro.


Sorgente: EasyRetail