Citat:
Originally posted by patrikweb@Jun 29 2005, 18:43
Ja men man kanske inte vill ha full inkrementell backup? Utan välja enstaka filer, export av db kallar jag inte inkrementell backup. Delvis inkrementell backup låter fult, bättre säga att ta backup på vissa filer. Rå filerna etc för mysql är helt onödigt ta backup på.
|
Varför är det bättre att säga backup på vissa filer?
Jag vet inte riktigt om du förstår eller inte vad ordet betyder.
Om du har ett system där filer ändras (förrutom i självaste /tmp och /var/tmp, eller där du lagrar sessionsdata), så är det bra att ta backup på filer som har ändrats sen senaste backup. Det är vad inkrementell backup är.
Så har din / 3 434 342 343 filer och du har ändrat bara 1, när du kör inkrementel backup på / backas bara 1 enda fil. Så, jag förstår inte krångligheten. Det är faktiskt bättre att överlåta det till mjukvaran än att sitta där och bestämma vad man ska ta backup på (enstaka filer som du sa) för att sedan komma på att du totalt glömt något superviktigt (säg till exempel /etc/passwd ).
Sen förstår jag inte varför man inte skulle ta backup på råfilerna? MySQL är inte direkt som Sybase eller Oracle och får spader om man byter datafiler.
Kör man din metod måste du först innan du tar backup, dumpa din databas så att du får datat.
Sen om det kraschar måste du läsa tillbaka filen och importera den i MySQL.
Kör du råfiler behöver du inte komma ihåg att dumpa den innan, och det är bara att läsa tillbaka råfilen och starta om mysql.
Fast, jag säger inte att din metod suger. Den kan vara användbar. Säg att du supit bort en tabell. Allt annat i databasen har blivit uppdaterat rätt mycket sen senaste backup. Då är det nog smidigt att kunna läsa in en tabell bara.
Jag har faktiskt en ännu bättre lösning för mina viktiga mysql-databaser.
Jag har ett skript som har en lista med databaser att hålla reda på. Vid en periodisk tidpunkt startas skriptet och kör genom listan. Först dumpar den databasen. Sen kollar den i den konfigurerade CVSROOT-en ifall den databasen varit dumpad tidigare. Om inte så skapar den en CVS-modul för den databasen. Nästa gång skriptet körs dumpar den databasen igen. Sen jämför den dumpen med den versionen som är dumpad tidigare. Om det är densamma gör den ingenting. Om databaser skiljer sig, checkar den in den nya versionen i CVS-en.
Anledningen varför jag skrev det skriptet är att jag upptäckte att det var knöligt att göra inkrementell backup på mysql själv. Antigen dumpade du databasen eller inte. Med andra ord, varje gång du gör en databasbackup så gör du fullbackup. (Tyvärr har inte mysql transaktionslog som andra riktiga databaser). Men CVS har ju möjlighet att lagra bara skilnader.
Så nu har jag ett skript som gör att jag lätt kan köra backup varje halvtimma på en databas på flera gig utan att min disk blir full direkt.
/Zoran