[MySQL] (Erg) grote database in andere MySQL zetten.

Pagina: 1
Acties:

  • MrDummy
  • Registratie: April 2000
  • Laatst online: 25-07 12:00

MrDummy

Nog steeds gek op anime...

Topicstarter
Ik zit met een klassieke probleem. Namelijk het grote database dump (in gz) overzetten naar andere MySQL server. Dat gaat natuurlijk niet altijd prima. De execution time van de script zal dan makkelijk overschreden worden, in mijn geval 300 sec.

Het lijkt niet erg zinvol om execution time te vergroten. Er moet een simpele oplossing bestaan om succesvol grote database te overzetten. (in mijn geval van colo server naar mijn lokale server voor eigen dev werk en db controle)

Ik heb wel eerder met vertraagde inserts en andere methoden gedaan. Maar ook hier is execution time weer het probleem.

En ik weet niet zeker of hier juiste plek is, in DTE. Omdat het om MySQL / PHP execution time probleem is en dat leek hele server probleem te zijn, zal ik maar even hier posten.

Wellicht heb je ook pogingen gedaan om grote database te overzetten / terug zetten. Welke methode heeft meer succes om alle records erin te zetten? Of rest er niks anders over dan MySQL db in kleine stukjes te knippen en stuk voor stuk erin te doen?

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 19:55

DizzyWeb

Ondertiteld

Nou, ik zou 'm gewoon uploaden en via shell importeren....

  • MrDummy
  • Registratie: April 2000
  • Laatst online: 25-07 12:00

MrDummy

Nog steeds gek op anime...

Topicstarter
Dat betekent dus: mysql db file direct vanaf server plukken en vervolgens op mijn pc zetten.

Via phpmyadmin gaat het nog wel lastig.

  • danslo
  • Registratie: Januari 2003
  • Laatst online: 01:33
Commandline verbinden naar database en vervolgens "mysql < dumpfile.sql".

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:13

Creepy

Tactical Espionage Splatterer

Je moet ook niet zomaar databases gaan overzetten m.b.v. PHP scripts. Gewoon rechtstreeks de mysql commandine client gebruiken voor dit soort zaken. Je hebt dan niks te maken met bestandgroottes of time-outs.
code:
1
mysql -u <gebruiker> -p <Databasenaam> < backup.sql

Als er een create table en een use statement in de SQL staat is natuurlijk de databasenaam niet nodig en kan je die weglaten.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • r0b
  • Registratie: December 2002
  • Laatst online: 26-10 09:42

r0b

MrDummy schreef op maandag 23 juni 2008 @ 11:30:
Dat betekent dus: mysql db file direct vanaf server plukken en vervolgens op mijn pc zetten.

Via phpmyadmin gaat het nog wel lastig.
Je kan toch wel een dump krijgen vanuit phpmyadmin?
Deze dan gewoon via cli importeren zou geen probleem moet opleveren?

edit:
^^ met hun

[ Voor 3% gewijzigd door r0b op 23-06-2008 11:34 ]


  • mrFoce
  • Registratie: Augustus 2004
  • Laatst online: 04-11 05:12

  • MrDummy
  • Registratie: April 2000
  • Laatst online: 25-07 12:00

MrDummy

Nog steeds gek op anime...

Topicstarter
Ja, maar de lokale server is een windows bak. Hoe kan ik die executen, of gaat het ook zelfde via command prompt?

Heb wel mysql db files kunnen kopieren. Ik weet dat het ook werkt door deze direct in /data/ te plaatsen, dan komen de gegevens vanzelf goed te staan.

Dump maken vanaf colo server is geen probleem, erin plaatsen op lokale server is andere verhaal.

[ Voor 15% gewijzigd door MrDummy op 23-06-2008 12:09 ]


  • r0b
  • Registratie: December 2002
  • Laatst online: 26-10 09:42

r0b

MrDummy schreef op maandag 23 juni 2008 @ 12:08:
Ja, maar de lokale server is een windows bak. Hoe kan ik die executen, of gaat het ook zelfde via command prompt?

Heb wel mysql db files kunnen kopieren. Ik weet dat het ook werkt door deze direct in /data/ te plaatsen, dan komen de gegevens vanzelf goed te staan.

Dump maken vanaf colo server is geen probleem, erin plaatsen op lokale server is andere verhaal.
Normaal gesproken kan je dan inderdaad via "cmd" de bovengenoemde commando's uitvoeren (let op het juiste pad naar je .sql) :)

  • igmar
  • Registratie: April 2000
  • Laatst online: 06-11 09:18

igmar

ISO20022

En zet bij een dump extended insert aan. Dat scheelt zowiezo grofweg de helft met een dump, en is zeker 3 keer zo snel als een dump zonder extended insert.

  • _Gekkie_
  • Registratie: Oktober 2000
  • Laatst online: 24-06 20:21

_Gekkie_

And the cow said: Helloooooow?

Let ook op je versieverschillen tussen de MySQL's... bij het ex en importeren wil hier nog welleens een quote-verschilletje optreden waardoor het e.e.a. niet helemaal vlekkeloos wilt werken...

Gekkie is a proud member of TheBenny!


Verwijderd

igmar schreef op donderdag 26 juni 2008 @ 10:10:
En zet bij een dump extended insert aan. Dat scheelt zowiezo grofweg de helft met een dump, en is zeker 3 keer zo snel als een dump zonder extended insert.
mysqldump -Q --opt

Meer hoef je over het algemeen niet te weten :)
Pagina: 1