如何确定我的TimesTen数据库文件应该在哪里?

问题描述

我正在建立一个TimesTen内存数据库,我正在寻找有关应用于数据库持久性文件的存储和位置的指南。

解决方法

TimesTen数据库由两种类型的文件组成: 检查点文件(两个)和事务日志文件(通常至少一个,通常很多)。

要考虑3个条件:

a)数据安全性和可用性(常规存储与RAID)。数据库文件对于数据库的运行至关重要,如果它们不可访问或丢失/损坏,则数据库将无法运行可能会丢失数据。防止这种情况发生的一种方法是使用TimesTen的内置复制来实现高可用性,但是即使这样做,您可能还希望使用某种形式的RAID存储来保护数据库文件。由于性能原因,RAID-1比RAID-5或RAID-6更受青睐。不建议对数据库文件使用NFS存储。

b)容量。两个检查点文件都位于同一目录(数据存储属性)中,因此位于同一文件系统中。每个文件的最大大小可以增加到PermSize +〜64 MB。通常,这些文件的空间是在创建文件时预先分配的,因此不太可能为它们耗尽空间。默认情况下,事务日志文件也与检查点文件位于同一目录中,尽管您可以(几乎总是应该)使用 LogDir 属性将它们放置在不同的位置。事务日志所在的文件系统应具有足够的空间,以使您永远不会用完。如果数据库无法将数据写入事务日志,它将停止处理事务,并且操作将开始接收错误。

c)性能。如果您使用的是传统的旋转磁性介质,则I / O争用是一个重要问题。检查点文件和事务日志文件应存储在单独的设备上,并应与任何其他需要大量I / O活动的文件分开存储。 I / O加载和争用对于SSD存储的考虑较少,而通常与PCIe / NVMe闪存存储无关。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...