[php/mysql] Beste methode van backup tijdens uitvoer v scrip

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een nogal complex php script, het is een administratie programma. Nu zitten er functies in waarin meerdere sql updates, inserts etc worden gedaan. Nu kan het zijn dat ergens halverwege die functie, of een andere functie, er iets misgaat. Bijvoorbeeld een foutieve waarde die is ingegeven door de user (en welke vooraf niet te controleren was).

Hierop heb ik het volgende bedacht, tijdens uitvoeren van het script word er een complete dump van de database gemaakt. Gaat er iets mis tijdens het uitvoer van het script, dan word de database gewist en de gedumpte database terug geplaatst.

Dit is niet handig:
- Als er meer dan 1 users bezig zijn
- Als er een foutje word gemaakt bij de dump (bv te weinig quota)
- Als er een foutje w ord gemaakt bij het terug zetten van de dump
- Het is traag, zeker als de database groter word

Zijn er betere alternatieven om dit te doen?

Acties:
  • 0 Henk 'm!

Verwijderd

Met php5 kan je try en catch commando's gebruiken. Dat scheelt denk ik al een heleboel.

Acties:
  • 0 Henk 'm!

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 25-10-2022

Banpei

Hachiroku on this touge?

Commit van mysql lijkt mij prima werken, moet je transaction based gaan werken. Als het mis gaat doe je dus gewoon een ROLLBACK. :)

AE86 gevonden! | So what I thought I'd do was, I'd pretend to be one of those deaf-mutes.


Acties:
  • 0 Henk 'm!

Verwijderd

Ja: transactions

kan met tables van het type innoDB binnen mysql

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Begrijp ik 't goed, ik aan het begin van de 1e query 'START TRANSACTION;' doe, en na de laatste query 'COMMIT;' of 'ROLLBACK; '

Is dat zo simpel? :?

Acties:
  • 0 Henk 'm!

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 25-10-2022

Banpei

Hachiroku on this touge?

Verwijderd schreef op 22 juli 2004 @ 16:22:
Begrijp ik 't goed, ik aan het begin van de 1e query 'START TRANSACTION;' doe, en na de laatste query 'COMMIT;' of 'ROLLBACK; '

Is dat zo simpel? :?
Precies. En je tabellen moeten innodb zijn. :)

AE86 gevonden! | So what I thought I'd do was, I'd pretend to be one of those deaf-mutes.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
omg hoe simpel kan het zijn :7
Pagina: 1