为什么在Liferay的生产环境中不应该使用HSQLDB?

3

我已经安装了liferay作为一个小的内部门户网站,将有200人使用。

目的是让每个人都能存储数据并参与论坛。

在Liferay安装指南中,我看到HSQLDB不应该用于生产环境。

我想知道它是否适用于我的情况(小流量),如果我仍然使用它会遇到什么问题。


只是想让你知道:到目前为止仍在使用HSQLDB,没有出现任何问题。 - Asimov4
2个回答

2
由于HSQLDB非常灵活,因此它可以用在非常快速但不太适合数据持久化的配置中。一些供应商已经配置了这样的HSQLDB,以进行演示。
通常,如果您使用HSQLDB 1.8.1.3或2.1.x(取决于Liferay使用的哪个主要版本),并将其作为服务器(而不是进程)运行,则应该可以满足您的需求。
通过修改应用程序中的HSQLDB连接URL,可以非常简单地进行配置更改。
您可以添加数据库备份过程以获得最大可靠性。
根据存储的数据量,您可能希望切换到基于磁盘的表,这比基于内存的表消耗更少的内存。 这可以在现有的数据库服务器上完成。

1

这不是权威的答案,因为我不知道Liferay做出这个决定的原因。但我可以告诉你,在过去(2.0版本之前),HSQLDB存在相当严重的数据损坏问题,这对于生产系统来说是致命的。根据HSQLDB的创建者所说,这些问题现在应该得到解决。也许Liferay的文档还没有更新?


公平地说:这些故障大多是由于用户没有正确阅读手册造成的。如果引擎被正确关闭,几乎不会出现任何问题。 - user330315
1
可能是真的,但我不记得上一次需要担心正确关闭Oracle数据库以防止数据损坏的时间了。我只是在推测,这可能是Liferay建议不要使用HSQLDB的一个很好的理由,因为他们对这样的支持案例不感兴趣... - Lukas Eder
1
在最新版本中,异常进程终止或崩溃只会导致最后半秒钟(如果关闭写入延迟,则为零)的数据丢失。几年前并非总是如此。 - fredt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接