Portál AbcLinuxu, 8. května 2025 02:37

Dotaz: komplet zaloha vsech databazi MySQL

7.6.2010 21:36 Petr
komplet zaloha vsech databazi MySQL
Přečteno: 566×
Odpovědět | Admin
Ahoj.Mam server,kde mam v MySQL nekolik databazi a uzivatelu. Jak vyzalohuju komplet vsechno? Takhle vyzalohuju jen urcitou databazi:

mysqldump -u root --password=heslo databaze > databaze.sql

Ale ja bych rad vyzalohoval vsechno najednou, vcetne tech useru: to je ta databaze information_schema a mysql ?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Heron avatar 7.6.2010 21:41 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: komplet zaloha vsech databazi MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin

mysqldump je dobře, podívej se ještě na parametr -A

Ano, uživatelé a jejich práva jsou v databázi mysql. information_schema není fyzická DB, je vytvářena DB serverem.

Heron
7.6.2010 21:49 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: komplet zaloha vsech databazi MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Chce to lépe studovat man mysqldump
Třeba takto:
mysqldump --user=dumpuser --password=dumpuserheslo --add-drop-database --add-drop-table --add-locks -all-databases --comments --create-options --disable-keys --flush-logs --hex-blob --routines --single-transaction --max_allowed_packet=4M > secicko.sql
A na každy switch + ještě --lock-all-tables a --lock-tables se podívejte do manu :)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
7.6.2010 22:11 maga | skóre: 15 | blog: Tricka_KU_Brno
Rozbalit Rozbalit vše Re: komplet zaloha vsech databazi MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
trochu to dolad a melo by to jet, me neco podobnyho jede

#!/bin/sh BACKUP=/var/backup/backup.$$ ### MySQL Setup ### MUSER="root-user" MPASS="root-passwd" MHOST="localhost" MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" GZIP="$(which gzip)" ### Start MySQL Backup - vsechny db### DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" for db in $DBS do FILE=$BACKUP/mysql-$db.$NOW-$(date +"%H-%M-%S").gz $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE done
"La Théorie c’est bon, mais ça n’empêche pas d’exister." (Jean-Martin Charcot)
7.6.2010 22:21 lok
Rozbalit Rozbalit vše Re: komplet zaloha vsech databazi MySQL
takova prasarna... coz --all-databases priznak u mysqldump? :P
8.6.2010 08:38 NN
Rozbalit Rozbalit vše Re: komplet zaloha vsech databazi MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ono je mozna lepsi mit kazdou databazi zalohovanou zvlast, protze kdyhz budes delat obnovu prepises pouze tu konktertni a nebudes prelejvat celou..

NN
8.6.2010 09:39 Kroko | skóre: 22
Rozbalit Rozbalit vše Re: komplet zaloha vsech databazi MySQL
Presne tak, mam to napsane ale v php taky nejdriv seznam DB a pak dump na kazdou zvlast
http://kroko.evesnight.net
8.6.2010 10:03 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: komplet zaloha vsech databazi MySQL
Ano, také zálohujeme přes all-databases a pak z toho obrovského dumpu (cca 10GB) vykopírováváme konkrétní db k aktualizaci na testovací stroj. Asi taky přejdeme na výše uvedené rozdělení souborů pro jednotlivé db, je s tím lepší práce.
8.6.2010 08:53 hermelin | skóre: 21
Rozbalit Rozbalit vše Re: komplet zaloha vsech databazi MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin
pouzivam tehle script a funguje bezvadne http://sourceforge.net/projects/automysqlbackup/files/
8.6.2010 16:05 maga | skóre: 15 | blog: Tricka_KU_Brno
Rozbalit Rozbalit vše Re: komplet zaloha vsech databazi MySQL
Odpovědět | | Sbalit | Link | Blokovat | Admin

tak nejak to udelej a nemas problem

 

#!/bin/sh

MUSER="root"
MPASS="rootmysqlpasswd"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"
BACKUP=/var/backup/backup.$$

### Start MySQL Backup - vsechny db###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
FILE=$BACKUP/mysql-$db.$NOW-$(date +"%H-%M-%S").gz
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done

"La Théorie c’est bon, mais ça n’empêche pas d’exister." (Jean-Martin Charcot)
8.6.2010 16:37 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: komplet zaloha vsech databazi MySQL
Jestli jsou databáze živé a někdo přidává či modifikuje funkce, možná by je taky chtěl mít pozálohované, --routines je default off, narozdíl od struktury tabulek a trigeru, nepletu-li se.
Je to věc struktury, ale někdy je to třeba zálohovat a pokud jsou jednotlivé db zvlášť asi by ke každé db měla být záloha funkcí/procedur (bo běžný uživatel je nemůže vytvořit, narozdíl od tabulek a dat, opět nepletu-li se).
Což by asi znamenalo ještě něco jako
FILE_RUTINES=$BACKUP/mysql-$db.$NOW-$(date +"%H-%M-%S")_rutines.gz
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS --routines --no-create-info --no-data --no-create-db --skip-opt --skip-triggers $db | $GZIP -9 > $FILE_RUTINES
Případně --skip-triggers vynechat, již dle uvážení.
Záleží komu záloha slouží, pokud „obecnému“ správci jako obnova rozsypané databáze, je asi nejsnazší --routines přidat jako switch jediné záloze jednotlivých DB.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.