tunisempire.com

my own empire

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.
  1. Skapa ett nytt text dokument i notepad.
  2. Lägg in kommandona.
  3. 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.
  1. Öppna kontrollpanelen och sedan Scheduled Tasks.
  2. Skapa en schemaläggning genom att följa guiden Add Scheduled Task.
  3. 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

Skriv en kommentar

Återstående antal tecken: 768

Rotera RSS Feed Sitemap  
Uppdaterad: 2012-01-08 00:54
Copyright © 2009-2012 - tunisempire.com - All Rights Reserved
Valid XHTML 1.1 Valid CSS!