/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
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

Svend-Erik Madsen wrote:
> <http://www.mysql.com/doc/en/mysqlhotcopy.html>

Ser interessant ud. Jeg laver lige nogle tests og vender tilbage...

--
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



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


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste