WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Automatisk backup MySQL (https://www.wn.se/forum/showthread.php?t=1051103)

mrdelta 2011-11-23 12:03

Automatisk backup MySQL
 
Hej!

Skulle någon vänlig skäl kunna hjälpa mig med hur man skulle kunna lösa ett skript eller cronjob som automatiskt backar upp min databas enligt följande kriterier:

1) Automatisk backup utav vald databas eller alla databaser

2) Automatisk FTP utav den backupen till en annan server

3) Automatisk radering utav backuper som är över en viss tid gammal, så att man inte bara fyller på och fyller på utan när en backup tillkommer så raderas den äldsta.

Hjärtligt tacksam för hjälp. Har googlat men inte riktigt kommit fram till någon helhetslösning. En automatisk backup skulle jag nog lösa, men FTP och automatisk delete har jag inte riktigt koll på hur man kan få in i samma cronjob.

//Björn

Clarence 2011-11-23 12:43

Citat:

Ursprungligen postat av mrdelta (Inlägg 20424873)
Hej!

Skulle någon vänlig skäl kunna hjälpa mig med hur man skulle kunna lösa ett skript eller cronjob som automatiskt backar upp min databas enligt följande kriterier:

1) Automatisk backup utav vald databas eller alla databaser

2) Automatisk FTP utav den backupen till en annan server

3) Automatisk radering utav backuper som är över en viss tid gammal, så att man inte bara fyller på och fyller på utan när en backup tillkommer så raderas den äldsta.

Hjärtligt tacksam för hjälp. Har googlat men inte riktigt kommit fram till någon helhetslösning. En automatisk backup skulle jag nog lösa, men FTP och automatisk delete har jag inte riktigt koll på hur man kan få in i samma cronjob.

//Björn

Har inget färdigt script jag kan dela av mig med, men väl lite ideer.

1.) MySQL-dump duger gott för det mesta. För databaser med bara innodb som tabelltyp finns det alternativ som är bättre dock.
2.) ncftpput gör detta väldigt enkelt. Annars scp om du har kontroll över båda burkarna.
3.) find-kommandot kanske räcker? T ex "find /database_backups -name '*.sql.tar.gzip' -and -mtime +7 | xargs rm" för att ta bort 7 dagar gamla filer (du ser filmönstret, hoppas jag)

hnn 2011-11-23 13:02

http://sourceforge.net/projects/automysqlbackup/

Halo 2011-11-23 13:18

Jag kör "Auto backup for MySQL", finns att köpa på http://www.swordsky.com/
Går ställa in hur ofta backup ska tas (kör själv var 3:e timme), och om den ska radera backupfiler som är äldre än nånting.
Vet dock inte om den kan FTP:a filerna, har själv inget behov av det så har inte kollat

mrdelta 2011-11-23 19:10

Jag tackar för tipsen. Någon betald lösning är inte aktuell, så viktigt är det inte.
Det borde gå att göra med cron på något sätt tycker jag.

Ser detta ut att vara rätt för att dumpa databasen?

15 2 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`data '+%m-%d-%Y'`.sql.gz

Om man inte vill dumpa samtliga databaser så är det bara att specificera namnet på den man vill ha istället för "all"?

Ska kolla upp ncftpput för ftp möjligheterna lite närmare.

Ditt tips angående automatisk delete skall testas. Tack!

Edit: Tror att jag hittade vad jag söker i och med MySQLDumper

Citat:

MySQLDumper är en PHP- och Perl-baserad applikation som används till att säkra MySQL-databaser. Du kan på ett enkelt sätt spara datan i en backupfil och - om erforderligt - återställa datan. Applikationen är speciellt lämpad för webbplatser som delar server med andra, där du ej har shell-åtkomst. MySQLDumper är ett open source projekt och publiceras under GNU-licensen.

Skicka säkringsfiler via FTP till upp till 3 olika servrar. Detta fungerar även i kombination med Multipart funktionen.

Automatisk filradering: ställ in dina egna regler för radering av gammla säkringar. Ange antalet säkringsfiler som du vill spara och låt MySQLDumper radera äldre filer automatiskt.

Perl Cronscript: alla funktioner hos applikationen har integrerats i ett Perlskript (crondump.pl) som kan startas via Cronjob. Om du kan utföra Perl på din server så kan du låta MySQLDumper ta automatiska och regelbundna säkringar av din databas vid definerade tidpunkter. På så sätt glömmer du ej att säkra din databas!

KristianE 2011-11-23 22:34

Ett tips är att skapa en MySQL-user med de lägsta rättigheterna som krävs för att ta backup på databaserna.

Man vill ogärna använda root-kontot för såna saker..

Och givetvis scriptar du allt och kör bash-scriptet i cron.

mrdelta 2011-11-23 22:48

Just nu körde jag på en user som har "All privilegies"...
men vilka är de lägsta rättigheter som krävs för att backa upp då?

Kan man ha flera användare till samma databas?

Just nu så ligger allt i ett perl-script som körs av cron.


Alla tider är GMT +2. Klockan är nu 07:46.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson