2014-06-24 9 views

Antwort

3

Verwenden Sie den Befehl BACKUP DATABASE TO. Hier

ist ein Link zu der Dokumentation:

HSQLDB System Management Documentation

ich nicht getestet haben, aber ich glaube, es ist etwas entlang der Linien von:

String backup = "BACKUP DATABASE TO " + "'" + filePath + "' BLOCKING"; 

PreparedStatement preparedStatement = connection.prepareStatement(backup); 

preparedStatement.execute(); 

Sie wollen werden wickle es natürlich in einen try-catch-Block.

Soweit die Wiederherstellung der Datenbank geht, denke ich, dass Sie dies ausführen müssen, während die Datenbank mit der DbBackupMain-Anwendung offline ist. So würden Sie diesen Befehl in der Befehlszeile eingeben:

java -cp hsqldb.jar org.hsqldb.lib.tar.DbBackupMain --extract tardir/backup.tar dbdir 
+0

mit 'DbBackupMain', kann ich den lokalen Pfadnamen in ** tardir * angeben * Platzhalter? Ich möchte es an einem bestimmten Ort. Ich habe die Datenbank ** HSQL ** in D: \ Database \ hsqldb \ path extrahiert und meine Datenbank befindet sich in D: \ Database \ HSQLDatabase \ path. Wie kann ich dies angeben, um eine Sicherung zu erstellen? in D: \ Datenbank \ Backup \ diesen Pfad? Bitte helfen Sie – Bhat

+0

mithilfe der 'PreparedStatement' Ausführung Backup-Erstellung. Aber es erstellt die mehreren Kopien im angegebenen Pfad. Wie ändere ich, um das existierende Update zu aktualisieren? Damit ich ein Exemplar der Backup-Datei – Bhat

2

Jede HyperSQL Datenbank einen Katalog genannt wird. Abhängig davon, wie die Daten gespeichert sind, gibt es drei Arten von Katalogen.

Typen von Katalogdaten:

mem: vollständig im RAM gespeichert - ohne Persistenz über das Leben des JVM-Prozess

Datei:

in Dateisystem-Dateien gespeichert

res: in einer Java-Ressource wie einem Jar gespeichert und immer nur lesbar

Sichern Sie einen laufenden Katalog, rufen Sie eine JDBC-Verbindung ab, und geben Sie in SQL einen BACKUP DATABASE-Befehl aus. In seiner einfachsten Form sichert das folgende Befehlsformat die Datenbank als einzelne .tar.gz-Datei im angegebenen Verzeichnis.

BACKUP DATABASE TO <directory name> BLOCKING [ AS FILES ] 

Der Verzeichnisname muss mit einem Schrägstrich als ein Verzeichnis zu unterscheiden, und die ganze Zeichenfolge in einfachen Anführungszeichen wie so sein muss: ‚subdir/nesteddir /‘.

Um einen Offline-Katalog zu sichern, muss sich der Katalog im heruntergefahrenen Zustand befinden. Sie werden einen Java-Befehl wie

java -cp hsqldb.jar org.hsqldb.lib.tar.DbBackupMain --save tardir/backup.tar dbdir/dbname 

ausführen. In diesem Beispiel hat die Datenbank den Namen dbname und befindet sich im Verzeichnis dbdir. Die Sicherung wird in einer Datei namens backup.tar im tardir-Verzeichnis gespeichert.

Dabei ist tardir/backup.tar ein Dateipfad zur Datei * .tar oder * .tar.gz, die in Ihrem Dateisystem erstellt werden soll, und dbdir/dbname ist der Dateipfad zum Basisnamen der Katalogdatei.

Sie verwenden DbBackup in der Befehlszeile Ihres Betriebssystems zu Wiederherstellen einen Katalog von einem Backup.

java -cp hsqldb.jar org.hsqldb.lib.tar.DbBackupMain --extract tardir/backup.tar dbdir 

wo tardir/backup.tar einen Dateipfad TAR zum * oder * tar.gz-Datei zu lesen, und dbdir ist das Zielverzeichnis der Katalogdateien in zu extrahieren. Beachten Sie, dass dbdir einen Verzeichnispfad ohne den Basisnamen der Katalogdatei angibt. Die Dateien werden mit den in der TAR-Datei gespeicherten Namen erstellt. Weitere Details refer

+0

wirklich gut verwalten kann !!! – Xelian

0

So in Java + SPring + JdbcTemplate

Backup (On-line):

@Autowired 
public JdbcTemplate jdbcTemplate; 

public void mainBackupAndRestore() throws IOException { 
    ... 
    jdbcTemplate.execute("BACKUP DATABASE TO '" + sourceFile.getAbsolutePath() + "' BLOCKING"); 
} 

Dies wird .properties, .scripts und .lobs Datei speichern ein tar in sourceFile.getAbsolutePath().

Restore:

DbBackupMain.main(new String[] { "--extract", baseDir.getAbsolutePath(), 
        System.getProperty("user.home") + "/restoreFolder" }); 

Diese Dateien von baseDir.getAbsolutePath erhalten wird() und wird sie in Userhome/restoreFolder setzen, wo Sie, wenn alles in Ordnung ist wieder herstellen zu überprüfen. Lobs enthält Lob/Blob-Daten, Skripte enthält ausgeführte Abfragen.

enter image description here