[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [ot di disperazione]Postgre non recupera correttamente il backup



Davide Prina ha scritto:
mox wrote:

Faccio una copia (da manuale) del database con "pgdump_all > miofile.sql" e provo il restore con "su postgres; psql < miofile.sql". Il database sembra o.k., ma adesso certe registrazioni mi vengono caricate in meniera anomala: pensavo fosse il gestionale, ma a forza di

cosa intendi per registrazioni?
chiedo scusa per il linguaggio non ortodosso. Uso un programma in perl (non fatto da me) che si interfaccia tramite apache su postgre. Per registrazioni intendo delle INSERT fatte direttamente dal perl.

1) è il collegamento al database che riporta risultati strani: alcune registrazioni mi vengono "triplicate" (ripetute per tre volte, ma le righe vengono inserite una volta sola), non si dovrebbe ricreare una

non capisco cosa intendi per registrazioni ...
la gestione avviene tramite il perl, ma il problema è questo (dopo molti tentativi):
1) genero due db vuoti tramite il gestionale, db1 e db2;
2) faccio un dump (con o senza --insert il risultato non cambia)(ho fatto solo altre prove con dump singoli visto il pessimo risultato ottenuto con pg_dumpall) di db1 e provo a metterlo al posto di db2 con "psql db2 < db1"; 3) adesso, se provo a movimentare il db1 tutto è ok, invece se provo a movimentare il db2 sembra che il tutto funzioni (a occhiometro) ma il perl mi carica in una (una sola) tabella il dato per tre (esattamente c'è una colonna che riporta l'inventario generale nella tabella articoli, e questa mi da problemi, mentre l'inventario del singolo magazzino viene ricavato di volta in volta dalla tabella dei movimenti e questa è o.k!); 4) ho provato un "diff db1.sql db2.sql" ma non sono riuscito a capire la differenza; 5) se provo n volte a fare il restore del db2, il risultato è che ottengo il caricamento di n+2: 3 la prima volta, 4 la seconda, e così via...

Se per registrazioni intendi che ci sono dei record duplicati ... allora può vuol dire che non hai creato una struttura che ti permette di garantire la consistenza dei dati e che quindi il problema poteva esserci nei dati dai quali sei partito per fare il backup.
no, non sono esattamente record duplicati. Penso che sia il db, non il perl: non sono riuscito a ripristinare il db come se non lo avessi mai cancellato.

Posto che non sono riuscito a ripristinare correttamente il db, e che magari a manina recupererò almeno i dati grossi (angrafiche ecc.), per

non riesco a capire dove sia il problema, il file è di testo e puoi intervenire manualmente a sistemare le cose che non vanno.
appunto, non so dove sia il problema...

Non è che il db è grosso, talmente grosso che ti crea file più grossi di quelli che può gestire filesystem che stai usando? O magari hanno riempito tutta la partizione?
ma no, quello di un db nuovo è di 290k, quello che ho compromesso è di 3,65M, il fs è ext3...

adesso le mie richieste...
- non sono in grado di fare una copia in modo tale che possa essere ripristinata. Questo è gravissimo, nell'eventualità che succeda qualcosa (manca spesso la corrente e non ho ancora il backup elettrico del server). Dove sbaglio? Dal manuale e dai man di pg-dump mi pare che questa sia la sola "soluzione pulita" e con garanzie di risultato ottimo. Se è vero che pg_dumpall dovrebbe funzionare come l'ho usato, allora esiste un metodo pratico per sapere se il db è stato creato "male"? Se faccio due dump dello stesso db ottengo lo stesso risultato che non riesco mai a ripristinare in maniera corretta... Smanettando o visto che se esiste un rifrimento all'oid interno il pg_dump non garantisce il risultato della copia, se fosse questo il problema come devo operare per fare il backup del db?

Ciao
Davide
Sempre troppo gentile, grazie!

PS: è buona politica per qualcosa usata per lavoro o i cui dati/struttura devono essere non perdibili fare dei backup in intervalli regolare e fare dei testi di ripristino dei database
:( :( ci provo, ma qui non ci sono riuscito..... :( :(



Reply to: