Newsgroup: it.comp.software.database
Titolo: [mysql] backup

Altro dubbio.
Backup dei database
Se faccio un delete from <nometabella> e non mi viene azzerato
l'auto_increment (dalla versione 4 č necessario usare truncate) č, secondo
me, una grossa anomalia il fatto che se faccio un backup del database
con mysqldump e poi successivamente (per un disastry recovery) ripristino il
database, non ottengo lo stesso database di cui ho fatto il backup. Infatti
il valore di auto_increment riparte da 1.
Questa cosa mi lascia molto perplesso. Quando faccio un backup la mia
intenzione č di poter ripristinare la situazione del database originale in
caso di problemi. mysqldump non fa una vera immagine del database
comportandosi in questo modo.
Sto studiando mysql per metterlo a disposizione dei miei clienti (server
web). Mi sembra alquanto limitativo non poter ripristinare il database alla
condizione iniziale (al momento del backup)
Non mi sembra nemmeno il caso di copiare la directory dei dati (avrei
problemi con la consistenza a meno di non fare uno script che fa dei lock e
poi copia le directory [alquanto macchinoso da implementare])
Che cosa ne pensate?
xabaras

 caso di problemi. mysqldump non fa una vera immagine del database
Fa una immagine esatta del database, e riporta il campo auto increment
cosě comč e se lo ripristini con source ... ottieni la stessa tabella, la
funzione
autoincrement funziona solo se nella insert non dichiari quel campo,
altrimenti prende il valore che gli viene passato.
Saluti

 Saluti
Non sono d'accordo sul fatto che faccia un'immagine esatta.
Ti faccio un esempio
CREATE DATABASE prova;
CREATE TABLE `test` (`progressivo` tinyint(3) unsigned NOT NULL
auto_increment,`testo` char(50), PRIMARY KEY  (`progressivo`))
TYPE=MyISAM;
insert into test (testo) values ('prova1');
insert into test (testo) values ('prova2');
delete from test
Bene a questo punto se faccio
insert into test (testo) values ('prova3');
il valore di progressivo è 3.
Se invece faccio un mysqldump del Db prova e faccio il ripristino dopo aver
cancellato prova (a seguito di un problema o semplicemente ripristinando il
Db su un altro server) se faccio
insert into test (testo) values ('prova3');
il valore di progressivo è 1.
Quindi mysqldump non mi da la possibilità di fare un backup completo e
fedele del database di partenza.
Ora se la cosa può essere accettabile se i db li uso solo io di cui ne
conosco la logica, se metto a disposizione dei clienti il mio server mysql e
do un servizio di backup non posso certo entrare nella logica delle loro
applicazioni.
Se succede qualcosa devo essere in grado di ripristinare la situazione
all'ultimo backup effettuato.
Sul contratto con il cliente posso scrivere che i backup vengono effettuati
a cadenza X, non posso certo mettere una nota sull'Auto_Increment
E poi, scusate, la logica di un backup è quella di ottenere in caso di
ripristino una cosa identica.
Non è così con mysqldump
xabaras

 ha scritto nel messaggio
news:brv2s1$7bj4p$1...@ID-125566.news.uni-berlin.de...

dunque, se tu esegui:
insert into test (testo) values ('prova1');
insert into test (testo) values ('prova2');
insert into test (testo) values ('prova3');
ottieni tre righe che contiengono "provax" nel campo testo e il campo
progressivo viene incrementato automaticamente dal database.
se fai un mysqldump ottieni una serie di insert fatte così:
INSERT INTO test VALUES (1, 'prova1');
INSERT INTO test VALUES (2, 'prova2');
INSERT INTO test VALUES (3, 'prova3');
in questo modo ottieni la stessa tabella perchè essendo specificato
un valore per il campo test, non viene applicato l'auto increment.

 un valore per il campo test, non viene applicato l'auto increment.
Da un pò di tempo non uso più autoincrement, a fronte di una piccola
semplificazione costruttiva da solo grandi dispiaceri.
Ciao, Angelo.

 semplificazione costruttiva da solo grandi dispiaceri.
Su questo sono abbastanza d'accordo.
Saluti