Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

MySQL backup opties

Pagina: 1
Acties:

Vraag


  • c-nan
  • Registratie: juni 2008
  • Laatst online: 18:51
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: 14:21
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: 12:09

Hero of Time

Moderator NOS

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-05 20:44
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]



Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True