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: