|
| backup med tar Fra : Kim Emax |
Dato : 01-10-03 23:37 |
|
Hey
Jeg har lavet et backup script, der mailer mig hver gang det køres fordi der
er et output. Jeg har debugget mig til at problemet er at de liner jeg
angiver, for de filer jeg laver backups af starter med /
tar zcf /data/backup/mysql/20031001.tgz /var/lib/mysql/db1
/var/lib/mysql/db2
Der kommer så denne output:
tar: Removing leading `/' from member names
Hvordan omgåes jeg dette, udover at smide scriptet i roden?
--
Take Care
Kim Emax - master|minds: http://www.masterminds.dk
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop
| |
Jesper Frank Nemholt (02-10-2003)
| Kommentar Fra : Jesper Frank Nemholt |
Dato : 02-10-03 06:40 |
|
"Kim Emax" <newsgroup@remove-emax.dk> wrote in message
news:LGIeb.68$536.15987@news000.worldonline.dk...
> Hey
>
> Jeg har lavet et backup script, der mailer mig hver gang det køres fordi
der
> er et output. Jeg har debugget mig til at problemet er at de liner jeg
> angiver, for de filer jeg laver backups af starter med /
>
> tar zcf /data/backup/mysql/20031001.tgz /var/lib/mysql/db1
> /var/lib/mysql/db2
>
> Der kommer så denne output:
>
> tar: Removing leading `/' from member names
>
> Hvordan omgåes jeg dette, udover at smide scriptet i roden?
cd /; zcf /data/backup/mysql/20031001.tgz /var/lib/mysql/db1
/var/lib/mysql/db2
Har du husket at stoppe MySQL mens du tager backuppen (jeg formoder at der
ligger MySQL baser i /var/lib/mysql/db*) ? ellers er den backup nemlig ikke
meget vaerd.
/Jesper
| |
Kim Emax (02-10-2003)
| Kommentar Fra : Kim Emax |
Dato : 02-10-03 07:19 |
|
Jesper Frank Nemholt wrote:
> cd /; zcf /data/backup/mysql/20031001.tgz /var/lib/mysql/db1
> /var/lib/mysql/db2
Doh! Tak, det spiller
> Har du husket at stoppe MySQL mens du tager backuppen (jeg formoder
> at der ligger MySQL baser i /var/lib/mysql/db*) ? ellers er den
> backup nemlig ikke meget vaerd.
Niks, jeg stopper den ikke, da jeg ikke ønsker nedetid på databasen. Men jeg
er ikke klar over, hvad der sker, hvis der skrives til en fil mens den
pakkes? Og prøver jeg at låse filen bøvser mysql vel, hvis den prøver at
skrive til den pågældende fil?
--
Take Care
Kim Emax - master|minds: http://www.masterminds.dk
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop
| |
Svend-Erik Madsen (02-10-2003)
| Kommentar Fra : Svend-Erik Madsen |
Dato : 02-10-03 07:41 |
|
Thu, 02 Oct 2003 08:19:05 +0200, ytrede Kim Emax sig om :
> pakkes? Og prøver jeg at låse filen bøvser mysql vel, hvis den prøver at
> skrive til den pågældende fil?
Der skulle være en kommando "msqlhotcopy",
prøv at se lidt på den, hvis du ikke vil stoppe
--
Med venlig hilsen
Svend-Erik Madsen
<-! fjern spam i mailadressen ved svar -->
| |
Svend-Erik Madsen (02-10-2003)
| Kommentar Fra : Svend-Erik Madsen |
Dato : 02-10-03 11:50 |
| | |
Kim Emax (02-10-2003)
| Kommentar Fra : Kim Emax |
Dato : 02-10-03 14:27 |
| | |
Hans Joergensen (02-10-2003)
| Kommentar Fra : Hans Joergensen |
Dato : 02-10-03 11:29 |
|
Kim Emax wrote:
> Niks, jeg stopper den ikke, da jeg ikke ønsker nedetid på databasen. Men jeg
> er ikke klar over, hvad der sker, hvis der skrives til en fil mens den
> pakkes? Og prøver jeg at låse filen bøvser mysql vel, hvis den prøver at
> skrive til den pågældende fil?
Det vil blive en defekt backup...
Prøv istedet følgende:
mysqldump -uroot -A > backup-af-mysql.sql
Så får du et databasedump.. og det er rart, samtidlig med at det er
den korrekte måde at gøre det på
// Hans
--
http://rd350.nathue.dk - Breaking the ozone-layer since 1985
| |
Michael (02-10-2003)
| Kommentar Fra : Michael |
Dato : 02-10-03 12:28 |
|
"Hans Joergensen" <haj@enterprise-server.dk> wrote in message
news:slrnbnnvfl.ioe.haj@enterprise-server.dk...
> Kim Emax wrote:
> > Niks, jeg stopper den ikke, da jeg ikke ønsker nedetid på databasen. Men
jeg
> > er ikke klar over, hvad der sker, hvis der skrives til en fil mens den
> > pakkes? Og prøver jeg at låse filen bøvser mysql vel, hvis den prøver at
> > skrive til den pågældende fil?
>
> Det vil blive en defekt backup...
Hvorfor egentligt? Hvad er det der rent faktisk sker?
Nogen der ved det?
Mvh
Michael
| |
Thomas S. Iversen (02-10-2003)
| Kommentar Fra : Thomas S. Iversen |
Dato : 02-10-03 13:18 |
|
In article <3f7c0ba6$0$13210$edfadb0f@dread15.news.tele.dk>, Michael wrote:
> Hvorfor egentligt? Hvad er det der rent faktisk sker?
tar backer op i blocke ad gangen. Antag at din db fylder 100 blokke paa
disken. Du starter tar der naar at hente de foerste 50 blokke foer
mysql skriver data ned. Derefter backer tar resten op. Du har
saaledes en backup af 100 blocke med 50 fra en "version" af databasen
og 50 fra en anden "version". Det er ikke sikkert det du pakker ud
overhovedet er en gyldig mysqldatabase!
Brug mysqldump istedet og tag backup af outputtet. Ioevrigt en meget
bedre loesning, da ascii ogsaa er laesbart af mennesker, hvilket
kan vaere anvendeligt, hvis man en dag skal rette lidt i
data foer de indlaeses i databasen igen.
Thomas
| |
Kim Emax (02-10-2003)
| Kommentar Fra : Kim Emax |
Dato : 02-10-03 14:26 |
|
Thomas S. Iversen wrote:
> tar backer op i blocke ad gangen. Antag at din db fylder 100 blokke
> paa disken. Du starter tar der naar at hente de foerste 50 blokke foer
> mysql skriver data ned. Derefter backer tar resten op. Du har
> saaledes en backup af 100 blocke med 50 fra en "version" af databasen
> og 50 fra en anden "version". Det er ikke sikkert det du pakker ud
> overhovedet er en gyldig mysqldatabase!
>
> Brug mysqldump istedet og tag backup af outputtet. Ioevrigt en meget
> bedre loesning, da ascii ogsaa er laesbart af mennesker, hvilket
> kan vaere anvendeligt, hvis man en dag skal rette lidt i
> data foer de indlaeses i databasen igen.
Takker for infoen. Jeg havde mysqldump i tankerne, men fandt at det gik for
langsomt med at lave dumpet = længere nedetid på databasen, da jeg ikke
ville lave et dump uden at stoppe den eller låse tabeller(uden at have
nærlæst om mysqldump låser tabeller undervejs, det vil jeg gøre nu
--
Take Care
Kim Emax - master|minds: http://www.masterminds.dk
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop
| |
Michael (02-10-2003)
| Kommentar Fra : Michael |
Dato : 02-10-03 16:10 |
|
"Thomas S. Iversen" <zensonic@zensonic.dk> wrote in message
news:slrnbno5qb.v1c.zensonic@ www.zensonic.dk...
> In article <3f7c0ba6$0$13210$edfadb0f@dread15.news.tele.dk>, Michael
wrote:
>
> > Hvorfor egentligt? Hvad er det der rent faktisk sker?
>
> tar backer op i blocke ad gangen. Antag at din db fylder 100 blokke paa
> disken. Du starter tar der naar at hente de foerste 50 blokke foer
> mysql skriver data ned. Derefter backer tar resten op. Du har
> .....
av...
> Brug mysqldump istedet og tag backup af outputtet. Ioevrigt en meget
> Thomas
Hvad med blot at køre cp /var/lib/mysql/* nfs/
Vil det have samme dårlige virkning?
Årsagen til jeg spørger er at jeg har på tidspunkter oplevet mysqldump har
fejlet pga det er lykkedes en eller anden at smide noget "ulovligt" ind i
databasen. så stoppede den, hvilket ikke var smart hvis man kørte alle
databaser.
Mvh
Michael
| |
Hans Joergensen (02-10-2003)
| Kommentar Fra : Hans Joergensen |
Dato : 02-10-03 20:07 |
|
Michael wrote:
> Hvad med blot at køre cp /var/lib/mysql/* nfs/
> Vil det have samme dårlige virkning?
Ja.
// Hans
--
Leveret af http://enterprise-server.dk
"Vejen til en professionel løsning"
| |
Povl H. Pedersen (02-10-2003)
| Kommentar Fra : Povl H. Pedersen |
Dato : 02-10-03 21:16 |
|
On 2003-10-02,
Michael <maskinen2000@hotmail.com> wrote:
> "Thomas S. Iversen" <zensonic@zensonic.dk> wrote in message
> news:slrnbno5qb.v1c.zensonic@ www.zensonic.dk...
>> In article <3f7c0ba6$0$13210$edfadb0f@dread15.news.tele.dk>, Michael
> wrote:
>>
>> > Hvorfor egentligt? Hvad er det der rent faktisk sker?
>>
>> tar backer op i blocke ad gangen. Antag at din db fylder 100 blokke paa
>> disken. Du starter tar der naar at hente de foerste 50 blokke foer
>> mysql skriver data ned. Derefter backer tar resten op. Du har
>> .....
>
> av...
>
>> Brug mysqldump istedet og tag backup af outputtet. Ioevrigt en meget
>> Thomas
>
> Hvad med blot at køre cp /var/lib/mysql/* nfs/
>
> Vil det have samme dårlige virkning?
Ja.
>
> Årsagen til jeg spørger er at jeg har på tidspunkter oplevet mysqldump har
> fejlet pga det er lykkedes en eller anden at smide noget "ulovligt" ind i
> databasen. så stoppede den, hvilket ikke var smart hvis man kørte alle
> databaser.
Så er det helt rigtige vel at kore 2, eventuelt på smamme maskine med
replikering.
SÅ er det bare at load data fra masteren, lukke slaven, brug tar,
start slaven igen.
Det har også den fordel at du bare kan stoppe slaven, smide conf fra
masteren derover, og du korer med det samme. Hvis den korer på en
anden maskine kan du endog bruge den til load-balancing ved at læse
fra slave eller master, og skrive til master.
| |
Michael (02-10-2003)
| Kommentar Fra : Michael |
Dato : 02-10-03 21:47 |
|
"Povl H. Pedersen" <pope@home.terminal.dk> wrote in message
news:slrnbnp1s5.dbq.pope@mail.home.terminal.dk...
> Så er det helt rigtige vel at kore 2, eventuelt på smamme maskine med
> replikering.
>
> SÅ er det bare at load data fra masteren, lukke slaven, brug tar,
> start slaven igen.
>
> Det har også den fordel at du bare kan stoppe slaven, smide conf fra
> masteren derover, og du korer med det samme. Hvis den korer på en
> anden maskine kan du endog bruge den til load-balancing ved at læse
> fra slave eller master, og skrive til master.
Du har fuldstændig ret.. tror jeg faktisk jeg vil begynde at gøre.. Jeg har
dog hidtil ikke gjort det, da jeg ingen erfaring havde med at sætte det op..
men det er vil til at lære :)
- nogen der har nogle gode links? udover google :)
Mvh
Michael
| |
Kim Emax (08-10-2003)
| Kommentar Fra : Kim Emax |
Dato : 08-10-03 20:08 |
|
Thomas S. Iversen wrote:
> tar backer op i blocke ad gangen. Antag at din db fylder 100 blokke
> paa disken. Du starter tar der naar at hente de foerste 50 blokke foer
> mysql skriver data ned. Derefter backer tar resten op. Du har
> saaledes en backup af 100 blocke med 50 fra en "version" af databasen
> og 50 fra en anden "version". Det er ikke sikkert det du pakker ud
> overhovedet er en gyldig mysqldatabase!
>
> Brug mysqldump istedet og tag backup af outputtet. Ioevrigt en meget
> bedre loesning, da ascii ogsaa er laesbart af mennesker, hvilket
> kan vaere anvendeligt, hvis man en dag skal rette lidt i
> data foer de indlaeses i databasen igen.
Ok, nu kommer næste tanke... Mit script skal ikke kun lave backup af mysql,
det var bare et eksempel, det skal også lave backup af mail og web, såeee...
hvad er optimalt, hvis måden jeg har valgt lader til at være usmart?
--
Take Care
Kim Emax - master|minds: http://www.masterminds.dk
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop
| |
Thomas S. Iversen (08-10-2003)
| Kommentar Fra : Thomas S. Iversen |
Dato : 08-10-03 20:30 |
|
In article <hgZgb.3703$jf4.140632@news000.worldonline.dk>, Kim Emax wrote:
> Ok, nu kommer næste tanke... Mit script skal ikke kun lave backup af mysql,
> det var bare et eksempel, det skal også lave backup af mail og web, såeee...
Hmm, hvis du med mail mener /var/spool/mail/, saa maa det vel
vaere at lukke for din MTA lige foer du tager backup og starte den
bagefter.
Hvis det er folks lokale mbox, Maildirs, whatever, saa kan man
vel i princippet bare tage backuppen og notere sig, at hvis
man en dag skal bruge den, saa _kan_ der vaere roeget lidt i svinget.
Problematikken er ikke stor, det hele er jo laesbar tekst og
meget af det er statisk. Ydermere vil data ofte blive appended bagerst
i en fil og ikke blive "skubbet" ind midt i det hele. Derfor vil
problemerne med at tage backup af mail/web paa et koerende system blive
minimale.
Mine $0.02
Thomas
| |
Kim Emax (08-10-2003)
| Kommentar Fra : Kim Emax |
Dato : 08-10-03 20:54 |
|
Thomas S. Iversen wrote:
> Hvis det er folks lokale mbox, Maildirs, whatever, saa kan man
> vel i princippet bare tage backuppen og notere sig, at hvis
> man en dag skal bruge den, saa _kan_ der vaere roeget lidt i svinget.
Det er det, jeg vil. I min verden er det uacceptabelt med går-den-så-går-den
løsninger, men her må det være en afvejning af om man vil stoppe
mailserveren og tage backup eller risikere den forsvindende lille risiko,
der er for at en mail bliver leveret til den mailbox, man netop er ved at
tage backup af.
> Problematikken er ikke stor, det hele er jo laesbar tekst og
> meget af det er statisk. Ydermere vil data ofte blive appended bagerst
> i en fil og ikke blive "skubbet" ind midt i det hele. Derfor vil
> problemerne med at tage backup af mail/web paa et koerende system
> blive minimale.
Jeg vil ikke appende til en bestående fil, jeg laver en ny dato navngivet
fil hver gang en backup tages.
--
Take Care
Kim Emax - master|minds: http://www.masterminds.dk
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop
| |
Thomas S. Iversen (09-10-2003)
| Kommentar Fra : Thomas S. Iversen |
Dato : 09-10-03 08:17 |
|
In article <WXZgb.4128$jf4.146327@news000.worldonline.dk>, Kim Emax wrote:
> Det er det, jeg vil. I min verden er det uacceptabelt med går-den-så-går-den
> løsninger, men her må det være en afvejning af om man vil stoppe
> mailserveren og tage backup eller risikere den forsvindende lille risiko,
> der er for at en mail bliver leveret til den mailbox, man netop er ved at
> tage backup af.
Ja, og saa har du jo ogsaa det dilemma, at _hvis_ du stopper mailserveren
mens backupen koerer, saa venter folk paa mails => uacceptabelt i min
verden
> Jeg vil ikke appende til en bestående fil, jeg laver en ny dato navngivet
> fil hver gang en backup tages.
Hov nej, du misforstod (eller ogsaa udtrykte jeg mig ikke klart nok).
Naar der kommer en ny mail, saa ryger den ned i enten _en_ enkelt
fil hvis man bruger Maildir eller ogsaa bliver den _appended_
til folks mbox. Under alleomstaendigheder vil "problemet" opstaa
hvis backup programmet og mailprogrammet uheldigvis laeser/skriver
til succesive filblokke i en uheldig raekkefoelge,
men problemet vil "blot" vaere, at der ryger en (halv) enkelt fil
i backupen af noget der er et stykke tekst. Resten af backupen af mboxen
vil fungere fint.
Alternativt kan det vaere, at man kan loese det hele med filsystem
locks, men her staar jeg af; saa godt er mit kendskab ikke
til laase semantikken af filsystemer naar det gaelder backup i
kombination med mail.
Thomas
| |
Kim Emax (09-10-2003)
| Kommentar Fra : Kim Emax |
Dato : 09-10-03 09:58 |
|
Thomas S. Iversen wrote:
> Ja, og saa har du jo ogsaa det dilemma, at _hvis_ du stopper
> mailserveren mens backupen koerer, saa venter folk paa mails =>
> uacceptabelt i min verden
Samme her, sandsynligheden for at en bruger bliver berørt af en stoppet
mailserver er væsentligt størrere end det er at en bruger har brug for
backup af sin mail og den lige tilfædigvis er blevet lavet mens der er
kommet en ny mail
> Alternativt kan det vaere, at man kan loese det hele med filsystem
> locks, men her staar jeg af; saa godt er mit kendskab ikke
> til laase semantikken af filsystemer naar det gaelder backup i
> kombination med mail.
Det ville nok være den rigtige måde at gøre det på.
--
Take Care
Kim Emax - master|minds: http://www.masterminds.dk
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop
| |
Jesper Frank Nemholt (02-10-2003)
| Kommentar Fra : Jesper Frank Nemholt |
Dato : 02-10-03 18:23 |
|
"Kim Emax" <newsgroup@remove-emax.dk> wrote in message
news:urPeb.134$536.19259@news000.worldonline.dk...
> Jesper Frank Nemholt wrote:
>
> > cd /; zcf /data/backup/mysql/20031001.tgz /var/lib/mysql/db1
> > /var/lib/mysql/db2
>
> Doh! Tak, det spiller
Bortset fra at jeg havde copy & paste'd og derfor kopieret leading slash
med.
Du skal naturligvis droppe leading slash paa /var, men det formoder jeg at
du har opdaget.
> > Har du husket at stoppe MySQL mens du tager backuppen (jeg formoder
> > at der ligger MySQL baser i /var/lib/mysql/db*) ? ellers er den
> > backup nemlig ikke meget vaerd.
>
> Niks, jeg stopper den ikke, da jeg ikke ønsker nedetid på databasen. Men
jeg
> er ikke klar over, hvad der sker, hvis der skrives til en fil mens den
> pakkes? Og prøver jeg at låse filen bøvser mysql vel, hvis den prøver at
> skrive til den pågældende fil?
Hvis databasefilerne aendres undervejs vil backuppen vaere spildt.
Hvis du skal laase filerne skal det goeres fra MySQL, men det er boevlet.
Brug mysqldump :
mysqldump -A --user=root --password=blablabla | /usr/bin/compress >
database_dump.sql.Z
Det er ofte en god idé at dumpe tabel strukturer uden data samt mysql
tabellen med og uden data og f.eks. uden default data. Saa kan du lave
restore ud fra flere scenarier.
Husk at proeve restore og lav evt. scripts der laver restore automatisk.
Det sker alt for tit at folk har en backup som, naar uheldet er ude, viser
sig enten ikke at virke, at mangle noget eller at vaere voldsom boevlet &
tidskraevende at lave restore fra.
Som naevnt er der ogsaa mysqlhotcopy som er fra InnoDB. I modsaetning til
mysqldump tager mysqlhotcopy en tidskonsistent kopi, hvilket er meget bedre,
men det tidskonsistente er saa vidt jeg husker kun hvis du benytter InnoDB
tabeller (hvilket klart kan anbefales uanset hvad).
Et andet alternativ er at saette en replikerings server op. Foer backup
stopper du den, tager backup af replica og starter derefter igen, hvorefter
den vil synkroniserer sig selv. Det giver dig en tidskonsistent backup, men
kraever naturligvis dobbelt storage.
I stoerre setup laves det ofte paa disk niveau :
Man har 3 diske i et mirror. Saetter saa sine tablespaces i begin backup
(Oracle term) saa data flushes & de ikke aendrer sig. Herefter disconnecter
man en af de 3 diske i hvert mirror. Disse disconnectede diske indeholder
saa en tidskonsistent database. Herefter kan man saette sine tabeller i
normal mode igen. Processen tager ganske kort tid.
Efterfoelgede mounter man de disconnectede diske andetsteds (evt. paa en
anden maskine) og tager backup af data.
Det er en meget benyttet backup form naar man har masser at tage backup af
og/eller at det koster for meget i performance at tage backup paa
produktions-maskinerne. Vi bruger denne form for backup meget paa mit
arbejde.
Nyere RAID controllere & volume managers kan lave det uden ekstra diske, men
blot med lidt ekstra ledig plads. Istedet gemmer de forskellen (aendrede
data) og man kan saa paa sin klon/snapshot se de gamle data. Typisk koster
det dog performance, enten CPU maessigt eller RAID controller maessigt.
/Jesper
| |
Klaus Ellegaard (02-10-2003)
| Kommentar Fra : Klaus Ellegaard |
Dato : 02-10-03 09:05 |
|
"Kim Emax" <newsgroup@remove-emax.dk> writes:
>Der kommer så denne output:
>tar: Removing leading `/' from member names
>Hvordan omgåes jeg dette, udover at smide scriptet i roden?
cd /
tar zcf /data/backup/mysql/20031001.tgz var/lib/mysql/db1 var/lib/mysql/db2
Bemærk de manglende /'er på linjen.
Hvorvidt det er klogt at tage backup af en kørende MySQL, er så
et godt spørgsmål. Det virker SÆDVANLIGVIS, men der er ikke nogen
garantier.
Mvh.
Klaus.
| |
Simon Lyngshede (02-10-2003)
| Kommentar Fra : Simon Lyngshede |
Dato : 02-10-03 14:40 |
|
On Thu, 02 Oct 2003 00:37:29 +0200, Kim Emax wrote:
> Hey
>
> Jeg har lavet et backup script, der mailer mig hver gang det køres fordi der
> er et output. Jeg har debugget mig til at problemet er at de liner jeg
> angiver, for de filer jeg laver backups af starter med /
>
> tar zcf /data/backup/mysql/20031001.tgz /var/lib/mysql/db1
> /var/lib/mysql/db2
>
Sådan laver man ikke backup af en MySQL database.
Personligt bruger jeg mysqldump, det låser ganske vidst tablerne mens der
bliver lavet backup af dem, men afhæningt af hvilken type data der ligger
i database betyder det ikke så meget. Hvis der bliver fortaget en masse
read funktion, men kun meget få update eller inserts kan du fint brug
mysqldump. Under alle omstændigheder er det du laver direkte forkert,
beklager.
Mysqldump eller som Svend-Erik Madsen foreslår mysqlhotcopy.
--
Simon
| |
|
|