Toon posts:

[JAVA/JDBC/MYSQL]eenvoudig backup en restore

Pagina: 1
Acties:

Verwijderd

Topicstarter
Je zal het wel kennen: applicatie(java), database(mysql), connectie(jdbc)

Momenteel krijg heb ik een backup functionaliteit dmv cvs bestanden. Dus backup is het vullen van een aantal bestandjes. Het restoren is de database leeghalen en dan alles opnieuw invoeren.
Die werkt wel goed. Maar het lijkt mij dat het beter kan. Verder werkt de .update(ook de batch variant) van preparedstatement niet al te snel omdat invoeren per record niet al te snel gaat. Weet iemand een betere optie??

PS. ps normaal vergelijk ik alleen de backup met de huidige database en vervang alleen die records. Dit gaat wel snel(zijn in verhouding veel minder records). Maar ingeval van nood moet er ook een echt een totale restore gedaan kunnen worden

  • momania
  • Registratie: Mei 2000
  • Nu online

momania

iPhone 30! Bam!

Zeg ik iets raars als ik zeg dat ik geen flauw idee heb waar je het over hebt en wat je vraag/probleem nu precies is :?

Neem je whisky mee, is het te weinig... *zucht*


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Een update per record? Volgens mij past een update statement juist alles aan wat aan een bepaalde conditie voldoet (de WHERE) en kun je daar niet veel aan optimaliseren. Behalve geen indexen hebben en zo, maar dat is geen optie lijkt me. :P

http://dev.mysql.com/doc/refman/5.0/en/update.html

Fat Pizza's pizza, they are big and they are cheezy


  • NetForce1
  • Registratie: November 2001
  • Laatst online: 23-03 10:29

NetForce1

(inspiratie == 0) -> true

Volgens mij kent mysql een dump-functionaliteit die de inhoud van de database als sql-script dumpt. Het makkelijkst lijkt mij om een cron-job aan te maken die deze dump bijv iedere nacht aanroept (en het resultaat evt. doorgeeft aan gzip om de grootte wat te beperken).

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Dat lijkt mij ook de meest handige optie, want in welke orde grootte praten we als we het hebben over de performance van een backup? Van mij mag een backup namelijk wel even duren, omdat, als het goed is, dat toch niet (vaak) gebeurt. Mocht het gebeuren dat je de backup nodg hebt, denk ik dat het draaien van de query niet het grootste probleem is. (qua tijd)

Fat Pizza's pizza, they are big and they are cheezy


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Waarom wil je backup in je applicatie oplossen? Dat lijkt me een beheer kwestie die niets met je businesslogic te maken heeft? Anywayz, dat moet je ook zelf weten.

Wij hebben het onlangs opgelost door MyAutoBackup te gebruiken: http://www.swordsky.com/ De MySQL db wordt meerdere malen per dag gebackupped en over de lijn getrapt naar een failover server. Werkt erg makkelijk, simpele schedule tool, zonder enige uitleg in 5 minuten up and running.

Verwijderd

Topicstarter
Nouja, update moet insert worden.
Maar verder, je kan inderdaad een backup kan maken met mysql. Maar hoe via jdbc en hoe zet je die terug?

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 08-04 18:25
Ik zou niet weten waarom je dat via jdbc zou willen doen? (En volgens mij kan het ook niet.)
Simpele batchfile, mysqldump -u username -ppassword -h host dbname -r c:/dump.bak, klaar
Kijk eens in hoofstuk 5.9 van de mysql manual zou ik zeggen

[ Voor 10% gewijzigd door sig69 op 03-03-2006 14:40 ]

Roomba E5 te koop


Verwijderd

Topicstarter
Nouja. een "gewone" gebruiker is "dom" dus wil je de backup via de applicatie laten lopen.
Verder hoeft de applicatie ook niet perse op dezelfde pc als de database te lopen.

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 08-04 18:25
True, maar dan nog heeft een "gewone" gebruiker helemaal niks met het backup beleid te maken. Al maak je dagelijks een backup en je laat het binary log gewoon meelopen is er niet zoveel aan de hand.
Tenzij je een soort thuisgebruiker applicatie aan het maken bent of iets dergelijks, dan zou ik me zoiets nog wel voor kunnen stellen, maar dan is het eigenlijk een veredelde save-optie.

Roomba E5 te koop


Verwijderd

Topicstarter
Ik ben misschien niet helemaal duidelijk geweest denk ik.
Het gaat inderdaad om een soort van applicatie waar ALLEEN mensen met geen/weinig verstand van computers aan te pas komen. Er zit een im en export functie op. Het punt zit hem vooral bij het importeren. Er kan allerlei data worden importeerd, in dat proces kan er iets mis gaan. Dus wil ik daarvoor automatisch een backup maken, die ingeval van fouten automatisch wordt terug gezet.
Zoiets zou kunnen door deze transactie pas op het einde te "committen". Maar eigenlijk wil ik wel iets hebben waar "men" later op kan terugvallen, zodat later de automatische backup terug kan worden gezet met een "import all data" functie.

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 08-04 20:00

Robtimus

me Robtimus no like you

De snelheid van inserts / updates kan te maken hebben met auto-commit. Als die op true staat dan wordt na elke transactie gecommit - als je een paar honderd records toevoegt kan dat best wel traag worden.
Probeer dus het volgende eens:
Java:
1
2
3
4
5
Connection c;
...
c.setAutoCommit(false);
// update / insert hier al je records
c.commit();
Is meteen het geheel een atomic transactie.

More than meets the eye
There is no I in TEAM... but there is ME
system specs

Pagina: 1