Toon posts:

MySQL backup opties

Pagina: 1
Acties:

Vraag


  • c-nan
  • Registratie: Juni 2008
  • Laatst online: 04:40
Ik heb een enkele (dus geen master-master, of master-slave) MySQL (InnoDB) server welke redelijk groot is en zwaar wordt belast. Ik heb de resources niet om een server ernaast te plaatsen om te clusteren. Ik kan hooguit een klein server ernaast draaien en dan in master-slave mode, echter zal de slave de master niet kunnen bijbenen.

Om een backup te maken wordt de database nu dagelijks gestopt, backup gemaakt en weer gestart. Dat is geen ideale situatie. Het liefst maak ik een backup zonder dat de gebruikers daar iets van merken.

Als ik een 2e server er naast zet (met veel minder resources, maar wel voldoende storage) en in master-slave draai. Hoe werkt het dan met inserts/updates? Moet de insert eerst op de slave klaar zijn voordat er een 'ack' terug gaat? Of vind de ack al plaats als de insert op de master heeft plaatsgevonden? En de gebruikers dus geen performance verlies zullen merken?

Indien er geen performance verlies zal zijn door een 2e server als slave te draaien, dan wordt dat mijn keuze en zal ik de backup vanuit de slave draaien.

Echter, als de master vertraagd gaat worden omdat de slave niet snel genoeg is, dacht ik aan:
- Slave koppelen aan master, backup maken op de slave, slave ontkoppelen van master.
- 24 uur later bovenstaande herhalen. Is dit aan/af te raden?

Of zijn er nog andere veel betere opties?

Alle reacties


  • Merethil
  • Registratie: December 2008
  • Laatst online: 07:11
c-nan schreef op donderdag 11 maart 2021 @ 15:59:
Ik heb een enkele (dus geen master-master, of master-slave) MySQL (InnoDB) server welke redelijk groot is en zwaar wordt belast. Ik heb de resources niet om een server ernaast te plaatsen om te clusteren. Ik kan hooguit een klein server ernaast draaien en dan in master-slave mode, echter zal de slave de master niet kunnen bijbenen.

Om een backup te maken wordt de database nu dagelijks gestopt, backup gemaakt en weer gestart. Dat is geen ideale situatie. Het liefst maak ik een backup zonder dat de gebruikers daar iets van merken.

Als ik een 2e server er naast zet (met veel minder resources, maar wel voldoende storage) en in master-slave draai. Hoe werkt het dan met inserts/updates? Moet de insert eerst op de slave klaar zijn voordat er een 'ack' terug gaat? Of vind de ack al plaats als de insert op de master heeft plaatsgevonden? En de gebruikers dus geen performance verlies zullen merken?

Indien er geen performance verlies zal zijn door een 2e server als slave te draaien, dan wordt dat mijn keuze en zal ik de backup vanuit de slave draaien.

Echter, als de master vertraagd gaat worden omdat de slave niet snel genoeg is, dacht ik aan:
- Slave koppelen aan master, backup maken op de slave, slave ontkoppelen van master.
- 24 uur later bovenstaande herhalen. Is dit aan/af te raden?

Of zijn er nog andere veel betere opties?
https://serversforhackers.com/c/mysqldump-with-modern-mysql hier wordt uitgelegd dat je gewoon een backup kan maken van een draaiende server (alleen met InnoDB engine) door
code:
1
--single-transaction
toe te voegen aan je mysqldump.
Dan hoef je geen gekke dingen te doen om je backup te draaien terwijl je server aanstaat, en heb je dáár die slave dus niet voor nodig.

Deze manier locked geen tabellen en daardoor zouden je gebruikers er geen last van mogen hebben.

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:01

Hero of Time

Moderator LNX

There is only one Legend

Clusters kan je ook opzetten middels transactielogs/binlogs. Hiervoor moet je wel de extra storage hebben en zorgen dat de secundary de transacties snel genoeg oppakt en uitvoert.

Commandline FTW | Tweakt met mate


  • syl765
  • Registratie: Juni 2004
  • Laatst online: 05-03 08:42
Kijk eens naar Xtrabackup, hiermee kun je van een live database een backup maken naar een andere server.

https://www.percona.com/d...in/creating_a_backup.html

Je kan dit ook pipen naar ssh of nc zodat je dit naar een andere server kan sturen.

[Voor 42% gewijzigd door syl765 op 13-03-2021 18:50]



Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee