[ --ja-- @ 18.08.2016. 09:17 ] @
Pozdrav,

pred par mjeseci napisao sam skriptu za backup baze koja se činila da ok radi. Sad smo nešto selili s jednog servera na drugi, i kad sam napravio restore backupa, ispalo je da su svi viewovi zapravo pretvoreni u tablice. Tražim rješenje već neko vrijeme, ali nisam uspio pronaći. Ima li pomoći? Kako natjerati mysqldump da exporta definiciju view-a, a ne podatke koji se dobiju queryem na isti?

Ideja je dobiti van fajl koji mogu jednostavno bez nekih 3rd party alata restorati bilo gdje i da dobijem isto stanje kao i tamo odakle je backup uzet.

Code:
#!/bin/bash

OUTFOLDER="/mysqldump/"
OUTFILE="$1_`date +%Y-%m-%d_%H-%M-%S.%N`.sql.gz"
mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` $1  --single-transaction --routines --skip-comments | grep -v "50013 DEFINER"| sed -r -e 's/DEFINER=`.+`@`.+`\s//' | gzip > "$OUTFOLDER$OUTFILE"

n=0
until [ $n -ge 5 ]
do
   scp -P 2222 "$OUTFOLDER$OUTFILE" [email protected]:"/shares/backups/db/" && break
   n=$[$n+1]

   >&2 echo "Retry no: $n"
   sleep 15
done

rm -f "$OUTFOLDER$OUTFILE"


Hvala!
[ Dr.sima @ 18.08.2016. 11:00 ] @
Jel mozes da uradis clean dump pa da probas import ponovo. Bez cackanja sa replace po dump fajlu?
[ bogdan.kecman @ 18.08.2016. 11:28 ] @
ako hoces da bekapujes samo views:

http://stackoverflow.com/quest...cking-up-views-with-mysql-dump

inace normalan damp normalno radi ako imas sve privilegije

pogledaj samo http://dev.mysql.com/doc/refman/5.7/en/view-restrictions.html
[ --ja-- @ 22.08.2016. 16:02 ] @
Sad sam pokušao restore na lokalni MySQL i prošao je restore view-ova normalno.

Kopao malo, viewovi se exportaju kao komentari valjda da se održi kompatibilnost sa starijim verzijama MySQL-a? Moguće da je tu bio nastao neki problem... Može li se ovo kako isključiti?



[ bogdan.kecman @ 22.08.2016. 16:11 ] @
komentari u mysql-u nisu "klaiscni komentari" ako imaju ono zaglavlje,
sto bi to gasio?
[ --ja-- @ 22.08.2016. 19:00 ] @
Jasno mi je da to nisu klasični komentari, ali učinilo mi se da je neka nekompatibilnost između različitih verzija MySQL-a uzrokovala ovo (možda griješim) tj. da je taj create view ipak u nekom slučaju protumačen kao klasičan komentar. Pa razmišljam zašto bi se CREATE VIEW exporirao kao komentar sa tim zaglavljem, umjesto da se generira klasičan DDL kod.

Ali priznajem, ne koristim MySQL svakodnevno i ne znam ovakve detalje, a kad naiđem na problem obično kopam po netu dok ne nađem rješenje.
[ bogdan.kecman @ 22.08.2016. 20:03 ] @
svaki mysql zna da interpretira to zaglavlje, u zaglavlju pise samo "ako
je verzija veca od X uradi ovo" .. znaci mysql koji to nije importovo ni
ne zna sta su views ... (de nadje nesto tako matoro) ... e sad, ako
importujes raznim pajserskim skriptama poput phpmyadmin, plesk i ostale
gologuzijanije to je druga prica..
[ --ja-- @ 22.08.2016. 22:09 ] @
Hmmm sad kad si spomenuo plesk... Postoji šansa da sam iz pleska napravio dump kod migracije, a ne koristeći ovu skriptu gore. To bi objasnilo neke stvari...