2011-06-24 13 views
9

estoy usando HSQLDB en el modo incrustado.HSQLDB - que es el archivo de base de datos principal

"jdbc: hsqldb: file: abc \ TESTDB;

después de crear la base de datos de la carpeta ABC ha siguientes archivos

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

mi la aplicación funciona correctamente

Pero mi pregunta es cuál es el archivo de base de datos principal entre los archivos enumerados anteriormente?

o el archivo principal de la base de datos se almacena en alguna otra ubicación?

Respuesta

5

Es posible que no exista en su carpeta un archivo que contenga sus datos reales por varias razones, especialmente si está utilizando tablas en memoria o no almacenadas en caché. HSQLDB usa los diversos archivos que encontraste en su carpeta de trabajo por una variedad de razones. Puede leer más sobre su propósito aquí: HSQLDB Reference.

parafraseo parte de la información más relevante:

El archivo de script contiene la definición de mesas y otros objetos de la base , además de los datos de las tablas sin almacenamiento en caché. El archivo de registro contiene cambios recientes en la base de datos . El archivo de datos contiene los datos para las tablas en caché y el archivo de copia de seguridad es una copia de seguridad comprimida del último conocido estado consistente del archivo de datos . Todos estos archivos son esenciales y nunca deben eliminarse. Si la base de datos no tiene tablas almacenadas en caché, los archivos test.data test.backup y no estarán presentes. Además de esos archivos , la base de datos HSQLDB puede vincular a cualquier archivo de texto con formato , como listas de CSV , en cualquier lugar del disco.

Mientras que la base de datos "de prueba" es operativa, se utiliza un archivo test.log para escribir los cambios realizados en los datos. Este archivo se elimina a un SHUTDOWN normal. De lo contrario (con el apagado anormal de ) este archivo se utiliza en el siguiente inicio de para rehacer los cambios. Un archivo test.lck también se utiliza para registrar el hecho de que la base de datos está abierta. Esto se elimina a una APAGADO normal. En algunas circunstancias, se crea y borra un test.data.old posteriormente.

+0

Corrija la distorsión. No hay un archivo testdb.data porque solo tiene las tablas MEMORY predeterminadas y las tablas CACHED. Juntos, todos sus archivos componen la base de datos. – fredt

+0

Lo estaba apuntando al archivo que contendría datos reales, como se indica en su pregunta. Sin embargo, edité mi respuesta para dejar más claro para qué son los diversos archivos en HSQLDB. – Perception

+0

+1 de mejora. Sus datos están en archivos de script y de registro y no entrarán en el archivo de datos porque solo tiene tablas de memoria. – fredt

5

.script contiene todas las instrucciones para crear las tablas, modificarlos e insertar los datos.Este archivo se crea cuando utiliza hsqldb en la memoria. (Por lo que diría que este es su base de datos) De lo contrario la base de datos se almacena en .data como otras personas ya se ha dicho

.lck es el archivo de bloqueo mediante el cual hsqldb sabe si la base de datos está bloqueado por un proceso. Usualmente tiene este archivo solo mientras su programa se está ejecutando y se borra automáticamente cuando detiene el programa.

.log contiene declaraciones de registro interno de funcionamiento de las transacciones, por ejemplo, y algunos cometen o puntos de reversión.

.properties contiene las propiedades con las que se inicializa hsqldb (mejor no cambiar nada allí si usted no sabe lo que está haciendo). Esto no debe confundirse con la configuración de la unidad de persistencia.

saludos cordiales

+0

gracias peshkira. Como las tablas creadas residen en MEMORY, creo que el único archivo de script es el archivo DB y no hay ningún archivo .data (ya que no estoy usando tablas CACHED) – Vivek

Cuestiones relacionadas