Asus EN8800GTS, Asus P5E, Intel E8400, 2x500gb Spinpoint (raid0), Zalman HP 600 watt, cnps 9500 led, creative xfi music, 4x1gb hyperX PC2 8500
[ Voor 19% gewijzigd door DukeBox op 31-10-2009 17:13 ]
Duct tape can't fix stupid, but it can muffle the sound.
Wat is een goede manier om een test-database te synchroniseren met de productie server?
Ik zie zo 4 mogelijkheden:
- Automatisch een mysqldump doen elke nacht. (duurt waarschijnlijk veel te lang).
- De map (mysql/data/[database naam]) kopieren. (is dit een normale oplossing?).
- Synchronisatie software gebruiken. (duurt denk ik ook heel lang)
- MySQL replication: http://dev.mysql.com/doc/refman/5.0/en/replication.html (is dit bedoelt voor een testomgeving?)
Wat is een geschikte oplossing?
Asus EN8800GTS, Asus P5E, Intel E8400, 2x500gb Spinpoint (raid0), Zalman HP 600 watt, cnps 9500 led, creative xfi music, 4x1gb hyperX PC2 8500
Eerst: wat is je probleem met een dump? Ik maakte iedere nacht een dump van een server met 2500 databases met gemiddeld 20-30 tabellen met honderden tot honderdduizenden rows in een uurtje, totaal iets van 16Gbyte aan data. Terugzetten duurde iets langer wegens indices, maar niet meer dan 1.5 uur.Meijuh schreef op maandag 02 november 2009 @ 21:36:
Wat is een goede manier om een test-database te synchroniseren met de productie server?
Ik zie zo 4 mogelijkheden:
- Automatisch een mysqldump doen elke nacht. (duurt waarschijnlijk veel te lang).
- De map (mysql/data/[database naam]) kopieren. (is dit een normale oplossing?).
- Synchronisatie software gebruiken. (duurt denk ik ook heel lang)
- MySQL replication: http://dev.mysql.com/doc/refman/5.0/en/replication.html (is dit bedoelt voor een testomgeving?)
Mysql-replicatie is een optie met een potentieele beperking. Als je tabellen aanpast in je slave zul je problemen krijgen met het wegschrijven van nieuwe records in de master naar de slave. Tabellen moeten identiek zijn. Records kunnen afwijken, zolang je key-fields maar identiek zijn.
Mappen kopieeren is een optie, maar alleen als je je 'master' stopt voor het kopieeren of je tables lockt. De procedures daarvoor staan ook beschreven in de mysql-documentatie, als 1 van de 2 manieren om een slave op te zetten.
I don't like facts. They have a liberal bias.
Hmm ik gebruikte mysql administrator, die backup functie.burne schreef op maandag 02 november 2009 @ 21:46:
[...]
Eerst: wat is je probleem met een dump? Ik maakte iedere nacht een dump van een server met 2500 databases met gemiddeld 20-30 tabellen met honderden tot honderdduizenden rows in een uurtje, totaal iets van 16Gbyte aan data. Terugzetten duurde iets langer wegens indices, maar niet meer dan 1.5 uur.
Later las ik de mysqldump functie en ik zag dat die gewoon sql produceerde.
Maar het kan best zijn dat als ik ook mysqldump < restorefile gebruik het wel sneller gaat, dit zou ik kunnen testen.
Als ik de restore functie gebruik in mysqladministrator dan duurt het restoren als snel 10 uur. Terwijl de database niet groter is dan 5 gigabyte.
Ik kan ga dit nog even testen
Asus EN8800GTS, Asus P5E, Intel E8400, 2x500gb Spinpoint (raid0), Zalman HP 600 watt, cnps 9500 led, creative xfi music, 4x1gb hyperX PC2 8500
{signature}
Er is namelijk geen ruimte op de server om het bestand daar eerst op te slaan.
Ik kan met putty (ssh) verbinding maken met de server.
Asus EN8800GTS, Asus P5E, Intel E8400, 2x500gb Spinpoint (raid0), Zalman HP 600 watt, cnps 9500 led, creative xfi music, 4x1gb hyperX PC2 8500
Asus EN8800GTS, Asus P5E, Intel E8400, 2x500gb Spinpoint (raid0), Zalman HP 600 watt, cnps 9500 led, creative xfi music, 4x1gb hyperX PC2 8500
Putty komt met een commandline-variant. Met die is het een eitje:Meijuh schreef op maandag 02 november 2009 @ 22:15:
Kan ik met mysqldump een dumpfile direct lokaal opslaan in plaats van eerst op de (remote) server?
1
| plink user@remotehost "mysqldump -h localhost -u mysqluser -pP@$$W3rD databasename | gzip -cf" > database.sql.gz |
Dat levert je wel een gecomprimeerde database op, maar dat maakt voor enkel opslaan niet uit. Voor het uitpakken heb je iets als http://gnuwin32.sourceforge.net/packages/gzip.htm nodig.
Ik ga er vanuit dat je lokaal windows gebruikt. Als linux- of OS-X-gebruiker heb je waarschijnlijk gzip en gunzip al paraat, net zoals ssh:
1
| ssh user@host "mysqldump -h localhost -u mysqluser -pP@$$W3rD databasename | gzip -cf" | gunzip -c > database.sql |
Je my.cnf goed 'tunen' doet overigens *wonderen* voor de snelheid van je database. Hoewel ik het verhaal begin over mailservers gaat het eigenlijk over mysql: http://www.nutz.nl/archiv...-hanging-fruit-first.html
I don't like facts. They have a liberal bias.
Dit vond ik ook al, ik heb het niet geprobeerd, maar met "-h localhost" geef je daar niet mee aan dat je verbinding maakt met de localhost?burne schreef op maandag 02 november 2009 @ 22:31:
[...]
Putty komt met een commandline-variant. Met die is het een eitje:
code:
1 plink user@remotehost "mysqldump -h localhost -u mysqluser -pP@$$W3rD databasename | gzip -cf" > database.sql.gz
Asus EN8800GTS, Asus P5E, Intel E8400, 2x500gb Spinpoint (raid0), Zalman HP 600 watt, cnps 9500 led, creative xfi music, 4x1gb hyperX PC2 8500
De output van het commando komt via gzip en ssh/plink terug bij je, en dat schrijf je weg naar een bestand.
I don't like facts. They have a liberal bias.
bedankt.
Asus EN8800GTS, Asus P5E, Intel E8400, 2x500gb Spinpoint (raid0), Zalman HP 600 watt, cnps 9500 led, creative xfi music, 4x1gb hyperX PC2 8500