由于两次断电,我们的产品运行时存在一些问题。
H2数据库是1.3.x版本,但我们打算更新一些内容以提高弹性和持久性,特别是减少数据库损坏的可能性,因为我们的客户端对数据库崩溃感到不安并需要一个解决方案才能购买专有的昂贵资源执照。
这是一个24/7的政府卫生系统,在最坏的情况下同时进行20次交易。数据库是4GB,它是4个月大,所以它会变大。
服务器是Windows 2012,我们可以使用新的弹性文件系统格式。作为最后一个选项,我们将安装一个成熟的ZFS文件系统的BSD。
我们会使用MVStore = FALSE将H2更新为1.4.x; MVCC = FALSE; LOCK_TIMEOUT = 10000; LOCK_MODE = 3; AUTOCOMMIT = ON; Delay_transaction = -1?并尝试CHECKPOINT SYNC和/或在每次插入更新删除操作时调用fsync()。
由于fsync()(如果它在Win2012上运行)可能会减慢写入操作,因此不会丢弃使用SSD。
Java EE应用程序在同一台服务器上运行,因此最好以嵌入模式运行?
我们可以使用带有群集副本的第二台服务器,因为我们需要进行一些在线备份,但我认为我们可以通过一种自主的方式来“选择...偏移”。
我们需要最稳定可靠的方式来操作,没有数据库崩溃。在此文件大小下,某些HDD可能需要更长时间,因此使用SPLIT是另一种选择。
服务器是4核xeon,内存为16GB,因此我们可以改进缓存并使用G1CC垃圾收集。
另一个选择是使用一个连接队列池来一次保证一个事务。
有一些像postgreSQL这样的autovacuum选项吗?
因此,我们需要帮助才能做出最佳选择。