5. 安装过程

本节将介绍 Ingres 的实际安装过程。

5.1. 启动安装程序

在以下内容中,我将假定您直接从 CD 安装,该 CD 挂载在/cdrom目录下。根据您安装的是 SDK 还是完整版本的 Ingres,您必须以不同的方式启动安装。

对于 SDK

  1. 以 *ingres* 用户身份登录。

  2. cd 进入$II_SYSTEM/ingres如果它不是您的主目录。

  3. 从 tar 文件中解压install子目录。

  4. 启动 ingbuild 程序。

$ cd $II_SYSTEM/ingres
$ tar xf /cdrom/int_lnx/ingres.tar install
$ install/ingbuild
	

对于完整版本

  1. 以 *root* 用户身份登录。

  2. 启动安装程序。

# /cdrom/install.sh
	

在后一种情况下,您必须让安装程序知道安装的所有者(ingres)以及II_SYSTEM的值。之后,install.sh 会为您启动 ingbuild

从这一点开始,两种选项的安装过程是相同的。

ingbuild 的启动屏幕上,您必须指定 tar 文件的路径,并选择安装类型:自定义。我建议您选择 自定义安装,以便能够准确地选择您想要安装的那些元素。

选择 自定义安装 后,下一个屏幕上的表格会显示您的 Ingres 版本的全部组件及其各自的大小。由于不同组件中存在公共部分,因此添加的大小所指示的磁盘空间远大于安装实际所需的空间。

默认情况下,每个组件都设置为安装。如果要排除其中一些组件,请在它们的“否”“安装?”字段中写入。

您之前已确定对于您的安装, “稳定” Ingres 环境变量的默认值是否可以接受。如果是这样,您可以在此处选择 快速安装。请记住,您可以随时更改II_LOG_FILE的值以及事务日志的大小。

Tip

如果这是您第一次安装 Ingres,并且您有足够的空间,$II_SYSTEM/ingres并且“稳定”参数的默认值是可以接受的,我建议您选择 快速安装

因此,让我们首先了解此选项。

5.2. 快速安装

快速安装 的情况下,安装程序将执行以下任务:

如果安装过程进行顺利,该程序会告诉您每个已安装的组件都已准备好使用。在屏幕上的表格中,“安装?”列显示“就绪”对于每个选定的组件。

Ingres 已安装在您的机器上。跳到 完成初始配置

5.3. 手动安装

如果您选择 安装 而不是 快速安装,则安装程序将解压缩ingres.tar,检查组件的完整性,并将它们放置在各自的目录中。然后,它会询问您是否要立即设置这些组件。

如果您决定稍后进行设置,则安装程序将停止。在包含组件的表格中,对于每个选定的组件,会显示“安装?”列显示“未设置”。您可以随时再次运行 ingbuild,然后选择选项 全部设置设置 来设置所有组件或其中一个组件。组件在使用之前必须进行设置。

让我们看看如果您选择设置组件会发生什么。

首先,您必须设置 DBMS 服务器。在接下来的屏幕上,您将看到关于我们之前介绍的参数的大量说明性文本。

在设置阶段,安装程序会提示您输入 Ingres 环境变量的值和其他必要的参数:

在每个提示符下,输入先前确定的相应参数的值。

安装程序还可能会询问您有关您选择安装的其他组件的信息。接受这些组件的默认值。

完整版本
如果您请求安装 Net,请让 ingbuild 设置它。除非您知道它是什么,否则不要费心设置安装密码:我们将在其自己的部分(Ingres/Net)中完成 Net 的配置。

5.4. 完成初始配置

快速安装 之后(但也可能在手动安装之后),您可能想要更改一些 Ingres 环境变量的值。您将在此处看到如何执行此操作。请保持以 ingres 用户身份登录。

您可以使用 ingprenv 命令查看 Ingres 环境变量的当前值

$ ingprenv
	

您可以使用 ingsetenv 命令更改任何变量的值

$ ingsetenv II_TIMEZONE_NAME GMT1
	

在该示例中,我们将II_TIMEZONE_NAME设置为GMT1(格林尼治标准时间 + 1 小时),这恰好是匈牙利所在的时区。您可以在文件II_TIMEZONE_NAME$II_SYSTEM/ingres/files/tz.crs中找到的所有可能值(查找以单词开头的列表VALID).

您可以通过类似的方式更改任何其他 Ingres 环境变量的值。ingprenvingsetenv 不需要运行的 Ingres 服务器。

系统参考指南包含每个 Ingres 环境变量的描述。让我提到我们尚未介绍的其中两个。

II_DATE_FORMAT确定日期的显示格式。默认情况下,其值为US,提供格式dd-mmm-yy.

Note

的设置II_DATE_FORMAT对日期在数据库中的存储方式没有影响。Ingres 始终存储完整的日期值,包括世纪。因此,您可以更改II_DATE_FORMAT的设置,而不会损坏数据。为了避免应用程序中的 Y2K 问题,您应该使用包含世纪的日期格式,例如MULTINATIONAL4 (dd/mm/yyyy)或FINLAND (yyyy-mm-dd)。后者在 Linux 下似乎特别合适 :-)

另一个 Ingres 环境变量很可能会从其默认值更改的是II_MONEY_FORMAT。这负责如何显示货币类型的值。

Note

就像日期一样,II_MONEY_FORMAT的值对货币列的存储格式没有影响。

II_MONEY_FORMAT由两部分组成:第一部分指示货币符号是否位于金额之前(L= 前导 或T= 后导),第二部分描述货币本身($, DM, Ft等:此部分是一个最多 4 个字符的字符串)。两部分之间用冒号分隔。II_MONEY_FORMAT默认为L:$.

只有 ingres 用户才允许使用 ingsetenv,因为这些 Ingres 环境变量适用于整个安装。但是,一些 Ingres 环境变量(包括II_DATE_FORMATII_MONEY_FORMAT)可以在用户的 shell 中通过同名的 Linux 变量来覆盖。您可以查看系统参考指南,了解还有哪些其他变量属于此类别。

Warning

请注意:Ingres 不会阻止您更改任何 Ingres 环境变量的值,包括II_DATABASE, II_CHECKPOINT, II_CHARSET等(我们前面看到的“稳定”参数)。但是,如果您更改了其中一个,请为可能出现的最糟糕的后果做好准备,其中最轻微的一个是 Ingres 将无法运行。

您可以在单独的章节中找到有关如何设置 Net 和 ICE 的信息(分别是 Ingres/NetICE)。

5.5. 重新安装

如果您出于任何原因想要重新安装 Ingres,请记住首先执行以下操作

Warning

未完全删除的数据库可能会在您尝试重新创建它们时导致问题。

5.6. 命令行安装 (SDK)

对于安装 SDK,您也可以在批处理模式下运行 ingbuild。 执行快速安装的最简单方法是以 ingres 身份登录后,以以下方式启动 ingbuild

$ cd $II_SYSTEM/ingres
$ tar xf /cdrom/int_lnx/ingres.tar install
$ install/ingbuild -express /cdrom/int_lnx/ingres.tar
	

在这种情况下,会进行常规的快速安装,而无需按任何其他键。

5.7. 客户端安装(完整版)

如果您拥有完整的 Ingres 版本,您可能需要设置客户端安装。 如果您的应用程序将在与数据库服务器不同的机器上运行,那么您在应用程序服务器上需要的只是客户端 Ingres 安装。

对于客户端安装,请在 ingbuild 中选择 PackageInstall,然后标记要安装的 “Ingres Networked Client”。 安装完成后,转到 Ingres/Net 章节设置 Net。

5.8. 安装程序的日志

无论您选择了哪种类型的安装(快速或手动),您都可以在以下位置找到 ingbuild 的所有消息:$II_SYSTEM/ingres/files/install.log。 我建议您在快速安装后检查此文件,以查看安装过程中发生了什么。 另一方面,如果 ingbuild 停止并显示错误消息,也请检查此日志以查找可能的错误原因。

5.9. 检查安装

安装并配置 Ingres 后,就该检查它是否正常工作了。 假设您仍然以 ingres 身份登录,启动 Ingres 系统:

$ ingstart
	

创建一个新数据库:

$ createdb test
	

启动命令行 SQL 接口:

$ sql test
	

创建一个表,向其中插入一行,并查询表的内容:

create table t1 (col1 char(10));
insert into t1 values ('abcde');
select * from t1;
\g
	

如果一切正常,您应该看到如下所示的内容:

$ sql test
INGRES TERMINAL MONITOR Copyright (c) 1981, 1998 Computer Associates Intl, Inc.
Ingres Linux Version II 2.0/9808 (lnx.us5/95)libc6 login
Sun Oct	3 03:43:54 1999

continue
* create table t1 (col1 char(10));
* insert into t1 values ('abcde');
* select * from t1;
* \g
Executing . . .

(1 row)


col1

abcde

(1 row)
continue
*
	

您可以使用命令 \q 离开 sql