Schemaläggning av backup på MySQL databaser
Uppdaterad Fredagen den 12 Mars 2010 10:23:06
Ta backup på sin databas kan vara en bra idé. Här kommer jag vissa hur man kan skapar en backup och lägga in en schemaläggning för daglig backup i Windows 2003 server.
För att skapa en backup av databaser eller tabeller använder man sig av
mysqldump.exe. Man använder sedan
-u och
-p för att logga in och sedan tabellen/er eller databasen/er följt av
> och filnamnet på backupen som ska skapas.
- Kod: Markera allt
mysqldump -u user -ppassword databas > databas.sql
För att ta backup på alla databaser använder man
--all-databases istället för tabellen/er och databasen/er.
Om man har stora databaser kan det vara bra att komprimera filen. Detta görs med hjälp av pipe | kommandot som skickar data till ett program. I detta fall använder jag
gzip och som har filändelsen
.gz.
- Kod: Markera allt
mysqldump -u user -ppassword --all-databases | gzip > databases.sql.gz
För att kunna återskapa data som ändrats mellan backuperna behöver man starta
bin-log som loggar alla händelser till databaserna. Detta görs genom att lägga till
log-bin="G:/Backup/MySQL/backup-binlog" under
[mysqld] i
my.ini.
Kommandoprompts-skript
Jag använder mig av en vanlig
.cmd fil för att skriva kommandona för att skapa backupen.
- Skapa ett nytt text dokument i notepad.
- Lägg in kommandona.
- Spara som namn.cmd.
Mina kommandon ser ut så här.
- Kod: Markera allt
"C:\Program Files\MySQL Server 5.1\bin\mysqldump.exe" -u user -ppassword --add-drop-table --all-databases | "C:\Program Files\gzip\gzip.exe" -9 > G:\Backup\MySQL\backup-%DATE%.sql.gz
"C:\Program Files\MySQL Server 5.1\bin\mysqladmin.exe" -u user -ppassword flush-logs
forfiles /p G:\Backup\MySQL\ /m backup-*.* /d -7 /c "cmd /c del @path"
Första raden tar backup på alla databaser och packar de i
gzip till fil.gz. Jag använder här också
--add-drop-table som tar bort tabellerna om dom finns vid återställning. För att en ny backup ska skapas använder jag
%DATE% i fil-namnet som skriver ut dagens datum.
På andra raden "flushar" jag bin-logarna för att en ny ska skapas och jag kan ta bort den gamla.
Sista raden använder jag mig av
forfiles för att ta bort gamla log-bin filer och backuper som är äldre än 7 dagar.
Schemaläggning
Nu är det bara att lägga till cmd filen i schemaläggningen.
- Öppna kontrollpanelen och sedan Scheduled Tasks.
- Skapa en schemaläggning genom att följa guiden Add Scheduled Task.
- Välj din .cmd-fil och tid för körning.
Mer om
Läs mer om forfiles på microsoft.com
Publiserad Fredagen den 12 Mars 2010 10:14:20
Uppdaterad Fredagen den 12 Mars 2010 10:23:06
Inga kommentarer