# Datenverlust bei DB-Unterbrechung?



## gondor (1. Dez 2004)

hallo liebe java-gemeinde!

ich habe mir folgende frage gestellt:

was passiert eigentlich, wenn mitten in meiner LOAD-query (lese aus einem file direkt in die tabelle) die connection unterbrochen wird? wie kann ich sicherstellen, dass alle daten auch in die db eingetragen wurden und die struktur erhalten beibt? bei einem connection bzw. timeout soll er den versuch des einlesen verwerfen und den vorzustand einnehmen...

geht das über transaktionen? wie ist das zu realisieren?

danke fü tipps, links und hilfestellungen


----------



## Bleiglanz (1. Dez 2004)

schau in die Doku zu deiner Datenbank, für LOAD oder ähnliche Befehle ist der Transaktionsmechanismus oft ausgeschaltet 

Welche DB?

Bei DB2 schreibt LOAD ohne sich um Constraints zu kümmern, ohne Protokoll und so weiter, wenn du da 

LOAD FROM datei INSERT INTO tab FOR EXCEPTION ausnahmetabelle

schreibst, dann werden dabei keine Transaktionen o.ä. verwaltet, denn dieses LOAD benutzt überhaupt kein SQL!


----------



## gondor (1. Dez 2004)

ok, hab wohl die daten vergessen:

die DB ist eine mySQL: 4.0.20a

also, steuert mysql die transaktionen und nicht java?

und ist das von jedem sql-befehlt abhängig?

es kann ja auch beim ändern eines values (in die DB) eine unterbrechnung geben, wobei 
dann ja die query nicht LOAD... sondern Select * from ... set value = new_value... lautet.

danke für die hilfe...


----------



## Bleiglanz (1. Dez 2004)

hast du überhaut transaktionen aktiviert (dbinno oder wie das heisst)?

>>also, steuert mysql die transaktionen und nicht java? 

nein, das machst du mit java; bei DB2 war der LOAD Befehl nur eine Ausnahme

>>und ist das von jedem sql-befehlt abhängig?

ja/nein/teilweise: würde mich wundern, wenn man drop database oder ALTER TABLE mit rollback wieder aufheben könnte, müsste man aber mal versuchen...

kann nur sagen RTFM, würde jetzt mal dagegen wetten, dass LOAD mit Rollback zurückgenommen werden kann


----------



## gondor (2. Dez 2004)

es gibt TST- und NTST-Tabellen...

mysql-tabellentypen: 

http://dev.mysql.com/doc/mysql/de/Table_types.html

transaktionen:

http://dev.mysql.com/doc/mysql/de/ANSI_diff_Transactions.html

lese mich mal durch thema und komme auf diesem thread zurück, sobald sich wieder neue fragen ergeben haben 

vielen dank bisher...


----------

