2011-06-24 14 views
9

Używam HSQLDB w trybie wbudowanym.HSQLDB - który jest głównym plikiem bazy danych

„jdbc: hsqldb: file: abc \ TESTDB;

po utworzeniu bazy danych abc folder ma następujące pliki

TESTDB.lck TESTDB.script TESTDB.log TESTDB.properties

mój aplikacja działa poprawnie

Ale moje pytanie brzmi, który jest głównym pliku bazy danych między wyżej wymienione pliki?

lub główny plik bazy danych jest przechowywany w innej lokalizacji?

Odpowiedz

5

Plik zawierający rzeczywiste dane może nie istnieć w twoim folderze z różnych powodów - szczególnie jeśli używasz tabel w pamięci lub niezbytych w pamięci podręcznej. HSQLDB używa różnych plików znalezionych w folderze roboczym z różnych powodów. Możesz przeczytać więcej o ich celu tutaj: HSQLDB Reference.

I parafrazując niektóre z bardziej istotnych informacji:

Plik skryptu zawiera definicji tabel i innych obiektów bazy danych , plus dane dla niewyspecjalizowanych buforowane tabelach . Plik dziennika zawiera ostatnie zmiany w bazie danych . Plik danych zawiera dane dla buforowanych tabel, a kopia zapasowa pliku jest zapinaną kopią zapasową ostatniego znanego spójnego stanu pliku danych . Wszystkie te pliki są niezbędne i nigdy nie powinny być usuwane. Jeśli baza danych nie ma tabel buforowanych, pliki test.data i test.backup będą nieobecne w postaci . Oprócz tych plików , baza danych HSQLDB może łączyć się z dowolnymi sformatowanymi plikami tekstowymi , takimi jak listy CSV , w dowolnym miejscu na dysku.

Podczas pracy "testowej" bazy danych jest , plik test.log jest używany do zapisywania zmian wprowadzonych w danych. Ten plik został usunięty przy normalnym SHUTDOWN. W przeciwnym razie (z nienormalnym wyłączeniem ) plik ten jest używany przy następnym uruchomieniu w celu ponownej zmiany. Plik test.lck w wersji jest również używany do rejestrowania faktu, że baza danych jest otwarta. Zostało to usunięte przy normalnym WYZWALANIU. W niektórych okolicznościach plik test.data.old jest tworzony i usuwany później.

+0

Proszę poprawić. Nie ma pliku testdb.data, ponieważ ma on tylko domyślne tabele MEMORY i brak tabel CACHED. Razem wszystkie jego pliki tworzą bazę danych. – fredt

+0

Wskazałem mu plik, który zawierałby rzeczywiste dane, jak wskazano w jego pytaniu. Jednak zredagowałem swoją odpowiedź, aby wyjaśnić, do czego służą różne pliki w HSQLDB. – Perception

+0

+1 za ulepszenie. Jego dane znajdują się w plikach skryptów i dzienników i nie wejdą do pliku danych, ponieważ ma on tylko tabele pamięci. – fredt

5

.script zawiera wszystkie instrukcje do tworzenia tabel, zmieniać je i wstawić dane.Ten plik jest tworzony podczas używania hsqldb w pamięci. (Tak, powiedziałbym, że to jest baza danych) przeciwnym razie baza danych jest przechowywana w .data jak inni już powiedział

.lck jest plik blokady przez który hsqldb wie, czy w bazie danych jest zablokowany przez proces. Zwykle ten plik jest dostępny tylko podczas działania programu i jest automatycznie usuwany po zatrzymaniu programu.

.log zawiera wewnętrzne sprawozdania dziennika prowadzenia transakcji na przykład, a niektóre punkty popełnić lub wycofania.

.properties zawiera właściwości, z którymi hsqldb jest inicjowany (lepiej nic nie zmieniać tam, jeśli nie wiesz co robisz). Nie należy tego mylić z konfiguracją jednostki trwałości.

Pozdrawiamy

+0

dzięki peshkira. Ponieważ utworzone tabele znajdują się w MEMORY, myślę, że jedynym plikiem skryptu jest plik DB i nie ma pliku .data (ponieważ nie używam tabel CACHED) – Vivek

Powiązane problemy