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

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



mox wrote:
Davide Prina ha scritto:

(giusto per capire di cosa parlo www.oratio.it)

per quanto riguarda oratio ... io diffido molto di quei software che non indicano neppure la licenza d'uso chiaramente con cui sono distribuiti ... bisogna andare a cercare per capire.

Sono perfettamente d'accordo che ogni produttore di software libero (fino alla versione 2.x Oratio è sotto GPL) può decidere come distribuirlo (Oratio è distribuito solo dietro richiesta via mail). Capisco che questo possa permettere di avere maggiori clienti paganti i servizi connessi, ma ...

Inoltre, se già non lo sai sul sito trovi questo scritto:
************
La nuova versione 3.0 sarà sempre open source per l'Utente Finale, anche se avrà una licenza diversa dalla GPL. Il codice sarà aperto per l'utilizzatore, e la licenza conterrà l'esplicito vincolo di non farne un uso commerciale.
************

se fossi in te io penserei a scegliermene un altro.
Questi sembrano che si stanno costruendo una base di possibili clienti sfruttando all'inizio la licenza GPL, poi passando ad una licenza che renderà il software non commerciabile (non penso si possa definire ancora neppure opensource, anche se sul li dicono il contrario) ... per poi finire per diventare puramente proprietario.

Io qui ne ho raccolti un po' di gestionali aziendali
http://linguistico.sourceforge.net/wiki/doku.php?id=elenco_di_software_libero#gestionali_aziendali

c'è anche oratio, ma ora sto meditando di cancellarlo dalla lista.

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...

questo perché ogni volta inserisci gli stessi dati nel db e poiché non hai nulla che ti garantisca la consistenza dei dati tutto è permesso.

Mi manca _proprio_questo_ dettaglio: se il db è consistente (ma è possibile saperlo in maniera "automatizzata" o è indispensabile una analisi umana?) è sempre possibile recuperare una copia ottenuta con "pg_dump -Fc..." oppure no oppure a seconda del db bisogna ricorrere ad altri sistemi?

per far si che i dati siano consistenti è sufficiente crearsi un'appropriata struttura di chiavi primarie/esterne ... progettando a monte la struttura in maniera appropriata sia per il tipo di dati che dovrà contenere (e questo è quasi sempre fattibile) e con il tipo di operazioni che si devono su di essa eseguire (e questo, nella realtà, è quasi sempre non fattibile ... a meno che sei tu che stai facendo un database per risolvere un tuo problema)

Per quanto riguarda il tuo problema è in realtà facilmente risolvibile.
Tu dici che l'unico problema è che ci sono delle righe duplicate ... allora basta cancellarle con una semplice query.

Per fare questo è sufficiente individuare la chiave (o magari anche tutte le colonne) che determinano (o meglio devono determinare) l'univocità di un record.

con un'istruzione del genere puoi trovare tutte le righe duplicate

select <elenco_campi_chiave>
from <nome_tabella>
group by <elenco_campi_chiave>
having count(*) > 1

per effettuare la cancellazione è sufficiente che ne preservi uno, per esempio quello inserito per primo.

delete from <nome_tabella>
where oid in
(
select max(oid)
from <nome_tabella>
group by <elenco_campi_chiave>
having count(*) > 1
)

e mettere tale istruzione in un ciclo che ripete la delete fino a quando non fa più nulla.

ATTENZIONE: ho scritto tutto senza provare ... fai qualche prova per verificare se tutto funziona correttamente.

In ogni caso se il db ti permette di fare queste cose secondo me non è affidabile e quindi è meglio non utilizzarlo ... io pensavo che lo avessi fatto tu.

N.B:Ho già libri pronti per i seguenti argomenti:
.programmare in perl
.guida all sql
.progettazione dei db
[...]

ouch! Hai letto più di me

Ciao
Davide

--
Dizionari: http://linguistico.sourceforge.net/wiki
Esci dall'illegalità: utilizza OpenOffice.org:
http://linguistico.sourceforge.net/wiki/doku.php?id=UsaOOo
Non autorizzo la memorizzazione del mio indirizzo su outlook



Reply to: