Newsgroup: it.comp.os.linux.sys
Titolo: A proposito di Percona..

Qualcuno usa XtraBackup? Piu` vedo mysqldump e piu` mi sembra una soluzione 
spacciata per fare quello che non sa fare, ovvero i backup. Siccome la 
soluzione alternativa sembrerebbe uno snapshot LVM (che gia` mi fa venire 
l'orticaria quando la uso su MongoDB), vorrei non arrivare a tanto per fare 
il backup del database...
 
Enrico

 spacciata per fare quello che non sa fare, ovvero i backup.
 
In che senso non li sa fare ?
Se puoi lockare le tabelle in scrittura, mysqldump funziona bene.
Ho migrato svariate migliaia di db tramite mysqldump, tutte le volte senza problemi (è chiaro che devi poter bloccare le scritture)

 In che senso non li sa fare ?
 
Che se ad esempio hai un bel campo binario popolato, mysqldump tira fuori 
tanto di quello schifo da farti dubitare che un Dio possa esistere. Ad onor 
del vero, non ho provato ne` ad usare l'opzione apposita (--hex-dump), ne` 
il restore, ma da quello che leggo in giro non e` garantitp il suo corretto 
ripristino. A questo punto preferirei trovare una soluzione alternativa, che 
dovrebbe consistere proprio in XtraBackup, ma che non conoscendola 
preferirei prima avere dei pareri
 
Enrico
P.S. Non posso fare a meno di notare che questo problema su PostgreSQL non 
esiste, pg_dump gia` da solo gestisce la cosa elegantemente

 esiste, pg_dump gia` da solo gestisce la cosa elegantemente
 
E come fa ? Una qualche conversione la deve fare per forza, ed in tal caso hai lo stesso risultato di --hex-blob che ti converte in hex (quindi rappresentabili come testo) i campi binari

 rappresentabili come testo) i campi binari
 
No, perche` in pg_dump il formato testo e` solo uno di quelli disponibili, a 
patto pero` di fare il restore con pg_restore. Tra l'altro, pg_dump e` solo 
uno dei modi per fare il backup di un server PostgreSQL, l'altro e` il 
continuous archiving (che permette un incrementale nonche` la streaming 
replication)
 
Enrico
P.S. giusto per completezza, secondo la carta XtraBackup permette 
l'incrementale e l'hot backup (senza contare il suo uso attivo 
nell'installazione di uno slave)

 Tolta quell'opzione, e` andato tutto ok
 
Non è un problema di mysqldump.
Come scritto in precedenza, se fai il cat di un binario, vengono fuori schifezze, ma non è di certo una limitazione di 'cat' supportare solo un formato testuale.
 
O codifichi i dati quando li salvi (magari salvandoli direttamente in HEX o in base64) oppure lo fai quando li leggi prima di salvarli su disco.
Di sicuro se parti da un dato binario per salvare su un file di testo (come fa mysqldump) da qualche parte devi convertire, da qui non scappi.
 
Comunque passarlo in pipe a gzip funziona bene, io ho parecchi database con dentro un BLOB contenente interi archivi zippati, riesco a backuppare e restorare senza problemi e senza hex-blob
 
Al limite, si potrebbe dire che in MySQL manca uno strumento per dumpare dati binari, ma non si può di certo dire che mysqldump non sappia fare i backup perchè supporta solo un formato. mysqldump dumpa in formato testo, se per il tuo caso d'uso non va bene, devi cambiare strumento o affiancarne un secondo.

 Non è un problema di mysqldump.
 
Non sono d'accordo su questo punto, ma non riesco ad essere chiaro. In 
sostana, tu mi consiglio di continuare ad usare mysqldump (con l'opzione --
hex-blob) e di lasciare perdere XtraBackup, giusto?
 
Enrico

 hex-blob) e di lasciare perdere XtraBackup, giusto?
 
Non conosco XtraBackup ma a parte ciò, puoi usare mysqldump con l'apposita opzione oppure anzichè salvare i dati in formato binario salvarli in un qualche formato compatibile con mysqlbackup se prevedi di usare questo strumento per fare i dump.
 
Come scritto, i casi son due: o converti durante l'inserimento, o converti durante la lettura. Questo se vuoi usare uno strumento che lavora su dati testuali come mysqldump. Altrimenti cambia strumento.
 
Credo che l'esempio di 'cat' sia calzante: se vuoi usare per forza 'cat' per leggere file binari, o converti i file binari prima di salvarli in un formato 'cat-compatibile', o converti l'output di 'cat' passando attraverso qualche altro strumento (cat x | base64 > dump). Oppure non usi 'cat'
 
Personalmente salvo in base64 eventuali dati binari, danno, come vedi, molti meno problemi e non devo impazzire a pensare a quale strumento utilizzerò in futuro per dumpare, andranno bene tutti.
Un dato binario non sarà mai ricercabile ne indicizzabile (e credo forzi anche l'uso di tabelle temporanee), base64trizzalo (magari in un varchar così non forzi le tabelle temporanee come con blob e simili) e sei a posto a fronte di un 20% di peso in più.