Avatar billede lone_a_p Praktikant
12. februar 2007 - 17:24 Der er 15 kommentarer og
1 løsning

Mysql - automatisk backup

Kære eksperter,

Jeg vil gerne høre, hvorledes I tager backup af jeres databaser.

Mit webhotel henviser blot til, at jeg selv skal gøre det.

Jeg har taget backups manuelt via phpmyadmin indtil nu, men det er ikke altid man lige får det gjort, og det tager også tid.

Er der nogen måde, jeg kan sætte det op, så jeg får en automatisk backup (f.eks. kl. 3 om natten). Jeg har lige lært om cronjobs, og har det i brug ... ikke så svært ;-)

Måske kunne man bruge det, men så skal man jo også lave en php-kode, der laver selve dumpet.

Og hvordan med at opbevare backup'en? Skal den sendes afsted i en mail, eller hvordan gør I?

Mvh Lone
Avatar billede sth Novice
12. februar 2007 - 21:14 #1
se mit svar her http://www.eksperten.dk/spm/761233
og sø lader du backup.vbs køre i planlagte opgaver så glemmer du det ikke
Avatar billede fsconsult.dk Nybegynder
13. februar 2007 - 05:57 #2
lyder ikke som dit webhotel er særlig hjælpsom.

det kan være svært at gøre automatisk, hvis du ikke har lov til at oprette cron-jobs eller lignende på serveren (hvad du formentlig ikke har).

hvis det skal gøres automatisk, skal du have en anden server (eller pc), som kalder din php-backupkode (phpmyadmin direkte måske endda), hvor du har adgang til at opsætte jobs.

sth's løsning forudsætter det er en windows maskine, hvor du har adgang til at køre scriptet i Planlagte opgaver...
Avatar billede sth Novice
14. februar 2007 - 20:40 #3
nej mit forslag forudsætter at du bruger windows på din egen pc, og at du kan få forbindelse til servern fra din pc
Avatar billede lone_a_p Praktikant
15. februar 2007 - 00:06 #4
fsconsult.dk> jeg har adgang til cron-jobs (fra anden server), jeg havde forestillet mig, at dette kunne være løsningen. Er det "bare" at lave en tekst-fil med en masse sql-sætninger? Tænker på visse problemer:
- brug af ' og " og \ ... osv
- nogle af tabellerne er meget store og kan alligevel ikke indlæses i en tabel på én gang - i al fald ik via phpmyadmin (og der opstår nok også en timeout inden filen er helt dannet - det gør phpmyadmin :( )
- tekstfilerne skal zippes (kan php det?)

sth> det var en mulighed, men jeg ønsker ikke at køre backup'en fra min egen pc, da det skal foregå helt automatisk (og min pc står ikke åben konstant, kun når den bruges)
Avatar billede morw Nybegynder
16. februar 2007 - 16:16 #5
Hvorfor er det du ikke bruger mysqldump via cron? Har dit webhotel lukket af for mysql udefra?
Avatar billede fsconsult.dk Nybegynder
16. februar 2007 - 16:26 #6
de fleste webhoteller  (og mysql default), tillader ikke adgang til mysql fra andet end den server det er installeret på, men ville selvfølgelig være lettere hvis  dit webhotel har åbnet for mysql adgang fra anden server.

i første omgang har du vel kun brug for at tage backup'en, og ikke indlæse dem igen over nettet?
hvis du ikke kan få kalde phpmyadmin og downloade backup'en inden det timer ud, så kan det blive noget tricky at tage backup.
jeg ville undersøge om du kan kalde mysql udefra, og så bruge mysqldump hvis det er muligt  (selvom  sandsynligheden nok ikke er stor)
Avatar billede lone_a_p Praktikant
17. februar 2007 - 01:03 #7
morw> uddybning please :) ved ikke hvad du præcist mener, men det kunne godt være det jeg skulle bruge - lyder som sådan noget :)

Hvad med at læse hver tabel med php og lægge ned i en tekstfil som (selvfølgelig for hver eneste row):

INSERT INTO myTable (col_x, col_y, col_z) VALUES (x, y, x);

Ville det være ok? Eller ville der være problemer heri?
Avatar billede sth Novice
17. februar 2007 - 10:07 #8
er det bare mig eller køre vi i ring, det forslag morw kommer med er jo det samme som mit. Mit forslag er jo lige netop at bruge mysqldump
Avatar billede morw Nybegynder
17. februar 2007 - 11:38 #9
mysqldump følger med mysql og hvis du ikke kender det så start med at læse her:

http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html
Avatar billede lone_a_p Praktikant
17. februar 2007 - 13:25 #10
fsconsult.dk> det er vel ikke så nødvendigt at have adgang fra anden server, når blot jeg bruger et cronjob, som peger på en php-backup-fil på mit webhotels server?

morw> jeg ved ikke lige så meget om mysqldump og hvordan det kaldes via php. Det ser ud til at jeg skal bruge en server()-funktion i php, når jeg lige hurtigt tager en søg på Google, men det må jeg prøve mig frem med:)
Avatar billede fsconsult.dk Nybegynder
17. februar 2007 - 14:03 #11
lone>  hvis du skal bruge mysqldump fra en anden server, SÅ skal du have direkte adgang til mysql på serveren, men hvis du kalder et php-script på webhotellet, som laver backupen (uden det timer ud), så har du ganske rigtigt ikke brug for det.
Avatar billede morw Nybegynder
17. februar 2007 - 14:46 #12
mysqldump er et program du kan køre fra en shell promt hvis du har ssh adgang til en server.

Prøv at logge ind via ssh og skriv telnet din-mysqlserver.ip 3306

Hvis der er hul igennem har dit webhotel åbent for mysql udefra.

Derefter sætter du så bare mysqldump op i et cronjob - ingen grund til at blande php ind i det.

Hvis der ikke er hul igennem udefra kan du alt efter hvordan dit webhotel har sat safemode op, prøve at kalde mysqldump direkte gennem exec() i php og sørge for at outputtet bliver gemt i web-roden og så herfter bruge wget fra en remote server til at hente det over.



Hefter
Avatar billede lone_a_p Praktikant
17. februar 2007 - 16:41 #13
Ok, jeg må ærlig talt sige, at jeg ikke aner, hvad du snakker om. Jeg skal have det i et sprog, så enhver kan forstå det. Kender ikke til meget ud over php.
Avatar billede lone_a_p Praktikant
17. februar 2007 - 16:43 #14
fsconsult.dk> tak, jeg skal blot lige have fundet ud af, hvordan jeg undgår, at det timer ud :) Jeg mener ikke, at jeg har adgang til mysql udefra.
Avatar billede lone_a_p Praktikant
17. juli 2007 - 23:23 #15
fsconsult.dk> det er vist på tide at lukke, vil du give et svar? :)
Avatar billede fsconsult.dk Nybegynder
18. juli 2007 - 06:18 #16
svar ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester