Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: nomorelogic - Luglio 10, 2024, 04:28:41 pm

Titolo: mariadb e mysql backup
Inserito da: nomorelogic - Luglio 10, 2024, 04:28:41 pm
premetto che lavoro raramente con mysql e mariadb...
dopo questo doveroso mea-cupla, mi sono reso conto che quando faccio un backup del DB in realtà il
backup ha un problema: non vengono salvate le viste!

il comando che eseguo per fare il backup è il seguente:
Codice: [Seleziona]
mysqldump -u root -p --databases nome-del-database > backup_file.sql

al posto delle viste, viene fatto il restore con le seguenti istruzioni

Codice: [Seleziona]
DROP TABLE IF EXISTS `vista001`;
/*!50001 DROP VIEW IF EXISTS `vista001`*/;
SET @saved_cs_client     = @@character_set_client;
SET character_set_client = utf8;
/*!50001 CREATE VIEW `vista001` AS SELECT
 1 AS `campo_01`,
  1 AS `campo_02`,
  1 AS `campo_03` */;
SET character_set_client = @saved_cs_client;

penso che mi manca un po' di esperienza con questo DB
qualcuno di voi ha avuto questo stesso problema?
Titolo: Re:mariadb e mysql backup
Inserito da: Mimmo - Luglio 12, 2024, 08:43:38 am
Io l'ho usicchiato ma non ho mai notato questo problema.
Parlo quindi da perfetto ignorante ma essendo che mysql è sempre stato moooolto naif nelle sue cose... non è che quella create view che è commentata invece poi viene parsata?
https://stackoverflow.com/questions/21855862/mysql-flags-in-dumps (https://stackoverflow.com/questions/21855862/mysql-flags-in-dumps)

Titolo: Re:mariadb e mysql backup
Inserito da: nomorelogic - Luglio 12, 2024, 04:46:46 pm
che venga parsata ed eseguita, almeno nel mio server, è assodato
quello che non ho capito è il motivo per cui i campi della vista sono esattamente quelli in produzione ma, nello script, invece della rispettiva select mi trovo le costanti 1...  ???

ora a dire il vero ho abbandonato le ricerche sul problema, ma devo capire il perché
per ora è fuori dalla mia comprensione e ho quella sensazione di "assurdo che questa cosa sia capitata solo a me" che devo chiarire  ;D
Titolo: Re:mariadb e mysql backup
Inserito da: DragoRosso - Luglio 12, 2024, 06:47:09 pm
... e ho quella sensazione di "assurdo che questa cosa sia capitata solo a me" che devo chiarire  ;D

OT: non posso aiutarti sull'oggetto, ma se ti può consolare mi trovo quotidianamente in quella situazione e un buona parte delle volte è veramente così ... però è bello sentirsi unici  ;D ;D
Titolo: Re:mariadb e mysql backup
Inserito da: nomorelogic - Luglio 12, 2024, 07:57:54 pm
si è bello ma a volte....  ;D ;D ;D ;D
Titolo: Re:mariadb e mysql backup
Inserito da: Mimmo - Luglio 15, 2024, 08:31:08 am
quello che non ho capito è il motivo per cui i campi della vista sono esattamente quelli in produzione ma, nello script, invece della rispettiva select mi trovo le costanti 1...  ???

Non ho possibilità di provare ora ma qui https://stackoverflow.com/questions/75867623/mysqldump-gives-corrupt-create-views  (https://stackoverflow.com/questions/75867623/mysqldump-gives-corrupt-create-views)dicono che
Citazione
Mysql Dump process generate a temporary views like ...1 AS username, 1 AS user_surname,... And then, a the end of generated script, the he drop the temporary views and create the real and correct views...at the end of your script.
Non c'è nulla in coda al file?
Titolo: Re:mariadb e mysql backup
Inserito da: nomorelogic - Luglio 15, 2024, 10:31:26 am
si...

in fondo al file ci sono delle istruzioni "CREATE VIEW" che in effetti sono le istruzioni che servono per ricostruire correttamente le viste.
Solo che non vengono eseguite perché sono commentate...

Quindi rimangono "in vita" quelle create con le costanti numeriche "1" al posto della select.
Che poi, nel backup sono commentate pure quelle, ma quelle sono state eseguite, quelle vere infondo al file no...

@Mimmo
Intanto grazie per la dritta, cercherò di capire un po' meglio il perché di questa scelta.
Titolo: Re:mariadb e mysql backup
Inserito da: nomorelogic - Settembre 18, 2024, 11:57:34 am
credo di aver capito il problema

in pratica non facevo il backup come utente root, questo perché l'utente root (parlo dell'utente di MySql) cerco di non utilizzarlo
nelle normali gestioni

quindi penso che il backup vada fatto come root
in questo caso il backup è identico a quanto descritto in precedenza ma, ripristinando il backup come root, le viste mi vengono create

beh che dire
potevo pensarci prima  :)

Titolo: Re:mariadb e mysql backup
Inserito da: DragoRosso - Settembre 18, 2024, 12:59:45 pm
Bhè, dai due mesi mi sembra un tempo congruo per la risoluzione del problema  :o ;)

Cioè, per esprimermi meglio: meglio tardi che mai.
Titolo: Re:mariadb e mysql backup
Inserito da: nomorelogic - Settembre 18, 2024, 05:47:51 pm
è che mi è ricapitato oggi di fare un backup/restore

cmq sempre meglio tardi che mai  ;D