这是最长的章节,而且理应如此:在仔细规划之后,安装本身应该是一项轻松的任务。
您将使用 Ingres 环境变量来确定进一步元素(软件本身除外)的放置位置,这些元素属于 Ingres 安装。这些变量与II_SYSTEM不同,它们不是 shell 变量,而是存储在文件中的 Ingres 参数。其中一些可以在安装后的任何时间更改,但更改其他变量的值则需要完全重新安装。稍后您将看到哪些变量具有这种“稳定”的性质。
在安装过程中,您可以选择手动设置这些变量,或者让安装程序将它们设置为默认值(快速安装 选项)。
在下文中,我们将逐一介绍相关的 Ingres 环境变量,并了解它们各自的用途。如果您将计划的值写在纸上可能会有所帮助。您可以在入门指南中找到安装工作表,您可以打印出来并用于此目的。
Ingres 使用一个安装范围的事务日志文件来记录对任何数据库所做的所有更改的信息。这些信息大致包括:
已更新或已删除行的前镜像。这些对于回滚未提交的事务是必要的,如果需要(撤消)。
对数据库对象所做的更改。记录它们使得在系统崩溃后,如果新数据在崩溃之前没有写入数据库,则可以重做已提交的事务。
事务日志位于II_LOG_FILE/ingres/log目录中,其中II_LOG_FILE是一个 Ingres 环境变量。日志文件的名称是ingres_log.
快速安装 创建一个最小可能大小的日志文件,即 16 Mb。即使在开发系统中,这样的日志文件也可能不够大。如果您有空闲磁盘空间并选择手动安装(在这种情况下,您可以指定日志的大小),请将其设置为更大的值。
日志文件的位置和大小都可以在安装后的任何时间更改。执行此操作的方法在系统参考指南中描述。
您还需要决定是否需要双日志记录(镜像事务日志)。如果日志因任何原因损坏,Ingres 将停止,您必须从备份中恢复数据库。因此,在生产系统中,几乎必须对日志进行某种类型的 RAID 保护,或者通过 Ingres 对其进行镜像。如果您使用双日志记录,则日志文件的副本可以在II_DUAL_LOG/ingres/log下找到。它的名称是dual_log.
在开发或测试环境中,镜像日志并非总是必要的。
在一个 Ingres 安装中可以有任意数量的数据库。另一方面,一个数据库由不同类型的文件组成。这些是:
控制文件:它存储有关数据库的某些基本信息。安装完成后,您可以使用 infodb 命令查看此信息。
数据文件:每个系统表、用户表以及每个索引都放在单独的文件中。
检查点文件:检查点是 Ingres 用于数据库备份的术语。一个备份可能由多个文件组成。
转储文件:Ingres 中可能进行在线备份,也就是说,数据库可以在备份程序运行时使用。因此,数据库可能在检查点操作期间发生更改。Ingres 为了能够将数据库恢复到备份开始时的状态,会保存备份过程中已更改的那些数据块(页面)的前镜像。这些页面保存在转储文件中。
日志文件:Ingres 会不时地将已提交事务的记录从日志文件写入日志文件(至少这是默认行为:日志记录可以在数据库或表级别关闭)。日志记录活动的频率是写入事务日志的信息量的可调函数。日志记录可以保护安装免受介质故障的影响:如果包含数据库的磁盘崩溃,您可以使用数据库的备份(检查点)以及在该检查点之后创建的日志来恢复数据库的最后(刚好在故障发生之前)提交状态。如果您丢失了日志磁盘,您可以恢复数据库在写入最后一个日志文件时的最后提交状态。
工作文件:Ingres 如果需要对大量数据进行排序,则会在磁盘上创建临时文件。
构成数据库的文件根据其类型驻留在不同的目录中。这些目录通过 Ingres 位置间接指定。
有五种位置类型:
数据位置:数据库数据文件的位置。一个数据库可以有多个数据位置(向数据库添加数据位置称为扩展数据库)。但是,每个数据库都有一个主数据位置。系统表和控制文件始终驻留在主位置。创建表时,如果您不指定要放置它的位置,它将放置在数据库的主数据位置。
检查点位置:默认情况下,备份在此处创建。然而,并非必须如此:ckpdb 命令允许您为备份指定任意位置,这样您也可以将数据库直接检查点到磁带上。
转储位置:用于转储文件。
日志位置:这是数据库的日志文件所在的位置。
工作位置:Ingres 在此位置创建临时排序文件。与数据位置一样,一个数据库可以有多个工作位置。如果是这种情况,默认情况下,Ingres 将所有工作位置用于每个排序操作。
让我们看看这些位置在实践中是如何工作的。假设我们有一个名为 test 的数据库,具有以下位置:
DATALOC1:数据位置 -->/opt
CKPLOC:检查点位置 -->/opt
DMPLOC:转储位置 -->/opt
JRNLLOC:日志位置 -->/opt
WORKLOC1:工作位置 -->/opt
test 数据库的每个位置都指向/opt目录。数据库的元素进入这些目录:
数据文件/opt/ingres/data/default/test
检查点文件/opt/ingres/ckp/default/test
转储文件/opt/ingres/dmp/default/test
日志文件/opt/ingres/jnl/default/test
临时文件/opt/ingres/work/default/test
现在假设我们将数据库扩展到以下位置:
DATALOC2:数据位置 -->/opt
DATALOC3:数据位置 -->/disk2
WORKLOC2:工作位置 -->/disk2
数据库有效地扩展到以下目录:
数据文件/disk2/ingres/data/default/test
临时文件/disk2/ingres/work/default/test
DATALOC2指向/opt,就像DATALOC1一样。要在位置DATALOC2中创建的表将进入/opt/ingres/data/default/test,与在位置DATALOC1中创建的表所在的目录相同。
从示例中可以明显看出,我们可以为DATALOC1, DATALOC2, CKPLOC, DMPLOC, JRNLLOC和WORKLOC1.
仅创建一个位置。
总结关于位置的要点:
每个位置都指向目录树的根目录。
多个位置可以指向同一个目录。
一个位置可以用于存储不同类型的文件。
4.4. iidbdb 数据库
每个 Ingres 安装都有一个名为 iidbdb 的主数据库。Ingres 将有关用户、位置和用户数据库的信息存储在此数据库中。iidbdb 由安装程序创建。
您必须在安装期间设置 iidbdb 的位置。这些位置存储在以下 Ingres 环境变量中:II_DATABASE
:数据位置II_CHECKPOINT
:检查点位置II_DUMP
:转储位置II_JOURNAL
:日志位置II_WORK
:工作位置
![]() | 如果您在创建用户数据库时没有覆盖这些变量,那么它们也决定了每个用户数据库的默认位置。有关更多信息,请参阅创建和销毁数据库。您必须在安装期间设置 iidbdb 的位置。这些位置存储在以下 Ingres 环境变量中:, :数据位置, :检查点位置, :转储位置更改:日志位置或 |
的值需要完全重新安装 Ingres。
您必须在安装期间设置 iidbdb 的位置。这些位置存储在以下 Ingres 环境变量中:4.5. II_DATABASE确定 iidbdb 的数据位置。它的默认值是$II_SYSTEM您必须在安装期间设置 iidbdb 的位置。这些位置存储在以下 Ingres 环境变量中:(在手动安装的情况下,您可以为确定 iidbdb 的数据位置。它的默认值是).
输入不同的值,而 快速安装 不可避免地将其设置为
:数据位置4.6. II_CHECKPOINT确定 iidbdb 的数据位置。它的默认值是.
包含 iidbdb 的检查点位置的值。默认情况下,它也设置为
检查点的大小与数据库本身的大小大致相同(至少在您修改检查点程序的模板文件之前:正如您将在备份和恢复中看到的那样,这是可能的)。安装程序会执行 iidbdb 的第一个检查点。:数据位置如果您计划将用户数据库的检查点放置在
下,那么您必须在此处提供更多空间。
:检查点位置4.7. II_DUMP:数据位置.
确定 iidbdb 数据库的转储位置。默认情况下,其值等于:检查点位置的值。到安装过程结束时,
:转储位置4.8. II_JOURNAL:数据位置包含 iidbdb 数据库的日志位置的值。它的默认值与
的默认值相同。安装程序执行的第一个检查点会导致第一个小日志文件出现在此处。如果您不为用户数据库使用不同的日志位置,那么:转储位置下所需的可用空间量取决于三个因素:
您是否希望 Ingres 进行日志记录。如果您定期对数据库进行检查点操作,并且不介意丢失自上次检查点以来对数据库所做的更改,则可以关闭日志记录。当然,在没有日志记录的情况下运行生产系统通常是不可接受的。
如果日志记录已打开,则日志区域的增长率由对数据库所做的更改量决定。频繁的大型更新需要在:转储位置.
下占用相当多的空间。第三个因素是您希望保留旧日志文件多长时间。如果在执行检查点操作时,您指示 ckpdb 删除旧检查点,那么之前的日志文件也将被删除。
:日志位置确定 iidbdb 数据库的工作位置。它也默认为:数据位置.
只有当:日志位置也充当用户数据库的工作位置时,才会出现调整工作位置大小的问题。几乎不可能估计此处需要的临时磁盘空间;但是,将最大表的大小乘以三应该可以作为起点。
请记住,一个数据库可以有多个工作位置。如果原始位置变得太小,您可以随时将数据库扩展到更多的工作位置。
除了确定位置的 Ingres 环境变量之外,还有几个您必须在安装期间设置的变量(或者让 快速安装 将它们设置为默认值)。这些是:
II_INSTALLATION:一个两位字符的代码,用于标识安装。一台机器上的每个 Ingres 安装都必须有其自己唯一的安装代码。II_INSTALLATION的默认值是II。一旦设置,就无法更改。
II_NUM_OF_PROCESSORS:机器中的处理器数量。默认情况下,它是1。如果您将其设置为更高的值,Ingres 将在访问数据库缓存时使用自旋锁。如果您不知道什么是自旋锁,请不要担心。重点是将II_NUM_OF_PROCESSORS设置为2如果您有一台多处理器机器。它的值可以在以后随时更改。
II_CHARSET:此变量确定安装中您将创建的所有数据库中存储的所有字符数据的代码集。它的默认值是ISO88591。也许不足为奇的是,在安装后将其更改为不同的值可能会损坏存储在现有数据库中的数据。由于 iidbdb 数据库是由安装程序创建的,如果ISO88591不适合您,您就不应该选择 快速安装。
II_TIMEZONE_NAME:时区名称,默认情况下为NA-PACIFIC。在手动安装期间,您可以从有效代码列表中选择其值。Ingres 将所有日期和时间值以 GMT 格式存储,并根据II_TIMEZONE_NAME在与客户端通信时进行调整。因此,如果您将II_TIMEZONE_NAME设置为不同的值,您将看到数据库中的所有日期时间值都发生更改。因此,在创建第一个用户数据库之前,请将此变量设置为其最终值。
(手动)安装程序会提示您输入另外两个不是 Ingres 环境变量的参数:
系统中预期的并发用户数:默认为32。基于此数字,安装程序设置许多其他参数的值,例如数据库缓存的大小。这些派生的参数稍后可以调整。
SQL-92 兼容数据库:默认情况下,Ingres 数据库在某些方面与 SQL-92 标准不同。例如,未用单引号或双引号保护的对象名称将转换为小写而不是大写。您可以在SQL 参考指南中找到其他差异。
在您决定所有安装参数的值之后,您就知道那些安装后无法更改的变量的默认值是否可以接受。如果可以接受,您可以选择 快速安装。