Новая HSQLDB подвержена повреждению данных? - PullRequest
3 голосов
/ 10 февраля 2012

Я хочу использовать встроенные таблицы на основе файлов HSQLDB в моей производственной системе, но я слышал, что раньше у нее были некоторые проблемы с повреждением данных.Поэтому мой вопрос - уязвимы ли его новые версии (2.2.8) к проблемам с повреждением данных, например, когда машина потеряла питание или был остановлен процесс Java?И есть ли варианты конфигурации, которые помогут избежать этого?

Ответы [ 2 ]

5 голосов
/ 10 февраля 2012

HSQLDB предназначен для восстановления базы данных после сбоя компьютера или Java-процесса.

С годами упорство улучшилось. В настоящее время нет известных проблем. При настройках по умолчанию в случае сбоя вы можете потерять только те изменения, которые были внесены в базу данных за последние полсекунды. И вы можете уменьшить это до нуля, если хотите.

В любом случае, для повышения безопасности рекомендуется использовать встроенные функции резервного копирования базы данных. HSQLDB опирается на JVM fsync () и другие методы, которые взаимодействуют с ОС. Как правило, они надежны, но в какой-то момент могут показывать сбой.

4 голосов
/ 16 февраля 2013

Да, hsqldb может повредить данные даже без внезапно умирающего процесса.Будьте готовы к созданию автоматической системы резервного копирования / восстановления, а иногда и инструментов для исправления поврежденных данных.

Мой опыт использования HSQL:

  • Неуникальные значения в столбце, заданном как уникальные.(hsql 1.8).
  • Повреждены все символы, отличные от ascii, во всех столбцах varchar (hsql 2. что-то, если память служит).
  • Повреждены все значения во всех столбцах отметок времени.(последние hsql)

Тем не менее, это довольно хорошая база данных большую часть времени .Если вы присматриваете за ребенком только один или два раза, вы вряд ли столкнетесь с проблемами коррупции.

...