Mentre l'esecuzione di un esame necroscopico su un database di recente, mi sono imbattuto in un bug che possono essere di interesse per alcune persone.

I tentativi di allegare al database non riuscita con l'errore "GDS verificare la coerenza interna, non può trovare punta". Controllare il database è emerso che il prossimo numero della transazione è stata 131.596.294 e le dimensioni della pagina è stato 1024. Come succede, una pagina di 1024 byte terrà transazione afferma 4016. Dividendo il prossimo numero di transazione dal 4016 per ottenere la punta pagina numero dà 32.768,001494. Un numero molto interessante.

C'è un bug nel InterBase 5.6, 6.01, e l'attuale beta Firebird che provoca la ricerca di una operazione di inventario pagina a fallire se non vi sono più di 32.767 pagine transazione. Ciò rende la massima sicurezza delle transazioni id per una banca dati con:


1024 pagine 131.596.287 byte.
2048 pagine 265.814.016 byte.
4096 pagine 534.249.472 byte.
8192 byte pagine 1071120384.

Anche se si tratta di grandi numeri, questa particolare
database superato 131 milioni di transazioni in sei
mesi.

Suggerimenti:

  1. non utilizzare una pagina di 1024 byte dimensioni.
  2. fare controllare il vostro prossimo numero della transazione, di volta in volta.
  3. se vedi il prossimo numero della transazione si avvicina il limite, il backup e ripristinare il database.
  4. Gfix non risolvere questo problema, ma non posso. (Vi prego di contattarmi per i dettagli).

    Saluti,

    Ann

Average rating: