Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Mysql] Offline - Online DB synchronisatie

Pagina: 1
Acties:

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

MrDummy

Nog steeds gek op anime...

Topicstarter
Ik ben nu even aan het uitzoeken naar makkelijke methoden om databases tussen webserver en laptop zo goed mogelijk te synchroniseren.

Ik heb even gekeken naar verschillende mogelijkheden:

- dump volgens standaard
Eenvoudig via phpmysql beheer dump maken en op andere server db wissen & vervangen door inhoud dump. Echter mijn client is nogal noob op die gebied en worden er snel fouten gemaakt. Dat kan ik niet doen. Ik zal het dus iets moeten maken dat synchronisatie automatisch via pagina moeten lopen.

- dump met extra functies
Hier is andere restore beschrijving:
http://tutorials.zen-cart.com/index.php?article=103

- methode 1
Elke database krijgt speciale kolom sync_stamp zodat veranderingen te zien zijn. Op beide servers is eigen sync_stamp db aanwezig zodat men aan de hand van laatste timestamp de alleen aangepaste records en nieuwe records gebruikt wordt. Verwijderde records worden als query code opgeslagen in aparte DB.

- methode 2
Speciale query DB die alle handelingen en veranderingen op tijdsvolgorde bijhoudt. Een soort log file zeg maar. Door de query db te draaien op andere DB wordt dat meteen bijgewerkt tot de laatste query toe. Uiteraard in tijdsvolgorde, nooit random.

- methode 3
Mysql functie Sync gebruiken. Geen idee hoe dat werkt op offline versie omdat je maar op 1 plaats tegelijk kan. Zo kan je niet zomaar DB van webserver direct benaderen vanuit laptop, het is namelijk server side.

- sync manier 1
De sync draait vanaf webserver en wordt ingeladen in html formulier (het wordt opgebouwd), en de form url is gelijk localhost locatie zodat DB gegevens meteen weer naar localhost gaat. De sync gaat dus via de browser. Via Javascript kan de proces automatisch laten verlopen tussen beide servers door middel van sync pagina herladen en uitvoeren.

- sync manier 2
Men kan ook bestand maken a la mysqldump en die op de geheime webserver plek opslaan. De bestand wordt met behulp van cURL functie binnengehaald en komt dus mooi op de laptop schijf te staan. Vervolgens terug naar webserver kant en de db bestand vernietigd. Dan wordt de bestand op laptop geopend en uitgevoerd als mysql query dump.

- sync manier 3
Mogelijk kan er veel dingen gedaan worden met cURL vanuit laptop, door speciale pagina te benaderen en zo snel gegevens binnenhalen en opslaan.

Het is bedoeling om sync eenvoudig te laten verlopen voor de client dat weinig verstand heeft.
Ik kan strict eenzijdige sync maken zodat wijzigingen op laptop niet van belang is, het is alleen voor offline browsen van database. Laptop aan, gegeven lezen, meer is niet nodig.

Je mag mening geven over verschillende methoden, en ook wat je zelf hebt gedaan met je eigen database tussen je webserver en je laptop.
Welke methoden heb je zelf op toegepast.

Je mag voorbeeld scripts of websites met hun script oplossingen aanwijzen.
Alvast dank, en hoef ik niet lang uitzoeken voor de geschikte oplossing. :)

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-11 09:49

Bosmonster

*zucht*

Kun je niet gewoon geautomatiseerd een DB dump downloaden? Gezipt is dat toch bijna niks. En je kunt de hele DB gewoon overschrijven (eventueel DB kopietje maken als 'recover' mogelijkheid).

Stuk makkelijker denk ik dan wat je nu allemaal van plan bent.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waar hoort mijn topic?
Dit lijkt me meer iets voor PRG (en misschien wel SEA)

WEB >> PRG

Bij nader inzien maar even in SEA geparkeerd, gezien je het meer over de 'methode' wil hebben dan over code (voor zover ik dat uit je topic haal)
MrDummy schreef op dinsdag 26 februari 2008 @ 16:24:
Je mag voorbeeld scripts of websites met hun script oplossingen aanwijzen.
Alvast dank, en hoef ik niet lang uitzoeken voor de geschikte oplossing. :)
Hier op GoT doen we niet aan kant-en-klare oplossingen; die kun je prima zelf googlen.

[ Voor 64% gewijzigd door RobIII op 26-02-2008 16:35 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

MrDummy schreef op dinsdag 26 februari 2008 @ 16:24:
Ik ben nu even aan het uitzoeken naar makkelijke methoden om databases tussen webserver en laptop zo goed mogelijk te synchroniseren.
Welke kant op? Server => laptop, laptop => server? Of allebei?

Want dat maakt nogal uit, als je online de laatste versie van je local database wilt hebben:
- dump maken (shell_exec + mysql_dump)
- uploaden via PHP
- cURL naar script op je server die de database importeert, bijvoorbeeld door een shell_exec.

Andersom:
- cURL naar script op je server dat de dump uitvoert (shell_exec + mysql_dump)
- download via PHP
- importeren in je local database

Beide kunnen in 1 enkel script, zodat je het maar 1x hoeft te runnnen. Zelf heb ik een hele boel van dit soort administratieve dingen in 1 script staan die ik run via een batch script die eigenlijk alleen maar
code:
1
php mymagicalscript.php
uitvoert via de command line, maar dan kan ik dus via een shortcut op mijn desktop of altijd bij het opstarten het script laten uitvoeren.

Maar als je echt op zoek bent naar complete data integriteit en de data lokaal en online kunnen beide als 'nieuw' worden aangemerkt, wordt het al een stuk lastiger.

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


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

MrDummy

Nog steeds gek op anime...

Topicstarter
Server -> laptop vooral.
Met laptop neemt de client dan mee op pad naar eilanden en hoeft ie niet inet opzoeken, maar gewoon laptop opstarten (met daarop webservertje xampp) en localhost op website komen en zo gegevens bekijken.

Thuis sluit hij laptop aan op netwerk, hij logt in op localhost website en via admin klikt hij op sync data, zodat gegevens met een makkie vanuit webserver gehaald kan worden - inderdaad handigst via cURL - en wordt de DB localhost bijgewerkt. Het moet niet allemaal moeilijk gaan.

Het is eigenlijk voor groot deel php programmeren voor juiste script, ook al vraag ik om verschillende methoden. De methoden zijn om bijwerktijden klein te houden, anders blijft er simpelweg complete DB refresh over zonder gegevens met elkaar te vergelijken.

Mocht hij alsnog aanpassingen te maken, dan worden de aanpassingen gelogd als query sessies in aparte DB opgeslagen. Bij sync naar webserver wordt alleen deze DB uitgevoerd en is webserver weer bij de tijd.

Er werken niet twee personen op 2 plaatsen; offline en online, dat wordt voorgekomen dat beide dbs niet meer kloppen.

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

_Gekkie_

And the cow said: Helloooooow?

Wellicht kun je met een Google-Gears achtige oplossing hier wel meer werk van maken? Daar is die techniek toch voor bedoeld? Ik heb er nog niet het fijne van doorgenomen, maar wat ik er zo zijdelings van gehoord hebt moet dat toch doen wat je wilt... Offline je zaken benaderen en bij het online komen al je zaken `live`-doorvoeren...

Gekkie is a proud member of TheBenny!

Pagina: 1