跳到主要内容

环境变量

各种环境变量都会影响 GBase 8s 产品的功能。可设置环境变量来识别终端、指定软件的位置以及定义其他参数。

一些环境变量是必需的,其他则是可选的。必须设置必需的环境变量或接受它们的缺省设置。

这些主题描述如何使用应用于一个或多个 GBase 8s 产品的环境变量并显示如何进行设置。

环境变量的类型

本章中说明了两种类型的环境变量:

特定于 GBase 8s 的环境变量

要使用 GBase 8s 产品时,设置 GBase 8s 环境变量。每个 GBase 8s 产品出版物都会指定一些环境变量,您必须设置它们才能使用该产品。

与特定操作系统一起使用的环境变量

GBase 8s 产品依赖于某些标准操作系统环境变量的正确设置。例如:必须总是设置 PATH 环境变量。

在 UNIX™ 环境中,可能还需要设置 TERMCAP 或 TERMINFO 环境变量才能有效地使用某些产品。

《GBase 8s GLS 用户指南》中描述了支持非缺省语言环境的 GLS 环境变量。表 1 的环境变量列表中包含了 GLS 变量。

数据库服务器使用在初始化该数据库服务器时生效的环境变量。

onstat -g env 命令列示生效的环境设置。

提示

特定于客户机应用程序或 SQL API 的其他环境变量可能在该产品的出版物中说明。

重要

在初始化数据库和创建 sysmaster 数据库时,不要在用户 gbasedbt 的主目录(也不要在该目录的 .gbasedbt 文件中)设置任何环境变量。

环境变量的限制

环境变量块的大小

会话开始时,客户机会分组服务器将使用的所有环境变量,并将环境变量作为单一块发送到服务器。此块的最大大小是 32K。如果环境变量块大于 32K,错误 -1832 会返回到应用程序。此错误的文本是“环境块大于 32K”。

要解决此错误,您可以取消设置一个或多个环境变量,或减少一些环境变量的大小。

在 UNIX 上使用环境变量

您可以设置、取消设置、修改和查看环境变量。如果已经使用 GBase 8s 产品,那么可能需要设置某些或全部相应的环境变量。

在 UNIX™ 上,可以在下列位置设置环境变量:

在命令行上的系统提示符处

如果在系统提示符处设置某个环境变量,必须在下一次登录到系统时重新指定该变量。

在环境配置文件中

环境配置文件是一个公共文件或专用文件,可在其中设置 GBase 8s 产品使用的所有环境变量。使用这种文件可减少在命令行或 shell 文件中必须设置的环境变量的数目。

在登录文件中

在 .login、.cshrc 或 .profile 文件中设置的环境变量值是在您每次登录系统时自动指定的。

在 SQL 的 SET ENVIRONMENT 语句中

某些环境变量的值可通过 SET ENVIRONMENT 语句重新设置。新设置的作用域通常是执行 SET ENVIRONMENT 语句的例程,但对于 GBase 8s 的 OPTCOMPIND 环境变量(如 OPTCOMPIND 环境变量一节中所述),它是当前会话。有关这些例程和 SET ENVIRONMENT 语句的更多信息,请参阅 GBase 8s SQL 指南:语法。

在 GBase 8s ESQL/C 中,可以使用 putenv( ) 系统调用在应用程序内设置受支持的环境变量,并使用 getenv( ) 系统调用来检索值(如果 UNIX 系统支持这些函数)。有关 putenv( ) 和 getenv( ) 的更多信息,请参阅 GBase 8s ESQL/C 程序员手册 和 C 文档。

在配置文件中设置环境变量

随 GBase 8s 产品提供的公共(共享)环境配置文件位于 $GBASEDBTDIR/etc/gbasedbt.rc 中。此共享文件的许可权必须设置为 644。

用户可通过在专用环境配置文件中设置变量来覆盖系统或共享环境变量。此文件必须具有下列所有特征:

  • 存储在用户的主目录中
  • 命名 .gbasedbt
  • 许可权设置为用户可读取

环境配置文件可包含注释行(前面加上 # 注释指示符)和设置各个值(用空格或制表符隔开)的变量定义行,如以下示例所示:

# This is an example of an environment-configuration file
#
DBDATE DMY4-
#
# These are ESQL/C environment variable settings
#
GBASEDBTC gcc
CPFIRST TRUE

可使用 ENVIGNORE 环境变量(在 ENVIGNORE 环境变量 (UNIX) 中作了描述)来覆盖环境配置文件中的一个或多个条目。使用 GBase 8s chkenv 实用程序(在使用 chkenv 实用程序检查环境变量中进行了描述)来对环境配置文件的内容进行完整性检查。如果该文件包含错误的环境变量或者如果该文件太大,那么 chkenv 实用程序返回错误消息。

第一次在 shell 文件或环境配置文件中设置环境变量时,必须告诉 shell 进程读取您的输入,然后才能使用 GBase 8s 产品。如果使用 C shell,那么将该文件当作源文件;如果使用 Bourne 或 Korn shell,那么使用句点 ( .)来执行该文件。

设置登录时的环境变量

将设置环境变量的命令添加至适当的登录文件:

对于 C shell

.login.cshrc

对于 Bourne shell 或 Korn shell

.profile

设置环境变量的语法

使用标准 UNIX™ 命令来设置环境变量。下表中的示例显示如何将 ABCD 环境变量设置为 C shell、Bourne shell 和 Korn shell 的值。Korn shell 还支持快捷方式,如最后一行所示。环境变量区分大小写。

Shell命令
Csetenv ABCD value
BourneABCD=value
export ABCD
KornABCD=value
export ABCD
Kornexport ABCD=value

下图显示在本章中如何表示设置环境变量的语法。这些图指示 C shell 的设置;对于 Bourne 或 Korn shell,使用先前表中说明的语法。

IMG_256

取消设置环境变量

要取消设置环境变量,输入以下命令。

Shell命令
Cunsetenv ABCD
Bourne 或 Kornunset ABCD

修改环境变量设置

有时必须向已设置的环境变量添加信息。例如,在 UNIX™ 中始终会设置 PATH 环境变量。在使用 GBase 8s 产品时,必须向 PATH 设置添加存储 GBase 8s 产品的可执行文件的目录的名称。

在以下示例中,GBASEDBTDIR/usr/gbasedbt。(即,在安装期间,GBase 8s 产品安装在 /usr /gbasedbt 目录中。)可执行文件在 bin 子目录中,即 /usr/gbasedbt/bin。要将此目录添加在 C shell PATH 环境变量之前,使用以下命令:

setenv PATH /usr/gbasedbt/bin:$PATH

可使用 GBASEDBTDIR 环境变量的值(表示为 $GBASEDBTDIR)而不是输入显式路径名,如以下示例所示:

setenv GBASEDBTDIR /usr/gbasedbt
setenv PATH $GBASEDBTDIR/bin:$PATH

您可能更倾向于使用此版本以确保 PATH 条目不会与在 GBASEDBTDIR 中设置的搜索路径相冲突,这样您无需在每次更改 GBASEDBTDIR 时重置 PATH。如果在 C shell 命令行上设置 PATH 环境变量,那么可能需要为现有的 GBASEDBTDIRPATH 加上花括号 ( {} ),如以下命令所示:

setenv PATH ${GBASEDBTDIR}/bin:${PATH}

有关如何设置和修改环境变量的更多信息,请参阅操作系统的出版物。

查看环境变量设置

安装一个或多个 GBase 8s 产品后,在系统提示时输入以下命令来查看当前环境设置。

UNIX™ 版本命令
BSD UNIXenv
UNIX System Vprintenv

使用 chkenv 实用程序检查环境变量

chkenv 实用程序检查共享或专用环境配置文件的有效性。它验证该文件中各个环境变量的名称,但不验证它们的值。当您在环境配置文件中定义 GBase 8s 产品使用的所有环境变量时,使用 chkenv 来提供调试信息。

IMG_256

filename

是要调试的环境配置文件的名称。

pathname

是环境变量文件所在的完整目录路径。

环境变量的优先顺序规则

当 GBase 8s 产品访问环境变量时,通常下列优先级规则适用:

  1. 最高优先级授予在环境 (shell) 中定义的值(通过在 shell 提示符下显式设置该值)。
  2. 第二优先级授予在用户主目录 (~/.gbasedbt) 中的专用环境配置文件中定义的值。
  3. 下一优先级授予在公共环境配置文件 ($GBASEDBTDIR/etc/gbasedbt.rc) 中定义的值。
  4. 最低优先级授予缺省值(如果存在的话)。

有关 GLS 环境变量的优先级信息,请参阅《GBase 8s GLS 用户指南》。

要点

如果在启动数据库服务器之前设置了一个或多个环境变量,而且未对客户机产品显式设置相同的环境变量,那么客户机将采用原始设置。

环境设置

可以下列方式为命令提示符实用程序设置环境变量:

使用“控制面板”中的“系统”applet

在命令行会话中

使用系统 applet 来更改环境变量

要使用控制面板中的“系统”applet 更改环境变量

  1. 从“控制面板”窗口中双击“系统”applet 图标。
  2. 单击靠近窗口顶部的“环境”选项卡。
  3. 两个列表框显示“系统环境变量”和“用户环境变量”。“系统环境变量”适用于整个系统,而“用户环境变量”仅适用于个别用户的会话。
  4. 要更改现有变量的值,选择该变量。 该变量的名称及其当前值在窗口底部的框中。
  5. 要添加新变量,突出显示现有变量并在窗口底部的框中输入新的变量名。
  6. 接着,在窗口底部输入新变量的值并单击设置
  7. 要删除变量,请选择该变量并单击删除
要点

为了使用“系统”applet 来更改“系统”环境变量,您必须属于 Administrators 组。有关将用户指定给组的信息,请参阅操作系统文档。

在 Windows 上使用环境变量

以下各节讨论为 Windows™ 应用程序设置、查看、取消设置和修改环境变量。

在 Windows 上设置环境变量的位置

根据您所使用的 GBase 8s 应用程序,您可以在 Windows™ 上的几个位置设置环境变量。

环境设置中所述,可以几种方式设置环境变量。

SQL 的 SET ENVIRONMENT 语句可设置某些特定于例程的环境选项。有关更多信息,请参阅 GBase 8s SQL 指南:语法 中对 SET ENVIRONMENT 的描述。

要在 Windows 环境中使用客户机应用程序(例如 GBase 8s ESQL/C 或“模式工具”),请使用 Setnet32 实用程序来设置环境变量。有关 Setnet32 实用程序的信息,请参阅您的操作系统的《GBase 8s 客户机产品安装指南》。

在 GBase 8s ESQL/C 中,可使用 ifx_putenv() 函数在应用程序内设置受支持的环境变量,还可使用 ifx_getenv() 函数来检索值(如果 Windows 系统支持这些函数)。有关 ifx_putenv( ) 和 ifx_getenv( ) 的更多信息,请参阅《GBase 8s ESQL/C 程序员手册》。

环境设置

可以下列方式为命令提示符实用程序设置环境变量:

  • 使用“控制面板”中的“系统”applet
  • 在命令行会话中

使用系统 applet 来更改环境变量

“系统”applet 提供图形界面来创建、修改和删除系统范围内的和特定于用户的变量。使用“系统”applet 设置的环境变量对所有命令提示符会话都可见。

要使用控制面板中的“系统”applet 更改环境变量

  1. 从“控制面板”窗口中双击“系统”applet 图标。
  2. 单击靠近窗口顶部的“环境”选项卡。
  3. 两个列表框显示“系统环境变量”和“用户环境变量”。“系统环境变量”适用于整个系统,而“用户环境变量”仅适用于个别用户的会话。
  4. 要更改现有变量的值,选择该变量。该变量的名称及其当前值在窗口底部的框中。
  5. 要添加新变量,突出显示现有变量并在窗口底部的框中输入新的变量名。
  6. 接着,在窗口底部输入新变量的值并单击设置
  7. 要删除变量,请选择该变量并单击删除
要点

为了使用“系统”applet 来更改“系统”环境变量,您必须属于 Administrators 组。有关将用户指定给组的信息,请参阅操作系统文档。

使用命令提示符来更改环境变量

您可以在命令提示符中更改环境变量的设置。

下图显示在 Windows™ 中的命令提示符下设置环境变量的语法。

如果未指定任何 value,那么表明取消设置此环境变量,就好像它不存在一样。

要在安装一个或多个 GBase 8s 产品后查看当前设置,在命令提示符下输入以下命令。

有时必须向已设置的环境变量添加信息。例如,在 Windows 环境中始终会设置 PATH 环境变量。当您使用 GBase 8s 产品时,必须将存储 GBase 8s 产品的可执行文件的目录的名称添加至 PATH。

在以下示例中,GBASEDBTDIR 为 d:\gbasedbt(即,在安装过程中,GBase 8s 产品安装在 d:\gbasedbt 目录中)。可执行文件在 bin 子目录中,即 d:\gbasedbt\bin。要在 PATH 环境变量值的开头添加此目录,使用以下命令:

set PATH=d:\gbasedbt\bin;%PATH%

可使用 GBASEDBTDIR 环境变量的值(表示为 %GBASEDBTDIR%)而不是输入显式路径名,如以下示例所示:

set GBASEDBTDIR=d:\gbasedbt
set PATH=%PATH%

您可能更倾向于使用此版本以确保 PATH 条目不会与在 GBASEDBTDIR 中设置的搜索路径冲突,同时不必在每次更改 GBASEDBTDIR 时重置 PATH。

有关设置和修改环境变量的更多信息,请参阅操作系统出版物。

使用 dbservername.cmd 来初始化命令提示符环境

每次打开 Windows™ 命令提示符时,它都会作为一个独立的环境运行。因此,您在其中设置的环境变量仅对特定命令提示符实例有效。

例如:如果打开一个命令窗口并设置变量 GBASEDBTDIR,然后打开另一个命令窗口并输入 set 以检查环境,那么会发现并未在新的命令提示符会话中设置 GBASEDBTDIR。

数据库服务器安装程序会创建一个批处理文件,您可以使用它来配置命令提示符实用程序,以确保每次运行命令提示符会话时都能正确地初始化命令提示符环境。批处理文件 dbservername.cmd 位于 %GBASEDBTDIR% 中,是一个可使用任何文本编辑器修改的纯文本文件。如果已经在 %GBASEDBTDIR% 中安装了多个数据库服务器,那么将会有多个具有 .cmd 扩展名的批处理文件,每一个都包含与其相关联的数据库服务器的名称。

要从命令提示符运行 dbservername.cmd,请输入 dbservername 或配置命令提示符以便它在启动时自动运行 dbservername.cmd。

Windows 环境变量的优先顺序规则

当 GBase 8s 产品访问环境变量时,通常下列优先级规则适用:

  1. 具有选中的 Use my settings 框的 Setnet32 中的设置
  2. 具有未选中的 Use my settings 框的 Setnet32 中的设置
  3. 在运行应用程序之前对命令行的设置。
  4. 作为用户变量在 Windows™ 中的设置。
  5. 作为系统变量在 Windows 中的设置。
  6. 最低优先级授予缺省值。

在应用程序启动时它检验最初的五个值。除非另有说明,否则在运行应用程序之后再更改环境变量将不会起任何作用。

GBase 8s 产品中的环境变量

下面的主题讨论(以字母顺序)GBase 8s 数据库服务器产品以及它们的实用程序使用的环境变量。

重要

下列环境变量的描述包括在 UNIX™ 上设置环境变量的语法。

ANSIOWNER 环境变量

在符合 ANSI 标准的数据库中,您可通过将 ANSIOWNER 环境变量设置为 1 来防止发生在没有用引号定界的所有者名称中小写字母转换成大写字母的缺省行为。

IMG_256

要防止符合 ANSI 标准的数据库中所有者名称的小写字母转换成大写字母,必须在初始化 GBase 8s 之前设置 ANSIOWNER

下表显示了符合 ANSI 标准的 GBase 8s 数据库如何存储或读取称为 oblong 的数据库对象的指定名称(如果您是 oblong 的所有者并且您的 userid(全部用小写字母)为 owen):

表 1. 隐式的、未加引号的和加引号的所有者名称的字母大小写,有或者无 ANSIOWNER

所有者格式规范ANSIOWNER = 1未设置 ANSIOWNER
隐式:oblongowen.oblongOWEN.oblong
未加引号:owen.oblongowen.oblongOWEN.oblong
加引号:'owen'.oblongowen.oblongowen.oblong

因为它们不匹配您的 userid 的字母大小写,所以指定了格式(存储为 OWEN.oblong)的任何 SQL 语句都将失败并出错。

CPFIRST 环境变量

使用 CPFIRST 环境变量,可以为您的编程环境中的所有 GBase 8s ESQL/C 源文件指定缺省编译顺序。

IMG_256

在未设置 CPFIRST 的情况下编译 GBase 8s ESQL/C 程序时,在缺省情况下,GBase 8s ESQL/C 预处理器首先在程序源文件上运行,然后将结果文件传递给 C 语言预处理器和编译器。但是,可以以下顺序编译 GBase 8s ESQL/C 程序源文件:

  1. 运行 C 预处理器
  2. 运行 GBase 8s ESQL/C 预处理器
  3. 运行 C 编译器和链接程序

要对特定程序使用非缺省编译顺序,可对程序源文件指定 .ecp 扩展名,对具有 .ec 扩展名的程序源文件运行 esql 命令的 -cp 选项,或设置 CPFIRST。

将 CPFIRST 设置为 TRUE(仅大写),以便在对您所在环境中的所有 GBase 8s ESQL/C 源文件运行 GBase 8s ESQL/C 预处理器之前运行 C 预处理器,而不管 -cp 选项是否已传递到 esql 命令,或者这些源文件是否具有 .ec 或 .ecp 扩展名。

要对其中 CPFIRST 环境变量已设置为 TRUE 的系统复原缺省顺序,可将 CPFIRST 设置为 FALSE。在支持 C shell 的 UNIX™ 系统上,以下命令具有相同的作用:

unsetenv CPFIRST

CMCONFIG 环境变量

设置 CMCONFIG 环境变量可以指定连接管理器配置文件的位置。使用该配置文件可以指定服务级别协议和其他连接管理器配置选项。

IMG_256

path/file_name 是连接管理器配置文件的完整路径和文件名。

如果未设置 CMCONFIG 环境变量,且未在 oncmsm 实用程序命令行上指定配置文件名,那么连接管理器将尝试装入具有以下路径和文件名的文件:

$GBASEDBTDIR/etc/cmsm.cfg

示例

假定 CMCONFIG 环境变量指向连接管理器配置文件的有效路径和文件名。要使用 shell 环境中指定的配置文件重新装入连接管理器实例,请输入以下命令:

./oncmsm -r

要使用 shell 环境中指定的配置文件关闭连接管理器实例,请输入以下命令:

./oncmsm -k

DBACCNOIGN 环境变量

使用 DBACCNOIGN 环境变量,可以指定在发生指定的错误时 DB-Access 实用程序的行为。

如果在以下某种情况下发生错误,那么 DBACCNOIGN 环境变量会影响 DB-Access 实用程序的行为:

  • 以非菜单方式运行 DB-Access。
  • 仅在 GBase 8s 中,以菜单方式通过 DB-Access 执行 LOAD 命令。

如果在上述任一情况下运行 DB-Access 实用程序时发生错误,请将 DBACCNOIGN 环境变量设置为 1,以回滚未完成的事务。

IMG_256

例如,假定 DB-Access 运行以下 SQL 命令:

DATABASE mystore
BEGIN WORK

INSERT INTO receipts VALUES (cust1, 10)
INSERT INTO receipt VALUES (cust1, 20)
INSERT INTO receipts VALUES (cust1, 30)

UPDATE customer
SET balance =
(SELECT (balance-60)
FROM customer WHERE custid = 'cust1')
WHERE custid = 'cust1
COMMIT WORK

此处有一条语句的表名拼写错误:receipt 表不存在。如果未在环境中设置 DBACCNOIGN,那么 DB-Access 会将两条记录插入到 receipts 表中,并更新 customer 表。现在 customer balance 的减少量超过了插入的 receipts 的总和。

但如果将 DBACCNOIGN 设置为 1,那么会打开消息,指示 DB-Access 回滚了所有 INSERT 和 UPDATE 语句。这些消息还会标识错误原因,以便您能够解决问题。

设置 DBACCNOIGN 时的 LOAD 语句示例

可在执行 LOAD 语句期间设置 DBACCNOIGN 环境变量来保护数据完整性,即使 DB-Access 以菜单方式运行 LOAD 语句也是如此。

假定您从 DB-Access SQL 菜单执行 LOAD 语句。正确装入了 49 行数据,但第 50 行数据包含无效值,因而导致错误。如果将 DBACCNOIGN 设置为 1,那么数据库服务器不会将先前的 49 行插入到数据库中。如果未设置 DBACCNOIGN,那么数据库服务器会插入前 49 行。

DBANSIWARN 环境变量

使用 DBANSIWARN 环境变量,可以指示您希望执行 ANSI 标准 SQL 语法的 GBase 8s 扩展检查。

与大多数环境变量不同,您不需要为 DBANSIWARN 设置值。您可以将其设置为任何值,也可以不设置任何值。

IMG_256

在设置了 DBANSIWARN 的情况下运行 DB-Access,与在从命令行调用 DB-Access(或可识别 -ansi 标志的任何 GBase 8s 产品)时加上 -ansi 标志具有同等功效。如果在运行 DB-Access 之前设置了 DBANSIWARN,那么任何语法扩展警告都将显示在屏幕上的 SQL 菜单内。

在运行时,如果所执行的语句被识别为包含 SQL 语法 ANSI/ISO 标准的任何 GBase 8s 扩展,那么 DBANSIWARN 环境变量会导致 SQL 通信区 (SQLCA) 中 sqlwarn 数组的第六个字符设置为 W。

有关 SQLCA 的详细信息,请参阅 GBase 8s ESQL/C 程序员手册。

在设置 DBANSIWARN 之后,GBase 8s 扩展检查会自动进行,直到您注销或取消设置 DBANSIWARN。要关闭 GBase 8s 扩展检查,可通过以下命令禁用 DBANSIWARN:

unsetenv DBANSIWARN

DBBLOBBUF 环境变量

使用 DBBLOBBUF 环境变量,可以控制在 UNLOAD 语句处理 TEXT 或 BYTE 值时,这些值是临时存储在内存中还是存储在文件中。DBBLOBBUF 仅影响 UNLOAD 语句。

IMG_256

size 表示 TEXT 或 BYTE 数据的最大大小 (KB)。

如果 TEXT 或 BYTE 数据大小小于缺省值 10 KB(或 DBBLOBBUF 的设置),那么 TEXT 或 BYTE 值临时存储在内存中。如果数据大小大于缺省值或 DBBLOBBUF 设置,那么会将该数据值写入临时文件。例如,要将缓冲区大小设置为 15 KB,请按以下示例所示设置 DBBLOBBUF

setenv DBBLOBBUF 15

此处小于 15 KB 的任何 TEXT 或 BYTE 值都将临时存储在内存中。大于 15 KB 的值临时存储在文件中。

DBCENTURY 环境变量

使用 DBCENTURY 环境变量,可以指定如何展开使用缩写年份值输入的字面 DATE 和 DATETIME 值。为避免展开缩写年份时出现问题,应用程序应要求输入 4 位年份,且应始终将年份显示为 4 位。

IMG_256

当未设置 DBCENTURY(或设置为 R)时,当前年份的前两位被用来展开两位年份值。例如,如果今天的日期为 09/30/2003,那么缩写日期 12/31/99 扩展为 12/31/2099,而缩写日期 12/31/00 扩展为 12/31/2000。

R、P、F 和 C 设置确定用于展开两位数年份的算法。

设置算法
R = 当前使用当前年份的前两位展开年份值。
P = 过去通过对缩写年份值加上前缀 19 和 20 来创建展开的日期。将这两个日期与当前日期进行比较,使用早于当前日期的最新日期。
F = 将来通过对缩写年份值加上前缀 20 和 21 来创建展开的日期。将这两个日期与当前日期进行比较,使用晚于当前日期的最早日期。
C = 最接近通过对缩写年份值加上前缀 19、20 和 21 来创建展开的日期。将这三个日期与当前日期进行比较,使用最接近当前日期的日期。

设置是区分大小写的,不会对无效设置发出任何错误。如果输入 f(作为示例),那么缺省 (R) 设置生效。P 和 F 设置不能返回当前日期,因为当前日期既不是过去也不是将来。

为以单个位输入的年份被加上前缀 0,然后展开。不展开三位年份。用前导零填充早于 100 的年份。

展开年份值的示例

本主题中的示例说明 DBCENTURY 的各种设置如何使缩写年份以 DATE 和 DATETIME 值的形式展开。

DBCENTURY = P

示例数据类型:DATE

当前日期:4/6/2003

用户输入:1/1/1

加前缀“19”的展开项:1/1/1901

加前缀“20”的展开项:1/1/2001

分析:两项都早于当前日期,但 1/1/2001 更接近当前日期

当前日期。

要点

DBCENTURY 的结果取决于系统时钟日历的当前日期。因此,如果当前日期为 1/1/2001 且 DBCENTURY = P,那么此示例的缩写日期 1/1/1 将改而扩展成 1/1/1901。

DBCENTURY = F

示例数据类型:DATETIME year to month

当前日期:5/7/2005

用户输入:1-1

加前缀“20”的展开项:2001-1

加前缀“21”的展开项:2101-1

分析:只有日期 2101-1 在当前日期之后,所以选择它。

DBCENTURY = C

示例数据类型:DATE

当前日期:4/6/2000

用户输入:1/1/1

加前缀“19”的展开项:1/1/1901

加前缀“20”的展开项:1/1/2001

加前缀“21”的展开项:1/1/2101

分析:此处 1/1/2001 最接近当前日期,所以选择它。

DBCENTURY = R 或未设置 DBCENTURY

示例数据类型:DATETIME year to month

当前日期:4/6/2000

用户输入:1-1

加前缀“20”的展开项:2001-1

示例数据类型:DATE

当前日期:4/6/2003

用户输入:0/1/1

加前缀“20”的展开项:2000/1

分析:在这两个示例中,都使用加前缀“20”的算法。

当语言环境指定非格列高利历(如希伯莱或伊斯兰历)时,DBCENTURY 设置不会影响 GBase 8s 产品。缩写年份时,当前年份的前导位用于备用日历系统。

数据库对象中的缩写年份和表达式

当数据库对象中的表达式(包括检查约束、分段存储表达式、SPL 例程、触发器或 UDR)包含年份为 1 位或 2 位数字的字面日期值或 DATETIME 值时,数据库服务器将使用在创建(或上次修改)数据库对象时 DBCENTURY(和其他相关环境变量)所具有的设置对表达式求值。

如果 DBCENTURY 已重新设置为新值,那么在展开缩写年份时会忽略新值。

例如:假定用户创建了一个表并对名为 birthdate 的列定义以下检查约束:

birthdate < '09/25/50'

表达式是根据定义约束时的 DBCENTURY 值解释的。如果包含 birthdate 列的表是在 09/23/2000 创建的且 DBCENTURY =C,那么在对 birthdate 列执行插入或更新操作时检查约束表达式始终解释为 birthdate < '09/25/1950'。即使用户对 birthdate 列执行插入或更新操作时对 DBCENTURY 设置了不同的值,约束表达式仍然根据定义(或上次修改)检查约束时的设置进行解释。

在一些较早版本的 GBase 8s 上创建的数据库对象不支持创建时设置的优先级。

对于要获取此功能的旧对象

  1. 删除这些对象。
  2. 重新创建这些对象(或对于分段存储表达式,拆离这些对象然后重新连接)。

重新定义这些对象之后,对象的表达式内的日期文字将根据创建或上次修改对象时的环境进行解释。否则,它们的行为将取决于运行时环境,如果环境更改,行为有可能变得不一致。

同时包含旧对象和新对象的数据库的管理可能会很复杂,这是因为对日期表达式求值的新旧行为之间存在差异。为避免这一情况,建议重新定义所有旧对象。

DBCENTURY 的值和当前日期并非确定数据库服务器解释 date 和 DATETIME 值的方式的唯一因子。DBDATE、DBTIME、GL_DATE 和 GL_DATETIME 环境变量也能够影响解释日期的方式。有关 GL_DATE 和 GL_DATETIME 的信息,请参阅《GBase 8s GLS 用户指南》。

重要

GBase 8s 的 DBCENTURY 的行为与先前版本不兼容。

DBDATE 环境变量

使用 DBDATE 环境变量可以指定 DATE 值的最终用户格式。

在使用 C shell 的 UNIX™ 系统上,使用以下语法设置 DBDATE

IMG_256

下列格式化符号在 DBDATE 设置中有效:

- . /

是在日期格式中可作为分隔符存在的字符。

0

指示时间单位之间不显示任何分隔符。

D 和 M

是表示日和月的字符。

Y2 和 Y4

是表示年份和年份精度的字符。

一些东亚语言环境支持基于纪元的日期的附加语法。有关基于纪元的格式的详细信息,请参阅《GBase 8s GLS 用户指南》。

DBDATE 可指定显示格式的下列属性:

  • 日期中时间单位的顺序(月、日和年)
  • 年份是以两位数字 (Y2) 还是四位数字 (Y4) 的形式显示
  • 月、日和年时间单位之间的分隔符

对于“美国英语”语言环境,DBDATE 的缺省值为 MDY4/,其中 M 表示月,D 表示日,Y4 表示四位的年份,而斜杠 ( / ) 表示时间单位分隔符(例如,01/08/2011)。可充当分隔符的其他有效字符包括连字符 ( - )、句点 ( . ) 或零 (0)。要指示没有分隔符,请使用零。如果尝试指定连字符、句点或零以外的字符作为分隔符,或者未在 DBDATE 规范中加入任何分隔符,那么缺省情况下会使用斜杠 ( / )。

如果未在客户机上设置 DBDATE,那么数据库服务器上的任何 DBDATE 设置会覆盖客户机上的 MDY4/ 缺省值。如果在客户机上设置了 DBDATE,那么客户机会使用该值(而不是数据库服务器上的设置)。

下表显示了有效 DBDATE 设置的一些示例以及它们对应于日期 2011 年 1 月 8 日的显示:

DBDATE 设置2011 年 1 月 8 日的表示法:DBDATE 设置2011 年 1 月 8 日的表示法:
MDY4/01/08/2011Y2DM.11.08.01
DMY2-08-01-11MDY20010811
MDY401/08/2011Y4MD*2011/01/08

格式 Y4MD*(因为星号不是有效分隔符)和 MDY4(未定义任何分隔符)都会显示缺省符号(斜杠)作为分隔符。

要点

如果使用 Y2 格式,那么 DBCENTURY 环境变量的设置还会影响在数据输入时对文字 DATE 值求值的方式。

另外,GBase 8s ESQL/C 调用的某些例程可使用 DBTIME 变量(而不是 DBDATE)来将 DATETIME 格式设置为国际规范。有关更多信息,请参阅 DBTIME 环境变量和 GBase 8s ESQL/C 程序员手册 中对 DBTIME 环境变量的论述。

DBDATE 变量的设置优先于 GL_DATE 环境变量的设置,并且优先于 CLIENT_LOCALE 指定的任何缺省 DATE 格式。有关 GL_DATECLIENT_LOCALE 的信息,请参阅《GBase 8s GLS 用户指南》。

最终用户格式影响下列上下文:

  • 在显示 DATE 值时,GBase 8s 产品使用 DBDATE 环境变量来确定输出的格式。
  • 在 DATE 值的数据输入期间,GBase 8s 产品使用 DBDATE 环境变量来解释输入。

例如,如果在 INSERT 语句中指定文字 DATE 值,那么数据库服务器期望此文字值与 DBDATE 指定的格式兼容。同样,数据库服务器将您指定为 DATE( ) 函数的自变量的日期解释为 DBDATE 格式。

数据库对象中的 DATE 表达式

当数据库对象中的表达式(包括检查约束、分段存储表达式、SPL 例程、触发器或 UDR)包含字面日期值时,数据库服务器使用在创建(或上次修改)数据库对象时 DBDATE(或其他相关环境变量)所具有的设置对表达式求值。如果 DBDATE 已复位为新值,那么对文字 DATE 求值时会忽略该新值。

例如:假如 DBDATE 设置为 MDY2/,用户创建了一个表且 orderdate 列具有以下检查约束:

orderdate < '06/25/98'

则先前表达式的日期根据定义约束时 DBDATE 的值来进行格式编排。检查约束表达式解释为 orderdate < '06/25/98',不管对 orderdate 列执行插入或更新操作期间 DBDATE 的值如何。假设当用户将值 '30/01/98' 插入 orderdate 列中时,DBDATE 复位为 DMY2/。插入的日期值使用日期格式 DMY2/,而检查约束表达式使用日期格式 MDY2/。

有关较早版本的 GBase 8s 中始终根据运行时环境求值的旧对象的讨论,请参阅数据库对象中的缩写年份和表达式。该节描述如何重新定义对象,以便根据定义对象(或上次修改对象)时生效的环境变量设置解释日期。

要点

GBase 8s 的 DBDATE 的行为与先前版本不兼容。

DBDELIMITER 环境变量

设置 DBDELIMITER 环境变量,可以指定与 dbexport 实用程序和 LOAD 及 UNLOAD 语句配合使用的字段定界符。

IMG_256

delimiter 是未装入的数据文件的字段定界符。

delimiter 可以是任何单个字符,但以下列表中的字符除外:

  • 十六进制数字(0 至 9,a 至 f,A 至 F)
  • 换行符或 CTRL-J
  • 反斜杠 ( **** ) 符号

竖线 ( | = ASCII 124) 是缺省值。例如,要将字段定界符更改为加号 ( + ),可按如下方式设置 DBDELIMITER:

setenv DBDELIMITER '+'

DBEDIT 环境变量

使用 DBEDIT 环境变量,可以指定要与 DB-Access 中的 SQL 语句和命令文件配合使用的文本编辑器。

如果设置了 DBEDIT,那么指定文本编辑器是自动调用的。如果未设置 DBEDIT,系统将提示您指定一个文本编辑器作为会话剩余部分的缺省编辑器。

IMG_256

editor 是您想要使用的文本编辑器的名称。

对于大多数 UNIX™ 系统,缺省文本编辑器为 vi。如果使用另一文本编辑器,请确保它创建的是平面 ASCII 文件。某些文档方式的字处理程序引入的打印机控制字符可能会干扰 GBase 8s 产品的运行。

要指定 EMACS 文本编辑器,请通过以下命令设置 DBEDIT:

setenv DBEDIT emacs

DBFLTMASK 环境变量

DB-Access 实用程序在 14 字符缓冲区内显示数据类型为 FLOAT、SMALLFLOAT 和 DECIMAL(p) 的浮点值。缺省情况下,DB-Access 显示小数点右边尽可能多的位数(在此字符缓冲区能容纳的情况下)。因此,DB-Access 显示的实际小数位数取决于浮点值的大小。

要降低浮点值中小数点右边显示的位数,请将 DBFLTMASK 设置为指定的位数。

IMG_256

scale 是想要 GBase 8s 客户机应用程序在浮点值中显示的小数位数。此处 scale 必须小于 16(显示的缺省位数)。

如果浮点值包含的小数点右边位数超过 DBFLTMASK 指定的位数,DB-Access 会将该值舍入为指定位数。如果浮点值包含的小数点右边位数少于指定位数,那么 DB-Access 会使用零来填充该值。但是,如果将 DBFLTMASK 设置为 14 个字符的缓冲区不能容纳的值,DB-Access 会将该值舍入为可容纳的位数。

DBLANG 环境变量

使用 DBLANG 环境变量,可以指定 $GBASEDBTDIR 的子目录或 GBase 8s 产品使用的已编译消息文件所在目录的完整路径名。

IMG_256

relative_path 是 $GBASEDBTDIR 的子目录。

full_path 是已编译消息文件的路径名。

缺省情况下,GBase 8s 产品将已编译消息放在 GBASEDBTDIR/msg目录的特定于语言环境的子目录中。这些已编译消息文件具有文件扩展名.iem。如果想要使用不同于GBASEDBTDIR/msg** 目录的特定于语言环境的子目录中。这些已编译消息文件具有文件扩展名 **.iem**。如果想要使用不同于 **GBASEDBTDIR/msg 的消息目录,以便可在其中存储创建的消息文件,必须执行下列步骤:

要使用不同于 $GBASEDBTDIR/msg 的消息目录

1.使用 mkdir 命令来为消息文件创建适当的目录。

可将此目录放在 GBASEDBTDIRGBASEDBTDIR** 或 **GBASEDBTDIR/msg 目录下,也可以将它放在任何其他目录下。

2.将新目录的所有者和组设置为 gbasedbt,并将此目录的存取许可权设置为 755。

3.将 DBLANG 环境变量设置为新目录。如果这是 GBASEDBTDIRGBASEDBTDIR** 或 **GBASEDBTDIR/msg 的子目录,那么您只需要列示新目录的相对路径。否则,必须指定该目录的全路径名。

4.将 .iem 文件或您创建的消息文件复制至 $DBLANG 指定的新消息目录。

消息目录中的所有文件应具有所有者和组 gbasedbt 以及存取许可权 644。

使用缺省美国英语语言环境的 GBase 8s 产品按以下顺序搜索消息文件:

  1. 在 $DBLANG 中,如果 DBLANG 设置为全路径名的话
  2. 在 $GBASEDBTDIR/msg/$DBLANG 中,如果 DBLANG 设置为相对路径名的话
  3. 在 $GBASEDBTDIR/$DBLANG 中,如果 DBLANG 设置为相对路径名的话
  4. 在 $GBASEDBTDIR/msg/en_us/0333 中
  5. 在 $GBASEDBTDIR/msg/en_us.8859-1 中
  6. 在 $GBASEDBTDIR/msg 中
  7. 在 $GBASEDBTDIR/msg/english 中

有关消息的搜索路径的更多信息,请参阅《GBase 8s GLS 用户指南》中对 DBLANG 的描述。

DBMONEY 环境变量

使用 DBMONEY 环境变量,可以指定 smallfloat、FLOAT、DECIMAL 或 MONEY 数据类型列中值的显示格式,以及从这些数据类型中的任何一种派生出来的复杂数据类型列中值的显示格式。

IMG_256

$ 是缺省语言环境中 MONEY 值之前的货币符号(如果未指定任何其他 front 符号或未设置 DBMONEY)。

, 或 . 是一个逗号或句点(缺省值),它将 FLOAT、DECIMAL 或 MONEY 值的整数部分与小数部分隔开。您未指定的符号成为千位分隔符。

back 是跟在 MONEY 值后面的货币符号。

front 是 MONEY 值之前的货币符号。

back 符号最多可有 7 个字符,可包含语言环境支持的任何字符,但数字、逗号 ( , ) 或句点 ( . ) 符号除外。front 符号最多可有 7 个字符,可包含语言环境支持的任何字符,但数字、逗号 ( , ) 或句点 ( . ) 符号除外。如果对 front 或 back 指定字母表中的字母之外的任何字符,必须用单引号(' )将 front 或 back 设置括起来。

在显示 MONEY 值时,GBase 8s 产品使用 DBMONEY 设置来确定输出的格式。但是,DBMONEY 对存储在数据库中各列的数据值的内部格式不起任何作用。

如果未设置 DBMONEY,那么缺省语言环境(美国英语)的 MONEY 值的格式将是在 MONEY 值前加上美元符号 ( ),用句点(.)MONEY值的整数部分与小数部分隔开,且没有back符号。例如:100.50的格式为),用句点 ( **.** ) 将 MONEY 值的整数部分与小数部分隔开,且没有 back 符号。例如:100.50 的格式为100.50。

假定您想要将 MONEY 值显示为 DM(德国马克)单位,使用 货币符号 DM 和逗号 ( , ) 作为小数分隔符。输入以下命令以设置 DBMONEY 环境变量:

setenv DBMONEY DM,

此处 DM 是 MONEY 值之前的 front 货币符号,而逗号将 MONEY 值的整数部分与小数部分隔开。因此,值 100.50 显示为 DM100,50。

有关 DBMONEY 在非缺省语言环境中如何确定 MONEY 值的格式的更多信息,请参阅《GBase 8s GLS 用户指南》。

DBONPLOAD 环境变量

使用 DBONPLOAD 环境变量,可以指定 High Performance Loader (HPL) 的 onpload 实用程序使用的数据库的名称。

如果设置了 DBONPLOAD,那么 onpload 将指定名称用作数据库的名称;否则数据库的缺省名称为 onpload

IMG_256

dbname 指定 onpload 实用程序使用的数据库的名称。

例如:要将名称 load_db 指定为数据库的名称,输入以下命令:

setenv DBONPLOAD load_db

有关更多信息,请参阅 GBase 8s High-Performance Loader 用户指南。

DBPATH 环境变量

使用 DBPATH 环境变量可以标识包含数据库的数据库服务器。DBPATH 还可指定 DB-Access 在其中查找命令脚本(.sql 文件)的目录(除当前目录之外)的列表。

CONNECT DATABASE、START DATABASE 和 DROP DATABASE 语句使用 DBPATH 在以下两种情况下查找该数据库:

  • 如果数据库的位置未显式声明
  • 如果不能在缺省服务器中定位该数据库

CREATE DATABASE 语句不使用 DBPATH

要向现有条目添加新 DBPATH 条目,请参阅修改环境变量设置

IMG_256

full_pathname 是从根目录开始的,存储 .sql 文件的目录的全路径。

pathname 是存储 .sql 文件的目录的有效相对路径。

servername

是存储数据库的 GBase 8s 服务器的名称。不能使用 servername 引用数据库文件。

DBPATH 可包含最多 16 个条目。每个条目必须少于 128 个字符。此外,DBPATH 的最大长度取决于在其上设置 DBPATH 的硬件平台。

在使用 CONNECT DATABASE、START DATABASE 或 DROP DATABASE 语句访问数据库时,首先在该语句中指定的目录或数据库服务器中搜索该数据库。如果未指定任何数据库服务器,那么使用 GBASEDBTSERVER 环境变量指定的缺省数据库服务器。

如果在初次搜索期间找不到该数据库,同时又设置了 DBPATH,那么会在指定数据库中搜索 DBPATH 中的数据库服务器和目录。这些条目是按它们列示在 DBPATH 设置中的顺序搜索的。

将 DBPATH 与 DB-Access 配合使用

如果在尚未选择数据库的情况下使用 DB-Access 并从 SQL 菜单选择中选择选项,就会看到 DBPATH 中列出的目录中所有 .sql 文件的列表。选择了数据库之后,就不会使用 DBPATH 来查找 .sql 文件。仅显示当前工作目录中的 .sql 文件。

搜索本地目录

使用不带数据库服务器名的路径名搜索本地计算机上的 .sql 脚本。在以下示例中,DBPATH 设置让 DB-Access 先在当前目录中搜索这些数据库文件,然后在本地计算机上的 Joachim 和 Sonja 目录中搜索它们:

setenv DBPATH /usr/joachim:/usr/sonja

如先前示例所示,如果该路径名指定目录名但未指定数据库服务器名,那么在运行 GBASEDBTSERVER 指定的缺省数据库服务器的计算机上搜索该目录;请参阅 GBASEDBTSERVER 环境变量。例如,如以下示例所示,对于先前示例,如果将 GBASEDBTSERVER 设置为 qualityDBPATH 值已作了解释,其中双斜杠放在数据库服务器名称之前:

setenv DBPATH //quality/usr/joachim://quality/usr/sonja

搜索联网计算机以查找数据库

如果使用多个数据库服务器,可将 DBPATH 显式设置为包含想要对其搜索数据库的数据库服务器和目录名。例如,如果将 GBASEDBTSERVER 设置为 quality,但您还想搜索 marketing 数据库服务器以查找 /usr/joachim,那么按以下示例所示设置 DBPATH

setenv DBPATH //marketing/usr/joachim:/usr/sonja

指定服务器名

可将 DBPATH 设置为仅包含数据库服务器名。此功能允许您仅定位数据库;不能使用它来定位命令文件。

数据库管理员必须将 DBPATH 提及的每个数据库服务器包括在 $GBASEDBTDIR/etc/sqlhosts 文件中。有关通信配置文件和数据库服务器名称的信息,请参阅《GBase 8s 管理员指南》和 GBase 8s 管理员参考。

例如:如果将 GBASEDBTSERVER 设置为 quality,那么可以通过设置 DBPATH 来先在 quality 数据库服务器上搜索数据库,然后在 marketing 数据库服务器上搜索数据库,如以下示例所示:

setenv DBPATH //marketing

如果在此示例中使用 DB-Access,那么使用 DATABASE 菜单的选择选项来显示 qualitymarketing 数据库服务器上所有数据库的名称。

DBPRINT 环境变量

使用 DBPRINT 环境变量可以指定缺省打印程序。

IMG_256

program 任何生成标准 ASCII 输出的命令、shell 脚本或 UNIX™ 实用程序。

如果未设置 DBPRINT,那么缺省 program 可在下列两个位置之一中找到:

  • 对于大多数 BSD UNIX 系统,缺省程序为 lpr
  • 对于 UNIX 系统 V,缺省程序通常为 lp

输入以下命令来设置 DBPRINT 环境变量以将 myprint 指定为打印程序:

setenv DBPRINT myprint

DBREMOTECMD 环境变量 (UNIX)

使用 DBREMOTECMD 环境变量,可以覆盖缺省远程 shell 以使用数据库服务器执行远程磁带操作。

可将 DBREMOTECMD 设置为简单命令或设置为完整路径名。

IMG_256

command 覆盖缺省远程 shell 的命令。

pathname 覆盖缺省远程 shell 的路径名。

如果不指定完整路径名,数据库服务器会搜索您的 PATH 以获取指定的 command。您应在交互式 UNIX™ 平台上使用完整路径名语法,以避免其他目录中类似命名的程序带来的问题以及与受限 shell (/usr/bin/rsh) 之间可能产生的混淆。

以下命令对简单命令名设置 DBREMOTECMD:

setenv DBREMOTECMD rcmd

用于设置 DBREMOTECMD 的下一个命令会指定完整路径名:

setenv DBREMOTECMD /usr/bin/remsh

有关使用远程磁带设备进行备份的更多信息,请参阅指定远程设备。

DBSPACETEMP 环境变量

DBSPACETEMP 环境变量指定在其中构建临时表的数据库空间。该列表可能包含标准数据库空间和/或临时数据库空间。

IMG_256

dbspace 是现有的标准或临时数据库空间的名称。

您可以列出数据库空间(用冒号 ( : ) 或逗号 ( , ) 符号来分隔),以便为跨物理存储设备的临时表指定空间。例如:用来设置 DBSPACETEMP 环境变量的以下命令为临时表指定三个数据库空间:

setenv DBSPACETEMP sorttmp1:sorttmp2:sorttmp3

DBSPACETEMP 覆盖 DBSPACETEMP 参数在数据库服务器配置文件中指定的任何缺省数据库空间。对于 UPDATE STATISTICS 操作,只有在指定 HIGH 关键字选项时才使用 DBSPACETEMP。

在 UNIX™ 平台上,如果 DBSPACETEMP 中的数据库空间列表是由作为原始设备来分配的块所组成的,那么就可能获得更好的性能。

就象操作系统定义的那样,环境变量的最大大小限制数据库空间的数目。如果该环境变量指定的数据库空间不存在,那么数据库服务器不会创建该数据库空间。

两类临时表包括用户创建的显式临时表和数据库服务器创建的隐式临时表。使用 DBSPACETEMP 为这两种类型的临时表指定数据库空间。

如果使用 CREATE TEMP TABLE 语句创建显式临时表,且不在 IN dbspace 子句或 FRAGMENT BY 子句中为该表指定数据库空间,那么数据库服务器使用 DBSPACETEMP 中的设置来确定在何处创建该表。

如果使用 SELECT INTO TEMP 语句创建显式临时表,那么数据库服务器使用 DBSPACETEMP 中的设置来确定在何处创建该表。

如果设置了 DBSPACETEMP,并且它列出的数据库空间包括日志记录和非日志记录数据库空间,那么数据库服务器会把临时表(该表隐式或显式支持事务日志记录)存储在日志记录数据库空间中,并把非日志记录临时表存储在非日志记录数据库空间中。

数据库服务器在执行连接操作、带有 GROUP BY 子句的 SELECT 语句、带有 ORDER BY 子句的 SELECT 语句和索引构建时会创建隐式临时表以供其自身使用。

当数据库服务器创建显式或隐式临时表时,它会使用磁盘空间来写临时数据。如果临时表位置的设置或语句规范之间有冲突,那么以降序(从最高到最低)的优先顺序解决这些冲突:

  1. 在 UNIX 平台上,环境变量 PSORT_DBTEMP(如果设置了该环境变量的话)指定的一个或多个操作系统目录
  2. 环境变量 DBSPACETEMP 指定的一个或多个数据库空间(如果设置了该环境变量的话)
  3. ONCONFIG 参数 DBSPACETEMP 指定的数据库空间。
  4. DUMPDIR 配置参数指定的操作系统文件空间
  5. 目录 $GBASEDBTDIR/tmp (UNIX)。
要点

如果将 DBSPACETEMP 环境变量设置为无效值,那么对于显式临时表,数据库服务器缺省值为根数据库空间,而对于隐式临时表,缺省值为 /tmp,而不是 DBSPACETEMP 配置参数的设置。在此情况下,数据库服务器可能会填充 /tmp 直至达到限制,最终使得数据库服务器关闭或杀死文件系统。

DBTEMP 环境变量

DBTEMP 环境变量由 DB-Access、GBase 8s Enterprise Gateway 产品使用。DBTEMP 与 DBSPACETEMP 类似,它指定放置临时文件和临时表的目录。

IMG_256

pathname 临时文件和表的目录的完整路径名。

对于使用 C shell 的 UNIX™ 系统,以下示例将 DBTEMP 设置为路径名 usr/magda/mytemp:

setenv DBTEMP usr/magda/mytemp

如果未设置 DBTEMP,那么数据库服务器会在 /tmp 目录中创建临时文件,而在 DBSPACETEMP 目录中创建临时表。如果未设置 DBSPACETEMP,请参阅DBSPACETEMP 环境变量以获取缺省值。同样,如果未在客户机系统上设置 DBTEMP,那么会在 /tmp 目录中创建临时文件(例如:为滚动游标创建的那些临时文件)。

如果未设置 DBTEMP,那么在对大的或复杂的数据类型(如 BYTE 或 ROW)的值执行操作时可能会遇到意外行为或故障。

DBTIME 环境变量

DBTIME 环境变量对 DATETIME 值的显示和数据输入格式指定格式编排掩码。 只有在 DBTIME 要格式化的 DATETIME 数据值具有与指定的 DBTIME 设置相同精度的情况下,DBTIME 环境变量才有用。对于用不同 DATETIME 限定符声明的 DATETIME 值,您可能会遇到意外或无效的显示格式。IMG_256

literal 是文字空格或任何可打印字符。

Min 是一个文字整数,设置 special 指定的值的子串中的最小字符数。

Precision 是任何时间单位的值的位数或月份名中的最大字符数。

Special 为以下列示的占位符之一。

这些术语和符号在接下来的几页中作了描述。

这个引号括起来的字符串可以包括字面的字符以及 DATETIME 值的个别时间单位和其他元素值的占位符。DBTIME 仅在您调用某些 GBase 8s ESQL/C DATETIME 例程时起作用。(有关详细信息,请参阅 GBase 8s ESQL/C 程序员手册。)如果未设置 DBTIME,那么表示未定义这些例程的行为,且“YYYY-MM-DD hh:mm:ss.fffff”是缺省语言环境中的 DATETIME YEAR TO FRACTION(5) 文字值的缺省显示和输入格式。

百分比 ( % ) 符号给予后跟的 special 占位符很特殊的意义。如果没有前导 % 符号,格式化掩码内的任何字符都被解释为文字字符,即使它与以下列表中的占位符字符之一是相同字符。此外还需注意 special 占位符符号是区分大小写的。

DBTIME 格式字符串内的下列字符是 DATETIME 值内的时间单位(或其他功能)的占位符。

%b

由缩写月份名替换。

%B

由完整月份名替换。

%d

由十进制数形式的月份中的一天 [01,31] 替换。

%Fn

由带有整数 n 指定的小数位的秒的小数替换。n 的缺省值为 2;n 的范围为 0 ≤ n ≤ 5。

%H

由小时(24 小时时钟)替换。

%I

由小时(12 小时时钟)替换。

%M

由十进制数形式的分钟 [00,59] 替换。

%m

由十进制数形式的月份 [01,12] 替换。

%p

由 A.M. 或 P.M.(或语言环境文件中的等效值)替换。

%S

由十进制数形式的秒 [00,59] 替换。

%y

由四位十进制数的年份替换。

%Y

由四位十进制数的年份替换。用户必须输入四位值。

%%

替换为 %(以允许格式字符串中出现 %)。

例如,考虑 DATETIME YEAR TO SECOND 的以下显示格式:

Mar 21, 2001 at 16 h 30 m 28 s

如果用户输入两位年份值,那么此值根据 DBCENTURY 环境变量设置展开为 4 位。如果未设置 DBCENTURY,那么在缺省情况下使用字符串 19 作为头两位。

按以下命令行(用于 C shell)所示设置 DBTIME

setenv DBTIME '%b %d, %Y at %H h %M m %S s'

缺省 DBTIME 生成以下 ANSI SQL 字符串格式:

2001-03-21 16\:30\:28

可按以下示例所示设置缺省 DBTIME

setenv DBTIME '%Y-%m-%d %H:%M:%S'

可选字段宽度和精度规范 (w.p) 可直接跟在百分比 (%) 字符之后。它解释为如下所示:

w

指定最小字段宽度。该值是右对齐的,左边填充空格。

-w

指定最小字段宽度。该值是左对齐的,右边填充空格。

0w

指定最小字段宽度。该值是靠右对齐的,并在左侧使用零填充。

p

指定d、H、I、m、M、S、y 和 Y 时间单位值的精度或 b 和 B 月份名中的最大字符数。

下列限制适用于字段宽度和精度规范:

如果数据值提供的位数少于 precision 指定的位数,那么使用前导零填充该值。

如果数据值提供的字符数超过 precision 指定的字符数,那么从右边截断超出的字符。

如果没有为 d、H、I、m、M、S 或 y 占位符指定字段宽度或精度,那么缺省值为 0.2 或 0.4(对于 Y 占位符)。

仅当将 DATETIME 值转换为 ASCII 字符串时,precision 规范才有意义,但反过来却不是这样。

F 占位符不支持此文件宽度和精度语法。

DBDATEGL_DATEGL_DATETIME 一样,DBTIME 设置仅控制数据值的字符串表示;它不能更改 DATETIME 列的内部存储格式。(有关确定 DATE 值的格式的信息,请参阅 DBDATE 环境变量页中对 DBDATE 的讨论。)

在支持基于纪元的日期的东亚语言环境中,DBTIME 还可指定日本或台湾纪元。请参阅《GBase 8s GLS 用户指南》以获取有关设置 DBTIME 以显示基于纪元的 DATETIME 值的更多占位符符号的详细信息以及对 GL_DATETIMEGL_DATE 环境变量的描述。

DBUPSPACE 环境变量

使用 DBUPSPACE 环境变量,可以指定和限制 UPDATE STATISTICS 语句在尝试同时构造多列分布时可使用的系统磁盘空间量。

IMG_256

max 是一个正整数,指定要为 UPDATE STATISTICS 操作中排序而分配的最大磁盘空间 (KB)。

default 为一个正整数,指定不使用 PDQ 时要分配的最大内存数量 (4-50 MB)。

选项

无符号整数:

1:不使用任何索引来排序。在 sqexplain.out 中打印更新统计信息的整个计划。

2:不使用任何索引来排序。不打印更新统计信息的计划。

3 以上:使用可用的索引来排序。在说明输出文件中打印更新统计信息的整个计划。

例如,要将 DBUPSPACE 设置为 2,500 KB 的磁盘空间和 1 兆字节的内存,请输入以下命令:

setenv DBUPSPACE 2500:1

在设置此值后,数据库服务器可在执行 UPDATE STATISTICS 语句期间使用不超过 2,500 KB 的磁盘空间。如果表需要 5 兆字节的磁盘空间用于排序,那么 UPDATE STATISTICS 分两次完成该任务;每次构造一半列的分布。

如果未设置 DBUPSPACE,那么对于 max,缺省值为 1 兆字节 (1,024 KB),而对于 default,缺省值为 15 兆字节。如果尝试将 DBUPSPACE 设置为小于 1,024 KB 的任何值,它会自动设置为 1,024 KB,但不会返回任何错误消息。如果此值尚未大到足以允许一次构造多个分布,那么至少会完成一个分布,即使完成此任务所需的磁盘空间量超过 DBUPSPACE 指定的磁盘空间量也是如此。

DEFAULT_ATTACH 环境变量

IMG_256

如果 DEFAULT_ATTACH 环境变量设置为 1,那么缺省情况下非分段表上的非分段 B 型树索引页面会存储在存储表数据页面的同一分区(和同一数据库空间)中。CREATE INDEX 语句的 IN TABLE 关键字不是必需的(但也不会返回错误)。

但是,对于索引页面始终存储在不同于索引表数据页面的单独分区中的任何其他索引,将 DEFAULT_ATTACH 设置为 1 将对这些索引没有任何作用。存储分发始终与表的存储分发不同的这些索引类型包括

  • R 型树索引,
  • 函数索引,
  • 森林树索引,
  • 分段索引,
  • 以及分段表上的索引。

仅非分段表上的非分段 B 型树索引支持将索引存储数据页面所在的同一分区中。

如果未设置 DEFAULT_ATTACH,那么缺省情况下,未指定 IN TABLE 作为其 Storage Options 子句的任何 CREATE INDEX 语句都会创建将页面存储在不同于数据页面的分区的索引。

要点

GBase 8s 将来的发行版可能不继续支持 DEFAULT_ATTACH。建议不要开发依赖于该不推荐使用的功能的新应用程序。

DELIMIDENT 环境变量

DELIMIDENT 环境变量指定括在双引号 ( " ) 之间的字符串是定界数据库标识。

DELIMIDENT 环境变量在客户机系统上也是受支持的,在客户机系统中它可以设置为 y、n 或不设置。

y 指定客户机应用程序必须使用单引号 ( ' ) 来对字符串定界,且必须仅在定界的 SQL 标识(它可以支持比未定界的标识中有效的字符集更大的字符集)的两边使用双引号 ( " )。定界字符串或定界标识中的字母是区分大小写的。这是 OLE DB 和 .NET 的缺省值。

n 指定客户机应用程序可以使用双引号 ( " ) 或单引号 ( ' ) 来对字符串定界,但是不对 SQL 标识定界。如果数据库服务器在需要 SQL 标识的上下文中遇到用双引号或单引号定界的字符串,将发出错误。符合 SQL 标识条件的所有者名称可以用单引号 ( ' ) 来定界。 必须使用一对相同的引号来对字符串定界。

这是 ESQL/C、JDBC 和 ODBC 的缺省值。具有 ESQL/C 作为底层的 API(如 GBase 8s 4GL、DataBlade® API (LIBDMI) 和 C++ API)具有与 ESQL/C 相同的行为,并使用“n”作为缺省值(如果在客户机系统上没有指定 DELIMIDENT 的值)。

在客户机系统上指定没有值的 DELIMIDENT 环境变量要求客户机应用程序使用 DELIMIDENT 设置,这是应用程序编程接口 (API) 的缺省设置。

IMG_256

不需要任何值;DELIMIDENT 生效(如果它存在的话),且当它在环境变量列表上时仍然有效。当 DELIMIDENT 在服务器级别设置时,除去此变量需要重新启动服务器。

定界标识可以包含空格(如短语 "Vitamin E"),也可以与 SQL 关键字完全相同(如 "TABLE" 或 "USAGE")。还可使用定界标识来声明包含 SQL 标识的缺省字符集之外的字符的数据库标识(如“Column #6”)。在缺省语言环境中,此缺省字符集由字母、数字和下划线 ( _ ) 符号组成。

即使设置了 DELIMIDENT,您也可以使用单引号 ( ' ) 来将权限标识定界为数据库对象名称的所有者名称部分,如以下示例所示:

RENAME COLUMN 'Owner'.table2.collum3 TO column3;

此示例是一般规则的例外,一般规则是这样的:当设置了 DELIMIDENT 时,SQL 解析器将以单引号定界的字符串解释为文字串,而将以双引号 ( " ) 定界的字符串解释为 SQL 标识。

数据库标识符(也称为 SQL 标识符)是数据库对象(例如:表和列)的名称。存储器标识是存储器对象(例如,数据库空间、Blob 空间和智能大对象空间)的名称。不能使用 DELIMIDENT 来声明包含缺省 SQL 字符集以外字符的存储器标识。

定界标识是区分大小写的。要使用定界标识,用 GBase 8s ESQL/C 编写的应用程序必须在编译时和运行时设置 DELIMIDENT。

要点

如果尚未设置 DELIMIDENT,应注意对它进行设置可能会导致在定界 SQL 标识(例如,字符串文字的定界符)之外的上下文中使用双引号 ( " ) 的现有 .sql 脚本或客户机应用程序出错。如果设置了 DELIMIDENT,那么必须对不是 SQL 标识的定界构造使用单引号 ( ' ) 而不是双引号。

在使用 C shell 并已设置了 DELIMIDENT 的 UNIX™ 系统上,可通过以下命令禁用此功能(它会导致双引号之间的任何内容都解释为 SQL 标识):

unsetenv DELIMIDENT

ENVIGNORE 环境变量 (UNIX™)

ENVIGNORE 环境变量可取消激活公共(共享)配置文件 gbasedbt.rc 和专用环境配置文件 .gbasedbt 中的指定环境变量设置。

IMG_256

variable 要取消激活的环境变量的名称。

在连续 variable 名称之间使用冒号 ( : )。例如:要忽略环境配置文件中的 DBPATH 和 DBMONEY 条目,输入以下命令:

setenv ENVIGNORE DBPATH:DBMONEY

公共环境配置文件存储在 $GBASEDBTDIR/etc/gbasedbt.rc 中。

专用环境配置文件以 .gbasedbt 的形式存储在用户的主目录中。

有关创建或修改环境配置文件的信息,请参阅在配置文件中设置环境变量

ENVIGNORE 本身不能在环境配置文件中进行设置。

FET_BUF_SIZE 环境变量

FET_BUF_SIZE 环境变量可覆盖所有数据类型的访存缓冲区的大小的缺省设置,但 BYTE 和 TEXT 值除外。 对于 ANSI 数据库,您必须针对 FET_BUF_SIZE 环境变量将事务设置为 READ ONLY 来提高性能,否则会逐一返回行。

IMG_256

size 是一个正整数,它大于缺省缓冲区大小,但不超过 2147483648 (2 GB),用于指定访存缓冲区的大小(以字节计)来保存查询检索的数据。

例如,要在使用 C shell 的 UNIX™ 系统上将缓冲区大小设置为 5,000 字节,请输入以下命令来设置 FET_BUF_SIZE:

setenv FET_BUF_SIZE 5000

在将 FET_BUF_SIZE 设置为有效值时,新值将覆盖缺省值(或先前对 FET_BUF_SIZE 设置的任何值)。访存缓冲区的缺省设置取决于行大小。

BYTE 和 TEXT 值的处理不会受 FET_BUF_SIZE 的影响。

如果将 FET_BUF_SIZE 设置为小于缺省大小的值或大于 2147483648 (2 GB) 的值,不会发生任何错误。但是,在这些情况下,无效访存缓冲区大小将被忽略,而缺省大小将生效。

有效的 FET_BUF_SIZE 设置不仅对本地数据库服务器有效,而且对从中通过分布式查询(其中,本地服务器作为协调程序而远程数据库作为下级)检索行的任何远程数据库服务器也有效。缓冲区的大小越大,可能返回的行越多,于是客户机应用程序必须等待数据库服务器返回行的时间也就越长。大型缓冲区可通过降低填充客户机端缓冲区的开销来改进性能。

IFX_DEF_TABLE_LOCKMODE 环境变量

IFX_DEF_TABLE_LOCKMODE 环境变量可在未显式指定 LOCKMODE PAGE 或 LOCKMODE ROW 关键字的情况下对后续创建的数据库表指定缺省锁定方式。 如果必须创建同一锁定方式的几个表,此功能是非常方便的。使用 C shell 的 UNIX™ 系统支持以下语法:

IMG_256

PAGE 缺省锁定方式是页级粒度的。该值禁用 COMMITTED READ 的 LAST COMMITTED 功能。

ROW 缺省锁定方式是行级别粒度的。

可通过将 ONCONFIG 文件的 DEF_TABLE_LOCKMODE 参数设置为 PAGE 或 ROW 来获取类似功能。 创建或修改表时,会根据以下优先级的降序(最高至最低)来解析所有冲突的锁定方式规范。

  1. CREATE TABLE 或 ALTER TABLE 的显式 LOCKMODE 指定
  2. IFX_DEF_TABLE_LOCKMODE 环境变量设置
  3. ONCONFIG 文件中的 DEF_TABLE_LOCKMODE 参数设置
  4. 系统缺省所订方式(= 页方式)

要将 DEF_TABLE_LOCKMODE 设置为缺省方式(或者要在未设置 DEF_TABLE_LOCKMODE 的情况下复原系统缺省值),请使用以下命令:

unsetenv IFX_DEF_TABLE_LOCKMODE

如果在运行 oninit 之前在数据库服务器的环境中设置了 IFX_DEF_TABLE_LOCKMODE,那么它的作用域是数据库服务器的所有会话(就如同在 ONCONFIG 文件中设置了 DEF_TABLE_LOCKMODE 一样)。如果在 shell 又或者在 HOME/.gbasedbtHOME/.gbasedbt** 或 **GBASEDBTDIR/etc/gbasedbt.rc 文件中设置了 IFX_DEF_TABLE_LOCKMODE,那么作用域被限制为当前会话(如果在 shell 中设置了它的话)或个别用户。

要点

这对现有表没有任何影响。如果指定 ROW 作为锁定方式,那么数据库将使用它来复原、恢复或复制数据。对于以 PAGE 方式创建的表,这可能会导致锁定表溢出或性能下降。

IFX_DIRECTIVES 环境变量

IFX_DIRECTIVES 环境变量设置确定优化器是否允许来自查询内的查询优化伪指令。IFX_DIRECTIVES 环境变量是在客户机上设置的。

可指定 ON 和 OFF 或 1 和 0 来设置环境变量。

IMG_256

1 接受优化器伪指令

0 不接受优化器伪指令

IFX_DIRECTIVES 环境变量的设置会覆盖为数据库服务器设置的 DIRECTIVES 配置参数的值。但是,如果未设置 IFX_DIRECTIVES 环境变量,那么所有客户机会话将继承 ONCONFIG 参数 DIRECTIVES 确定的伪指令的数据库服务器配置。IFX_DIRECTIVES 环境变量的缺省设置为 ON。

有关 DIRECTIVES 参数的更多信息,请参阅《GBase 8s 管理员参考》。有关伪指令对性能影响的更多信息,请参阅《GBase 8s 性能指南》。

IFX_EXTDIRECTIVES 环境变量

IFX_EXTDIRECTIVES 环境变量指定查询优化器是否允许来自 sysdirectives 系统目录表的外部查询优化伪指令应用到现有应用程序的查询中。

您有两个用于设置 IFX_EXTDIRECTIVES 环境变量的选项:

全局,用于所有用户:

在服务器上,将环境中的 IFX_EXTDIRECTIVES 设置为用户 gbasedbt,然后运行 oninit 命令。

特定于客户机:

在客户机上,设置环境中的 IFX_EXTDIRECTIVES。在客户机环境中设置 IFX_EXTDIRECTIVES 时,无论使用哪种服务器(全局)设置,都会使用客户机设置。

您可以使用 onstat -g env 命令来确定服务器设置。

可指定 ON 和 OFF 或 1 和 0 来设置环境变量。

IMG_256

1 接受的外部优化器伪指令

0 不接受的外部优化器伪指令

如果数据库服务器配置文件中的参数 EXT_DIRECTIVES 和客户机系统上的环境变量设置 IFX_EXTDIRECTIVES 都已设置为 1 或 ON,那么给定客户机应用程序内的查询可使用外部伪指令。如果未设置 IFX_EXTDIRECTIVES,那么仅当 ONCONFIG 参数 EXT_DIRECTIVES 设置为 2 时才支持外部伪指令。下表概括了支持外部优化器伪指令的有效 IFX_EXTDIRECTIVES 和 EXT_DIRECTIVES 设置的效果。

表 1. 外部伪指令上的 IFX_EXTDIRECTIVES 和 EXT_DIRECTIVES 设置的效果

EXT_DIRECTIVES = 0EXT_DIRECTIVES = 1EXT_DIRECTIVES = 2
IFX_EXTDIRECTIVES 无设置OFFOFFON
IFX_EXTDIRECTIVES0 = OFFOFFOFFOFF
IFX_EXTDIRECTIVES1 = ONOFFONON

数据库服务器将除了 1 或 2(或无设置)的任何 EXT_DIRECTIVES 设置解释为等同于 OFF,从而禁用外部伪指令的支持。IFX_EXTDIRECTIVES 除了 1 以外的任何值对客户机具有相同效果。

有关如何定义外部优化器伪指令的信息,请参阅 GBase 8s SQL 指南:语法 中对 SQL 的 SAVE EXTERNAL DIRECTIVES 语句的描述。有关 EXT_DIRECTIVES 配置参数的更多信息,请参阅《GBase 8s 管理员参考》。有关伪指令对性能影响的更多信息,请参阅《GBase 8s 性能指南》。

IFX_LARGE_PAGES 环境变量

IFX_LARGE_PAGES 环境变量指定数据库服务器是否可以在硬件和操作系统支持共享内存大页面的平台上使用大页面。如果在服务器环境中启用该环境变量,那么 GBase 8s 可以对物理内存中的非消息共享内存段使用大页面。

只有 AIX® 和 Solaris 操作系统支持 IFX_LARGE_PAGES 环境变量。如果操作系统不支持大页面或系统上没有配置大页面,那么 IFX_LARGE_PAGES 的设置对 GBase 8s 没有影响。

只有 AIX、Solaris 和 Linux™ 操作系统支持 IFX_LARGE_PAGES 环境变量。如果操作系统不支持大页面或系统上没有配置大页面,那么 IFX_LARGE_PAGES 的设置对 GBase 8s 没有影响。

您可以指定 1 或 0 设置此环境变量。

IMG_256

0 已禁用大页面。这是 AIX 系统上的缺省值。

1 已启用大页面。这是 Solaris 系统上的缺省值。

已启用大页面。这是 Solaris 和 Linux 系统上的缺省值。

DBSA 必须使用操作系统命令来配置大页面。请参阅操作系统文档以获取配置过程。

如果足够的大页面已配置且可用,GBase 8s 可以对物理内存中锁定的非消息共享内存段使用大页面。RESIDENT 配置参数控制在物理内存中共享内存段是否锁定,以使得段无法交换。如果没有足够的大页面保存段,段可能包含大页面和常规页面的组合。

在 AIX 上,GBase 8s 使用的大页面的大小为 16 MB。

在 Linux x86_64 上,GBase 8s 使用的大页面由 /proc/meminfo 文件中的 Hugepagesize 条目定义。

GBase 8s 会自动对齐段地址并向上舍入到段大小。除了有关舍入的消息之外,服务器还会在每次尝试使用大页面存储段时将参考消息写入到服务器日志文件。

启用 IFX_LARGE_PAGES 时,使用大页面可以显著提高大内存配置中的性能。

IFX_LOB_XFERSIZE 环境变量

使用 IFX_LOB_XFERSIZE 环境变量,可以指定将多少字节的 CLOB 或 BLOB 数据从客户机应用程序传输到数据库服务器之后执行错误检查。

每次传输指定的字节数时都会进行错误检查。如果发生错误,不会发送其余数据并报告错误。如果没有发生错误,文件传输会继续,直到传输完成。

例如,如果 IFX_LOB_XFERSIZE 的值设置为 10485760 (10 MB),那么每发送 10485760 个字节的 CLOB 或 BLOB 数据之后就会执行错误检查一次。如果没有设置 IFX_LOB_XFERSIZE,那么会在全部 BLOB 或 CLOB 数据都传输完成之后执行错误检查。

IFX_LOB_XFERSIZE 的有效范围是从 1 到 9223372036854775808 个字节。IFX_LOB_XFERSIZE 环境变量是在客户机上设置的。

IMG_256

value 在检查是否发生错误之前,CLOB 或 BLOB 中从客户机应用程序传输到数据库服务器的字节数

您应该调整 IFX_LOB_XFERSIZE 的值以适合您的环境。将 IFX_LOB_XFERSIZE 设置为足够低,以便尽早检测到大 BLOB 或 CLOB 数据类型的传输错误,但不要过低,否则会使用过多的网络资源。

IFX_LONGID 环境变量

IFX_LONGID 环境变量设置和客户机应用程序的版本号确定给定客户机应用程序能否处理长标识。(较旧版本的 GBase 8s 将 SQL 标识限制为 18 字节或更少字节;在设置了 IFX_LONGID 的情况下,长标识最多可有 128 字节。)有效 IFX_LONGID 值包括 1 和 0。

IMG_256

1 客户机支持长标识。

0 客户机不能支持长标识。

当 IFX_LONGID 设置为零时,应用程序仅显示长标识符的前 18 个字节,而不(通过 +)指示发生了截断。

如果取消设置 IFX_LONGID 或将其设置为 1 或 0 之外的值,那么根据客户机应用程序的内部版本确定。如果(基于服务器的)版本不低于 9.0304 或处于(基于 CSDK 的)范围 2.90 ≤ 版本 < 4.0,那么认为该客户机能够处理长标识符。否则认为客户机应用程序不能处理长标识符。

IFX_LONGID 设置覆盖客户机应用程序的内部版本。如果客户机不能处理长标识符(尽管版本号较新),那么将 IFX_LONGID 设置为 0。如果客户机版本可以处理长标识符(尽管版本号较旧),那么将 IFX_LONGID 设置为 1。

如果在客户机上设置 IFX_LONGID,那么该设置仅影响该客户机。如果在设置了 IFX_LONGID 的情况下启动数据库服务器,那么所有客户机应用程序在缺省情况下使用该设置。但是,如果在客户机和数据库服务器上将 IFX_LONGID 设置为不同的值,那么客户机设置优先。

重要

如果 ESQL 可执行文件是使用 -static 选项构建的且构建时使用的 libos.a 库版本不支持长标识,那么这些文件不能使用 IFX_LONGID 环境变量。必须使用新的包括对长标识的支持的 libos.a 库重新编译这类应用程序。使用共享库(没有 -static 选项)的可执行文件可使用 IFX_LONGID 而不进行重新编译(如果它们使用新的提供对长标识的支持的 libifos.so 的话)。有关详细信息,请参阅 ESQL 产品出版物。

IFX_NETBUF_PVTPOOL_SIZE 环境变量 (UNIX™)

使用 IFX_NETBUF_PVTPOOL_SIZE 环境变量,可以为每个数据库服务器会话指定可用(未使用)专用网络缓冲池的最大大小。

IMG_256

count 指定池中单元(缓冲区)数目的整数。

缺省大小为 1 个缓冲区。如果 IFX_NETBUF_PVTPOOL_SIZE 设置为零,那么每个会话从可用全局网络缓冲池获取缓冲区。必须以十进制格式指定该值。

IFX_NETBUF_SIZE 环境变量

使用 IFX_NETBUF_SIZE 环境变量可以将网络缓冲区配置为最佳大小。使用此环境变量可以针对每个数据库服务器会话为可用(未使用)全局池和专用网络缓冲池中的所有网络缓冲区指定大小。

IMG_256

size 为一个网络缓冲区的整数大小(以字节计)。

缺省大小为 4 KB(4,096 字节)。最大大小为 64 KB(65,536 字节),最小大小为 512 字节。可以十六进制或十进制格式指定该值。

技巧

不能对每个会话设置不同大小。

IFX_NO_SECURITY_CHECK 环境变量 (UNIX™)

IFX_NO_SECURITY_CHECK 环境变量允许用户 gbasedbtroot 完成对数据库服务器实例的操作,即使 GBase 8s 实用程序检测到 $GBASEDBTDIR 路径不安全也是如此。请勿使用此环境变量,除非系统设置确实需要。

IFX_NO_SECURITY_CHECK 的目的是用于以下环境:数据库服务器已启动,但在运行时检测到运行时路径不再安全。在此情况中,超级用户可能需要停止数据库服务器,以纠正安全缺陷。使用此环境变量时,用户 gbasedbtroot 可以使用 onmode 实用程序关闭不安全的 GBase 8s 实例,而不使用此环境变量时则无法关闭不安全的实例,因为当 $GBASEDBTDIR 路径不安全时主要程序不会运行。

使用此环境变量有一些风险,但在一些情况中,可能需要纠正更大的安全性问题。由于仅用户 gbasedbtroot 可以调用 IFX_NO_SECURITY_CHECK,因此非法用户不大可能能够对其进行运行。

要使用此环境变量,请将其设置为任何非空字符串。

IMG_256

1 运行此环境变量时在此处输入的任何值都会禁用 onsecurity 实用程序。

重要

完成安全性问题的故障诊断之后,关闭此环境变量。

IFX_NO_TIMELIMIT_WARNING 环境变量

GBase 8s 软件产品的试用版或评估版(自安装软件起经过一段限制时间后会停止运作)在缺省情况下会发出警告消息,告诉用户许可证何时将到期。但是如果设置了环境变量 IFX_NO_TIMELIMIT_WARNING,那么限制时间的软件不会发出这些警告消息。

IMG_256

对于不喜欢查看警告消息的用户来说,此功能是重定向错误输出的另一种选择。但是,IFX_NO_TIMELIMIT_WARNING 设置对限制时间的许可证何时过期没有影响;软件会在未设置此环境变量而停止起作用的同一时间点停止起作用。如果的确设置了 IFX_NO_TIMELIMIT_WARNING,那么用户将不会看到可能令人生气的关于许可证即将到期的警告,但是当数据库服务器(或无论什么具有限制时间的许可证的软件)在没有任何警告的情况下停止起作用时,一些用户可能会对您恼怒的。

IFX_NODBPROC 环境变量

IFX_NODBPROC 环境变量使您能够阻止数据库服务器运行 sysdbopen( ) 或 sysdbclose( ) 过程。如果将此环境变量设置为任何值,那么这些过程无法运行。

IMG_256

string 设置任何值都将阻止数据库服务器运行 sysdbopen( ) 或 sysdblcose( )。

IFX_NOT_STRICT_THOUS_SEP 环境变量

GBase 8s 要求千位分隔符之后具有 3 位数字。例如,1,000 被认为是正确的,而 1,00 则是错误的。在前发行版中,这两种格式都被认为是正确的。

IMG_256

n 针对前发行版中的行为,将 n 设置为 1,即千位分隔符之后具有的数字可以少于三位。

IFX_ONTAPE_FILE_PREFIX 环境变量

当 TAPEDEV 和 LTAPEDEV 指定目录时,使用 IFX_ONTAPE_FILE_PREFIX 环境变量来指定备份文件名的前缀(替换 hostname_servernum 格式)。如果没有设置值,那么各个等级的文件名为 hostname_servernum_Ln,而日志文件的文件名为 hostname_servernum_Log nnnnnnnnnn。

如果将 IFX_ONTAPE_FILE_PREFIX 的值设置为 My_Backup,那么备份文件名具有以下名称:

  • My_Backup_L0
  • My_Backup_L1
  • My_Backup_L2
  • My_Backup_Log0000000001
  • My_Backup_Log0000000002

IMG_256

string 用于备份文件名的前缀。

IFX_PAD_VARCHAR 环境变量

IFX_PAD_VARCHAR 环境变量设置对数据库服务器发送与接收 VARCHAR 和 NVARCHAR 数据值的方式进行控制。有效 IFX_PAD_VARCHAR 值为 1 和 0。

IMG_256

1 发送整个结构,最高可达声明的 max 大小。

0 只发送包含数据的结构部分。

例如:当 IFX_PAD_VARCHAR 设置为 0 时,发送声明为 NVARCHAR(255) 的列中的“ABC”字符串时会发送 3 个字节。

但是,如果在先前示例中设置为 1,那么发送的字节的数目将会为 255 字节。

IFX_PAD_VARCHAR 结果是上下文相关的。在低带宽网络中,设置为 0 能够通过减少发送数据的总量改进性能。但是在高带宽网络中,如果处理可变长度数据包所需的 CPU 时间大于发送整个字符流所需的时间,那么设置为 1 可改进性能。在跨服务器分布的操作中,此设置无效,并且填充字符将从在数据库服务器之间传递的 VARCHAR 或 NVARCHAR 值中删除。

IFX_SMX_TIMEOUT 环境变量

使用 IFX_SMX_TIMEOUT 环境变量,可以指定高可用性复制 (HDR)、远程独立 (RS) 或共享磁盘 (SD) 辅助服务器在服务器多路复用器组 (SMX) 连接中等待主服务器的消息的最大秒数。

IMG_256

value 秒数的任何正数字值,或 -1 以禁用此环境变量。可指定的秒数没有上限。

缺省值

10 例如,要指示辅助服务器应等待不超出 60 秒,请指定:

setenv IFX_SMX_TIMEOUT 60

如果在 IFX_SMX_TIMEOUT 环境变量中指定的秒数后且在 IFX_SMX_TIMEOUT_RETRY 环境变量中指定的周期数完成后,辅助服务器未接收到任何消息,那么辅助服务器将打印 online.log 中的错误消息并关闭 SMX 连接。如果 SMX 超时消息在 online.log 中,那么可能需要增加 IFX_SMX_TIMEOUT 值和/或 IFX_SMX_TIMEOUT_RETRY 值,并重新启动辅助节点。

此环境变量仅适用于辅助服务器。如果在主服务器上设置此环境变量,那么仅当主服务器在发生故障之后变为辅助服务器时,它才会变为有效。

IFX_SMX_TIMEOUT_RETRY 环境变量

使用 IFX_SMX_TIMEOUT_RETRY 环境变量来指定在未接收到主服务器的响应的情况下,高可用性复制 (HDR)、远程独立 (RS) 或共享磁盘 (SD) 辅助服务器将重复 IFX_SMX_TIMEOUT 环境变量所指定等待周期的次数。

IMG_256

value 任何正数字值

缺省值 6

例如,要指示在未接收到主服务器的响应的情况下,IFX_SMX_TIMEOUT 配置参数中指定的时间量应该重复最多 20 次,请指定:

setenv IFX_SMX_TIMEOUT_RETRY 20

如果在 IFX_SMX_TIMEOUT 环境变量中指定的秒数后且在 IFX_SMX_TIMEOUT_RETRY 环境变量中指定的周期数完成后,辅助服务器未接收到任何消息,那么辅助服务器将打印 online.log 中的错误消息并关闭 SMX 连接。如果 SMX 超时消息在 online.log 中,那么可能需要增加 IFX_SMX_TIMEOUT 值和/或 IFX_SMX_TIMEOUT_RETRY 值,并重新启动辅助节点。

此环境变量仅适用于辅助服务器。如果在主服务器上设置此环境变量,那么仅当主服务器在发生故障之后变为辅助服务器时,它才会变为有效。

IFX_UNLOAD_EILSEQ_MODE 环境变量

要使用此环境变量,请将其设置为任何非空字符串。

IMG_256

value 任何字母或数字值。例如:yes、true 或 1。

从数据库访存或检索字符数据时,此环境变量会生效。

setenv IFX_UNLOAD_EILSEQ_MODE 1
setenv IFX_UNLOAD_EILSEQ_MODE yes
setenv IFX_UNLOAD_EILSEQ_MODE on

此环境变量类似于在 ONCONFIG 文件中设置 EILSEQ_COMPAT_MODE 配置参数。该配置参数会影响插入到数据库中的字符数据,而 IFX_UNLOAD_EILSEQ_MODE 环境变量会影响从数据库卸载的字符数据。

IFX_UPDDESC 环境变量

必须先在执行时设置 IFX_UPDDESC 环境变量,才能执行 UPDATE 语句的 DESCRIBE。

IMG_256

Value 是非 NULL 的值。

NULL 值(此处意味着未设置 IFX_UPDDESC)禁用 describe-for-update 功能。任何非 NULL 的值都会启用该功能。

IFX_XASTDCOMPLIANCE_XAEND 环境变量

IFX_XASTDCOMPLIANCE_XAEND 环境变量能够使用以下语法覆盖当前会话的配置参数。有效 IFX_XASTDCOMPLIANCE_XAEND 值 为 1 和 0。

IMG_256

0 仅在显式回滚后释放全局事务

1 在任何回滚后释放全局事务

当通过 DISABLE_B162428_XA_FIX 配置参数对新行为禁用服务器实例后,而一个客户机需要新行为的情况下,此环境变量可能特别有用。将此环境变量设置为零可支持当前会话中的新行为。

IFX_XFER_SHMBASE 环境变量

实用程序用于连接服务器共享内存段的备用基地址。

IMG_256

地址 十六进制的有效地址

在数据库服务器分配共享内存后,数据库服务器可分配多个邻近的操作系统共享内存段。连接共享内存的客户机实用程序也必须连续地连接所有这些操作系统分段。实用程序可能在服务器将共享内存段连接到的地址装入一些其他的共享对象(例如,gbackuprestore 上的 xbsa 库)。要在这种情况下进行变通,您可以在环境变量 IFX_XFER_SHMBASE 中为实用程序指定不同的基地址以连接共享内存段。onstat、onmode 和 oncheck 实用程序必须作为 oninit 连接来完全相同的共享内存库。设置 IFX_XFER_SHMBASE 不是这些实用程序的选项。

IFXRESFILE 环境变量 (Linux)

运行 RPM-method 安装命令之前,将 IFXRESFILE 环境变量设置为响应文件的路径和名称。如果要接受缺省的 GBase 8s 安装设置,请勿使用此环境变量。

IMG_256

path_filename 指定响应文件(.ini 文件)的路径和名称,在此文件中您更改了随安装介质一起提供的 bundle.ini 文件的缺省安装设置。

有关通过定制 bundle.ini 文件来创建响应文件的信息,请参阅《UNIX™ 和 Linux™ 系统上 GBase 8s 安装指南》。

IMCADMIN 环境变量

IMCADMIN 环境变量支持 imcadmin 管理工具,这是通过指定数据库服务器的名称(imcadmin 可通过该数据库服务器连接至 MaxConnect)实现的。要让 imcadmin 正常运行,必须在使用 GBase 8s 产品之前设置 IMCADMIN。

IMG_256

dbservername 是数据库服务器的名称。

此处 dbservername 必须列示在运行 MaxConnect 的计算机上的 sqlhosts 文件中。MaxConnect 使用此设置来从 sqlhosts 文件获取以下连接信息:

  • 必须建立管理侦听器端口的位置
  • 指定数据库服务器使用的网络协议
  • 指定数据库服务器所在的系统的主机名

不能使用 imcadmin 工具,除非 IMCADMIN 设置为有效数据库服务器名。

有关使用 IMCADMIN 的更多信息,请参阅 GBase 8s MaxConnect 用户指南。

IMCCONFIG 环境变量

IMCCONFIG 环境变量对 MaxConnect 配置文件指定非缺省文件名和路径名(可选)。 在支持 C shell 的 UNIX™ 系统上,可使用以下命令来设置此变量。

IMG_256

pathname 是全路径名或简单文件名。

如果该设置是未经全路径名限定的文件名,那么 MaxConnect 在 $GBASEDBTDIR/etc/ 目录中搜索该指定文件。因此,如果将 IMCCONFIG 设置为 IMCconfig.imc2,MaxConnect 会搜索作为其配置文件的 $GBASEDBTDIR/etc/IMCconfig.imc2

如果未设置 IMCCONFIG 环境变量,那么 MaxConnect 在缺省情况下搜索作为其配置文件的 $GBASEDBTDIR/etc/IMCconfig

IMCSERVER 环境变量

IMCSERVER 环境变量指定了连接的相关信息所在 sqlhosts 文件中数据库服务器条目的名称。

数据库服务器可以是本地或远程的。在支持 C shell 的 UNIX™ 系统上,可使用该命令设置 IMCSERVER 环境变量。

IMG_256

dbservername 是数据库服务器的有效名称。

此处 dbservername 必须是 sqlhosts 文件中的数据库服务器的名称。有关使用 MaxConnect 的 sqlhosts 设置的更多信息,请参阅《GBase 8s 管理员指南》。除非 IMCSERVER 设置为有效的数据库服务器,否则不能使用 MaxConnect。

GBASEDBTC 环境变量 (UNIX™)

GBASEDBTC 环境变量指定要用来编译 GBase 8s ESQL/C 所生成文件的 C 编译器的文件名或路径名。 该设置仅在 C 编译阶段生效。

如果未设置 GBASEDBTC,那么大部分系统上的缺省编译器为 cc

compiler C 编译器的文件名。

pathname C 编译器的完整路径名。

例如,要指定 GNU C 编译器,请输入以下命令:

setenv GBASEDBTC gcc
重要

如果使用 gcc,请注意,数据库服务器假定字符串是可写的,所以您必须使用 -fwritable-strings 选项进行编译。任务失败可能会产生不可预测的结果(可能包括核心转储)。

GBASEDBTCMNAME 环境变量

如果连接管理器发出事件警报,那么会使用 GBASEDBTCMNAME 环境变量来存储发出警报的连接管理器实例的名称。该环境变量由连接管理器自动设置。

GBASEDBTCMNAME 环境变量对应于连接管理器配置文件中的 NAME 参数。CMALARMPROGRAM 程序使用该环境变量来确定对事件警报负责的连接管理器实例。您也可以在自己的连接管理器事件警报处理程序中使用该环境变量。

该环境变量由连接管理器自动设置,不应进行修改。

GBASEDBTCMCONUNITNAME 环境变量

如果连接管理器发出事件警报,那么会使用 GBASEDBTCMCONUNITNAME 环境变量来存储发出警报的连接管理器连接单元的名称。该环境变量由连接管理器自动设置。

GBASEDBTCMCONUNITNAME 环境变量对应于连接管理器配置文件中的连接单元名称参数。CMALARMPROGRAM 程序使用该环境变量来确定对事件警报负责的连接管理器实例。您也可以在自己的连接管理器事件警报处理程序中使用该环境变量。

该环境变量由连接管理器自动设置,不应进行修改。

GBASEDBTCONCSMCFG 环境变量

使用 GBASEDBTCONCSMCFG 环境变量可以指定 concsm.cfg 文件的位置(该文件描述通信支持模块)。

pathname 指定 concsm.cfg 文件的全路径名。

以下命令指定 concsm.cfg 文件在 /usr/myfiles 中:

setenv GBASEDBTCONCSMCFG /usr/myfiles

还可对该文件指定不同名称。以下示例在同一目录中指定 csmconfig 的文件名。

setenv GBASEDBTCONCSMCFG /usr/myfiles/csmconfig

concsm.cfg 文件的缺省位置位于 $GBASEDBTDIR/etc 中。有关通信支持模块和 concsm.cfg 文件内容的更多信息,请参阅 GBase 8s 管理员参考。

GBASEDBTCONRETRY 环境变量

GBASEDBTCONRETRY 环境变量设置客户机在 GBASEDBTCONTIME 指定的时间限制期间对每个数据库服务器所作的附加连接尝试的最大次数。

count 是连接至每个数据库服务器的附加尝试的次数。

例如:以下命令将 GBASEDBTCONRETRY 设置为指定三次附加连接尝试(在初次尝试之后):

setenv GBASEDBTCONRETRY 3

GBASEDBTCONRETRY 的缺省值是初次连接尝试之后重试一次。 GBASEDBTCONTIME 设置在下面一节中作了描述,它优先于 GBASEDBTCONRETRY 设置。

GBASEDBTCONTIME 环境变量

GBASEDBTCONTIME 环境变量指定 CONNECT 语句进行建立与数据库服务器的连接的每次尝试持续多少秒后返回错误。如果未设置任何值,那么缺省值 60 秒通常支持几百个并发客户机连接,但对于某些系统,如果设置很低的值(例如 15),可能极少会遇到连接错误。节点间的总距离、硬件速度、流量和网络并发性级别都会影响优化 GBASEDBTCONTIME 时应设置的值。

GBASEDBTCONTIMEGBASEDBTCONRETRY 环境变量允许您将客户机端连接功能配置为重试该连接而不是返回 -908 错误。

seconds 表示建立与数据库服务器的连接的尝试所花的最少秒数。

例如:输入以下命令以将 GBASEDBTCONTIME 设置为 60 秒:

setenv GBASEDBTCONTIME 60

如果 GBASEDBTCONTIME 设置为 60 而 GBASEDBTCONRETRY 设置为 3,那么在异常终止之前,连接数据库服务器的尝试会(在初次尝试 0 秒后)在第 20 秒、第 40 秒和第 60 秒进行(如有必要)。这一 20 秒时间间隔是 GBASEDBTCONTIME 除以 GBASEDBTCONRETRY 的结果。如果尝试将 GBASEDBTCONTIME 设置为零,那么数据库服务器自动将其复位为缺省值 60 秒。

如果 CONNECT 语句的执行涉及搜索 DBPATH,那么应用以下规则:

DBPATH 设置中的所有适当服务器至少都会被访问一次,即使可能超出 GBASEDBTCONTIME 值也是如此。因此,CONNECT 语句运行时可能会超出 GBASEDBTCONTIME 时间限制,并返回指示连接失败或找不到该数据库的错误。

GBASEDBTCONRETRY 指定应对 DBPATH 中的每个数据库服务器条目进行多少次附加连接尝试。

GBASEDBTCONTIME 值在 DBPATH 中指定数目的数据库服务器条目之间分配。因此,如果 DBPATH 包含大量服务器,那么应相应增加 GBASEDBTCONTIME 的值。例如:如果 DBPATH 包含三个条目,尝试每个连接至少花 30 秒,那么将 GBASEDBTCONTIME 设置为 90。

GBASEDBTCONTIME 优先于 GBASEDBTCONRETRY 设置。可以在超出 GBASEDBTCONTIME 值之后但达到 GBASEDBTCONRETRY 值之前结束重试。

如以下示例所示,可使用 onutil SET 命令修改 GBASEDBTCONTIME 和 GBASEDBTCONRETRY 环境变量:

% onutil
1> SET GBASEDBTCONTIME 120;
Dynamic Configuration completed successfully
2> SET GBASEDBTCONRETRY 10;
Dynamic Configuration completed successfully

GBASEDBTCPPMAP 环境变量

设置 GBASEDBTCPPMAP 环境变量以指定 C++ 程序的映射文件的全限定路径名。映射文件中的信息包括数据库服务器类型、支持该数据库对象或值对象类型的共享库的名称、该对象的库入口点以及对其构建对象的 C++ 库。

pathname 存储 C++ 映射文件的目录路径。

该映射文件是可具有任何文件名的文本文件。您可以指定数个映射文件,在 UNIX™ 上用冒号 ( : ) 分隔。

在 UNIX 上,缺省映射文件为 $GBASEDBTDIR/etc/c++map。

GBASEDBTDIR 环境变量

GBASEDBTDIR 环境变量指定包含安装产品文件的子目录的目录。总是必须设置 GBASEDBTDIR。 验证 GBASEDBTDIR 是否设置为安装数据库服务器的目录的全路径名。如果有多个版本的数据库服务器,那么将 GBASEDBTDIR 设置为想要访问的版本的适当目录名。有关何时设置 GBASEDBTDIR 的信息,请参阅《GBase 8s 安装指南》。

pathname 是安装产品文件的目录路径。

例如:要将 GBASEDBTDIR 设置为 usr/gbasedbt/ 以作为安装目录,输入以下命令:

setenv GBASEDBTDIR /usr/gbasedbt

GBASEDBTOPCACHE 环境变量

GBASEDBTOPCACHE 环境变量可对客户机应用程序的登台区域 Blob 空间指定内存高速缓存的大小。

kilobytes 指定您为光学内存高速缓存设置的值。

通过指定内存高速缓存的大小 (KB) 来设置 GBASEDBTOPCACHE 环境变量。指定大小必须等于或小于系统范围的配置参数 OPCACHEMAX 的大小。

如果未设置 GBASEDBTOPCACHE,那么缺省高速缓存大小为 128 千字节或在配置参数 OPCACHEMAX 中指定的大小。OPCACHEMAX 的缺省值是 0。如果将 GBASEDBTOPCACHE 设置为值 0,那么 Optical Subsystem 不使用高速缓存。

GBASEDBTSERVER 环境变量

GBASEDBTSERVER 环境变量指定 SQL API 客户机、DB-Access 实用程序或其他 GBase 8s 产品与之建立显式或隐式连接的缺省数据库服务器。

必须先设置此环境变量,才能使用 GBase 8s 客户机产品。它具有以下语法。

dbservername 是缺省数据库服务器的名称。

GBASEDBTSERVER 的值可以是本地或远程服务器,但必须对应于运行该应用程序的计算机上的 $GBASEDBTDIR/etc/sqlhosts 文件中的有效 dbservername 条目。dbservername 必须以小写字母开头,且不能超过 128 字节。它可以包括任何可打印字符,但大写字符、字段定界符(空格或制表符)、换行字符和连字符(或减号)除外。

例如:以下命令指定 coral 数据库服务器作为缺省值:

setenv GBASEDBTSERVER coral

GBASEDBTSERVER 指定执行 CONNECT DEFAULT 时应用程序连接的数据库服务器。它还定义在应用程序中的第一条语句不是 CONNECT 语句的情况下,应用程序与之建立初始隐式连接的数据库服务器。

要点

必须设置 GBASEDBTSERVER,即使该应用程序或 DB-Access 不使用隐式或显式缺省连接。

GBASEDBTSHMBASE 环境变量 (UNIX™)

GBASEDBTSHMBASE 环境变量仅影响连接至使用进程间通信 (IPC) 共享内存 (ipcshm) 协议的 GBase 8s 数据库的客户机应用程序。

重要

重新设置 GBASEDBTSHMBASE 要求您全面了解应用程序如何使用内存。一般您不会重新设置 GBASEDBTSHMBASE。

GBASEDBTSHMBASE 指定共享内存通信段连接至客户机进程的位置,以便客户机应用程序可避免与它使用的其他内存段冲突。如果不设置 GBASEDBTSHMBASE,那么通信段的内存地址缺省为特定于实现的值,如 0x800000。

value 是用于计算内存地址的整数 (KB)。

数据库服务器通过将 GBASEDBTSHMBASE 的值乘以 1,024 来计算连接各段的内存地址。例如:在使用 C shell 的系统上,可通过输入以下命令将内存地址设置为值 0x800000:

setenv GBASEDBTSHMBASE 8192

有关更多信息,请参阅《GBase 8s 管理员指南》和《GBase 8s 管理员参考》。

GBASEDBTSQLHOSTS 环境变量

GBASEDBTSQLHOSTS 环境变量指定 SQL 客户机或数据库服务器可找到连接信息的位置。

pathname 连接信息文件的完整路径名。

UNIX: 缺省值为 $GBASEDBTDIR/etc/sqlhosts

例如,以下命令会覆盖缺省位置,并指定 mysqlhosts 文件位于 /work/envt 目录中:

setenv GBASEDBTSQLHOSTS /work/envt/mysqlhosts

GBASEDBTSTACKSIZE 环境变量

GBASEDBTSTACKSIZE 环境变量指定适用于所有客户机进程的堆栈大小 (KB)。在客户机环境中为 GBASEDBTSTACKSIZE 设置的任何值将被数据库服务器忽略。

size 是一个整数,用于设置 SQL 客户机线程的堆栈大小 (KB)。

例如,要将 GBASEDBTSTACKSIZE 降至 20 KB,请输入以下命令:

setenv -STACKSIZE 20

如果未设置 GBASEDBTSTACKSIZE,那么从数据库服务器配置参数 STACKSIZE 获取堆栈大小,否则堆栈大小的缺省值为特定于平台的值。对于非递归数据库活动,SQL 客户机的主线程的缺省堆栈大小值为 32 KB。

警告

有关设置此值的指示信息,请参阅《GBase 8s 管理员参考》。如果 GBASEDBTSTACKSIZE 的值设置得不正确,可能导致数据库服务器产生故障。

GBASEDBTTERM 环境变量 (UNIX)

GBASEDBTTERM 环境变量指定 DB-Access 是否应该使用 terminfo 目录或 termcap 文件中的信息。

在基于字符的系统上,terminfo 目录和 termcap 文件确定依赖于终端的键盘和屏幕功能,例如:功能键的操作、屏幕显示的色彩和强度属性以及窗口边界和图形字符的定义。

如果未设置 GBASEDBTTERM,那么缺省设置为 terminfo。

terminfo 目录对已定义的每个终端名称包含一个文件。GBASEDBTTERM 的 terminfo 设置仅在完全支持 UNIX™ System V terminfo 库的计算机上受支持。有关详细信息,请参阅产品的机器说明文件。

在系统上安装 DB-Access 时,termcap 文件放在 $GBASEDBTDIR 的 etc 子目录中。此文件是操作系统 termcap 文件的超集。可使用数据库服务器提供的 termcap 文件、系统 termcap 文件或您创建的 termcap 文件。如果不使用缺省 termcap 文件,那么必须设置 TERMCAP 环境变量。有关设置 TERMCAP 环境变量的信息,请参阅TERMCAP 环境变量 (UNIX)

INF_ROLE_SEP 环境变量

在 UNIX™ 系统上安装或重新安装数据库服务器时,INF_ROLE_SEP 环境变量会配置角色分离的安全性功能。角色分离强制根据运行和审计数据库服务器的人员分隔管理任务。在完成安装后,INF_ROLE_SEP 没有效果。如果未设置 INF_ROLE_SEP,那么用户 gbasedbt(缺省值)可执行所有管理任务。

IMG_256

n 是任意正整数。

如果在 UNIX 平台上安装 GBase 8s 时设置了 INF_ROLE_SEP,那么会实施角色分离并会指定单独的组来负责以下每项责任:

  • 数据库服务器管理员 (DBSA)
  • 审计分析员 (AAO)
  • 标准用户

在 UNIX 上,您可以通过更改拥有 aaodir、dbsadir 或 etc 目录的组在安装完成后的任何时间内建立角色分隔。您可以通过将拥有这些目录的组重置为 gbasedbt 来禁用角色分离。例如:您能对审计分析员 (AAO) 启用角色分离,而不用对数据库服务器管理员 (DBSA) 启用角色分离。

有关角色分离的安全性功能的更多信息,请参阅 GBase 8s 安全指南。要了解如何在安装数据库服务器时配置角色分离,请参阅《GBase 8s 安装指南》。

ISM_COMPRESSION 环境变量

使用 ISM_COMPRESSION 环境变量,可以指定 Storage Manager 是否应该使用数据压缩算法来存储和检索数据。

IMG_256

如果 ISM_COMPRESSION 在发出请求的 ON-Bar 进程的环境中设置为 TRUE,那么 Storage Manager 服务器将使用数据压缩算法。

如果 ISM_COMPRESSION 设置为 FALSE 或未作设置,那么 Storage Manager 服务器不使用压缩。

ISM_DEBUG_FILE 环境变量

在 Storage Manager 服务器环境中使用 ISM_DEBUG_FILE 环境变量可以指定在何处写入 XBSA 消息。

IMG_256

pathname 指定 XBSA 消息日志文件的位置。

如果未设置 ISM_DEBUG_FILE,那么 XBSA 消息日志位于 $GBASEDBTDIR/ism/applogs/xbsa.messages 目录(在 UNIX™ 上)。

ISM_DEBUG_LEVEL 环境变量

在 ON-Bar 环境中使用 ISM_DEBUG_LEVEL 环境变量可以控制记录在 XBSA 消息日志中的报告详细信息的级别。XBSA 共享库会写入此日志。

IMG_256

value 指定报告详细信息的级别,其中 1 ≤ value ≤ 9。

如果 ISM_DEBUG_LEVEL 未设置、具有空值或具有此范围之外的值,那么缺省详细信息级别为 1。0 级的详细信息级别会使得所有 XBSA 调试记录无法显示。详细信息级别为 1 时,将仅报告 XBSA 故障。

ISM_ENCRYPTION 环境变量

在 ON-Bar 环境中使用 ISM_ENCRYPTION 环境变量可以指定 Storage Manager 是否使用数据加密。

IMG_256

ISM_ENCRYPTI 的三个设置是受支持的:

XOR 使用加密。

NONE 不使用加密。

TRUE 使用加密。

如果 ISM_ENCRYPTION 设置为 NONE 或未作设置,那么 ISM 服务器不使用加密。

如果 ISM_ENCRYPTION 在提出请求的 ON-Bar 进程的环境中设置为 TRUE 或 XOR,那么 Storage Manager 服务器使用加密来存储或检索在该请求中指定的数据。

ISM_MAXLOGSIZE 环境变量

在 Storage Manager 服务器环境中使用 ISM_MAXLOGSIZE 环境变量可以指定 Storage Manager 活动日志的大小阈值。

IMG_256

size 指定活动日志的大小阈值(以兆字节计)。

如果未设置 ISM_MAXLOGSIZE ,那么缺省大小限制为 1 兆字节。如果 ISM_MAXLOGSIZE 设置为空值,那么该阈值为 0 字节。

ISM_MAXLOGVERS 环境变量

在 Storage Manager 服务器环境中使用 ISM_MAXLOGVERS 环境变量可以指定要由 ISM 服务器保留的活动日志文件的最大数目。

IMG_256

value 指定要保存的文件的数目。

如果未设置 ISM_MAXLOGVERS,那么文件的缺省数目为四。如果该设置为空值,那么 ISM 服务器不保存任何活动日志文件。

JAR_TEMP_PATH 环境变量

设置 JAR_TEMP_PATH 变量以指定 jar 管理过程(例如:install_jar( )replace_jar( ))可存储 Java™ 虚拟机的临时 .jar 文件的非缺省本地文件系统位置。

IMG_256

pathname 指定临时 .jar 文件的本地目录。

对于启动数据库服务器的用户,必须具有此目录的读写许可权。如果未设置 JAR_TEMP_PATH 环境变量,那么 .jar 文件的临时副本存储在数据库服务器的本地文件系统的 /tmp 目录中。

JAVA_COMPILER 环境变量

可在 Java™ 虚拟机环境中设置 JAVA_COMPILER 环境变量以禁用 JIT 编译。

IMG_256

NONE 和 none 设置是等效的。在支持 C shell 且 JAVA_COMPILER 已设置为 NONE 或 none 的 UNIX™ 系统上,可使用以下命令对 JVM 环境启用 JIT 编译器:

unset JAVA_COMPILER

JVM_MAX_HEAP_SIZE 环境变量

JVM_MAX_HEAP_SIZE 环境变量可对 Java™ 虚拟机设置堆大小的非缺省上限。

IMG_256

size 是指定最大大小的正整数(以兆字节计)。

例如,以下命令将最大堆大小设置为 12 MB:

set JVM_MAX_HEAP_SIZE 12

如果未设置 JVM_MAX_HEAP_SIZE,那么 16 MB 是缺省的最大大小。

LD_LIBRARY_PATH 环境变量 (UNIX™)

LD_LIBRARY_PATH 环境变量告诉 Solaris 系统上的 shell 要在哪些目录中搜索客户机或共享 GBase 8s 常规库。必须指定包含客户机库的目录才能使用本产品。

IMG_256

pathname 指定库的搜索路径。

对于 AIX® 上的 INTERSOLV DataDirect ODBC Driver,设置 LIBPATH。对于 HP-UX 上的 INTERSOLV DataDirect ODBC Driver,设置 SHLIB_PATH。

以下示例将 LD_LIBRARY_PATH 环境变量设置为目录:

setenv LD_LIBRARY_PATH ${GBASEDBTDIR}/lib:${GBASEDBTDIR}/lib/esql:$LD_LIBRARY_PATH

LIBPATH 环境变量 (UNIX™)

LIBPATH 环境变量告诉 AIX® 系统上的 shell 在哪些目录中搜索 INTERSOLV DataDirect ODBC Driver 的动态链接库。必须指定本产品安装所在目录的完整路径名。

IMG_256

pathname 指定库的搜索路径。

在 Solaris 上,设置 LD_LIBRARY_PATH。在 HP-UX 上,设置 SHLIB_PATH。

NODEFDAC 环境变量

NODEFDAC 环境变量设置为 yes 时,在不符合 ANSI 标准的数据库中当前会话期间创建新表时,无法将缺省表特权(Select、Insert、Update 和 Delete)授予 PUBLIC。

IMG_256

yes 防止将不符合 ANSI 标准的数据库中新表的缺省表特权授予 PUBLIC。此设置还会在以“所有者”方式创建新的用户定义的例程时防止将对该例程的 Execute 特权授予 PUBLIC。

yes 设置是区分大小写的,并且还区分前导和尾部空格。在设置中包含大写字母或空格等同于未设置 NODEFDAC。 当未设置 NODEFDAC,或者如果设置为任何值(除了 yes)时,表和所有者方式 UDR 的缺省特权授予 PUBLIC(缺省情况下,当表或 UDR 创建在不符合 ANSI 标准的数据库中时)。

ONCONFIG 环境变量

ONCONFIG 环境变量会指定活动文件(称为 onconfig 文件)的名称(该文件中保存数据库服务器的配置参数)。

此文件在初始化过程期间是作为输入读取的。在准备 onconfig 配置文件之后,将 ONCONFIG 环境变量设置为此文件的名称。

IMG_256

filename 是 $GBASEDBTDIR/etc/$ONCONFIG 目录中 onconfig 文件的名称

此文件包含数据库的配置参数。

要准备 onconfig 文件,请建立 onconfig.std 文件的副本并修改该副本。请为 onconfig 文件命名,使其能够与特定数据库服务器轻松关联。如果您拥有数据库服务器的多个实例,那么每个实例必须拥有其自己的唯一命名 onconfig 文件。

如果未设置 ONCONFIG 环境变量,那么数据库服务器将在初始化期间从 onconfig 文件读取配置值。

OPTCOMPIND 环境变量

可设置 OPTCOMPIND 环境变量以便优化器可选择适当的连接方法。

IMG_256

0 尽量使用嵌套循环连接而不是分类合并连接或散列连接。

1 当隔离级别不是“可重复读”时,优化器的行为如同设置 2 时一样;否则优化器的行为如同设置 0 时一样。

2 嵌套循环连接并不一定是首选的。优化器只根据成本来作决定,而不考虑事务隔离方式。

如果未设置 OPTCOMPIND,那么数据库服务器使用 ONCONFIG 配置文件中的 OPTCOMPIND 值。如果既未设置环境变量又未设置配置参数,那么缺省值为 2。

在 GBase 8s 上,SET ENVIRONMENT OPTCOMPIND 语句可以在运行时动态设置或重置 OPTCOMPIND。这仅覆盖当前用户会话的当前 OPTCOMPIND 值(或 ONCONFIG 配置参数 OPTCOMPIND)。有关 SQL 的 SET ENVIRONMENT OPCOMPIND 语句的更多信息,请参阅 GBase 8s SQL 指南:语法。

有关 ONCONFIG 配置参数 OPTCOMPIND 的更多信息,请参阅 GBase 8s 管理员参考。有关优化器使用的不同连接方法的更多信息,请参阅《GBase 8s 性能指南》。

OPTMSG 环境变量

启动 GBase 8s ESQL/C 应用程序之前,在运行时设置 OPTMSG 环境变量,可以为应用程序中的所有 SQL 语句启用(或禁用)优化的消息传送(消息链接)。

IMG_256

0 禁用优化消息传送。

1 启用优化消息传送并为任何后续连接实现该功能。

缺省值为 0(零),它将显式禁用消息链接。例如,您可能希望对需要即时应答的语句禁用优化的消息传送以便进行调试,或确保数据库服务器在应用程序终止前处理所有消息。

在应用程序内设置 OPTMSG 时,可为每个连接或在每个线程内激活或取消激活优化消息传送。要启用优化消息传送,必须在建立连接之前设置 OPTMSG。

有关设置 OPTMSG 和定义相关全局变量的更多信息,请参阅 GBase 8s ESQL/C 程序员手册。

OPTOFC 环境变量

使用 OPTOFC 环境变量可在 GBase 8s ESQL/C 应用程序或使用 DECLARE 和 OPEN 语句来建立游标的其他 API(例如,JDBC、ODBC、OLE DB、LIBDMI 和 Lib C++)中启用优化 OPEN-FETCH-CLOSE 功能。

IMG_256

0 对应用程序的所有线程禁用 OPTOFC

1 对应用程序的每个线程中的每个游标启用 OPTOFC

缺省值为 0(零)。

您可以在客户机或服务器上设置 OPTOFC 环境变量。如果在服务器上设置此环境变量,那么任何未显式设置此环境变量的应用程序会使用在服务器上设置的值。

OPTOFC 环境变量减少应用程序与数据库服务器之间的消息请求数。

如果从 shell 设置 OPTOFC,那么必须在启动 GBase 8s ESQL/C 应用程序之前设置它。有关启用 OPTOFC 和相关功能的更多信息,请参阅 GBase 8s ESQL/C 程序员手册。

OPT_GOAL 环境变量 (UNIX™)

在启动应用程序之前在用户环境中设置 OPT_GOAL 环境变量以对优化器指定查询性能目标。

IMG_256

0 指定用户响应时间优化。

-1 指定总查询时间优化。

优化器的缺省行为是使用优化总查询时间的查询方案。

还可使用优化器伪指令对个别查询指定优化目标或使用 SET OPTIMIZATION 语句对会话指定优化目标。

这两种方法优先于 OPT_GOAL 环境变量设置。还可对 GBase 8s 系统设置 OPT_GOAL 配置参数;此方法的优先级最低。

有关优化数据库服务器查询的更多信息,请参阅《GBase 8s 性能指南》。有关 SET OPTIMIZATION 语句的信息,请参阅 GBase 8s SQL 指南:语法。

PATH 环境变量

UNIX™ PATH 环境变量告诉 shell 要在哪些目录中搜索可执行程序。必须先将包含 GBase 8s 产品的目录添加至 PATH 设置,才能使用该产品。

IMG_256

pathname 指定可执行文件的搜索路径。

在 UNIX 系统上,路径名之间使用冒号 ( : ) 分隔符。

可以各种方式指定搜索路径。PATH 环境变量告诉操作系统在何处搜索可执行程序。必须将包含 GBase 8s 产品的目录包括在路径设置中才能使用该产品。此目录应位于 $GBASEDBTDIR/bin 之前,而 $GBASEDBTDIR/bin 也必须包括在内。

有关如何修改路径的更多信息,请参阅修改环境变量设置

PDQPRIORITY 环境变量

PDQPRIORITY 环境变量确定数据库服务器使用的并行度,并影响数据库服务器分配资源(包括内存、处理器和磁盘读取)的方式。

IMG_256

resources 是范围从 0 至 100 的整数。值 1 相当于 LOW,而值 100 相当于 HIGH。小于 0 的值将设置为 0 (OFF),而大于 100 的值将设置为 100 (HIGH)。

值 0 相当于 OFF(仅适用于 GBase 8s)。

此处 HIGH、LOW 和 OFF 关键字具有下列作用:

HIGH 当数据库服务器在所有用户间分配资源时,它将给予该查询尽可能多的资源。

LOW 以并行方式从分段表中访存数据值。

OFF 关闭了 PDQ 处理(仅适用于 GBase 8s)。

通常,数据库服务器使用的资源越多,它针对给定查询的性能也就越好。但是,如果服务器使用的资源过多,那么资源争用可能夺取其他查询的资源,从而使得性能下降。有关 PDQPRIORITY 的性能注意事项的更多信息,请参阅《GBase 8s 性能指南》。

如 GBase 8s SQL 指南:语法 所述,当应用程序发出 SQL 语句 SET PDQPRIORITY 时,会覆盖此环境变量的设置。

在 GBase 8s 中使用 PDQPRIORITY

资源值会指定查询优先级和数据库服务器用来处理该查询的资源量。

如果未设置 PDQPRIORITY,那么缺省值为 OFF。

当 PDQPRIORITY 设置为 HIGH 时,GBase 8s 根据几个标准确定用于 PDQPRIORITY 的适当值。这些标准包括可用处理器的数目、被查询的表的分段存储、该查询的复杂性和其他因子。

PLCONFIG 环境变量

PLCONFIG 环境变量会指定 High Performance Loader (HPL) 使用的配置文件的名称。此文件必须位于 GBASEDBTDIR/etc目录中。如果未设置PLCONFIG环境变量,那么GBASEDBTDIR/etc 目录中。如果未设置 PLCONFIG 环境变量,那么 GBASEDBTDIR/etc/plconfig 就是缺省配置文件。

IMG_256

filename 指定 High-Performance Loader 使用的配置文件的简单文件名。

例如,要将 $GBASEDBTDIR/etc/custom.cfg 文件指定为 High-Performance Loader 的配置文件,请输入以下命令:

setenv PLCONFIG custom.cfg

有关更多信息,请参阅 GBase 8s High-Performance Loader 用户指南。

PLOAD_LO_PATH 环境变量

PLOAD_LO_PATH 环境变量允许您指定智能大对象句柄的路径名(它标识如 BLOB 和 CLOB 数据类型这样的智能大对象的位置)。

IMG_256

pathname 指定智能大对象句柄的目录。

如果未设置 PLOAD_LO_PATH,那么缺省目录为 /tmp

有关更多信息,请参阅 GBase 8s High-Performance Loader 用户指南。

PLOAD_SHMBASE 环境变量

PLOAD_SHMBASE 环境变量允许您指定 High Performance Loader (HPL) onpload 进程将连接的共享内存地址。如果未设置 PLOAD_SHMBASE,那么 HPL 会确定要使用哪个共享内存地址。

IMG_256

value 用来计算共享内存地址。

如果 onpload 实用程序不能连接,那么会发出一个错误,且您必须指定新值。

onpload 实用程序尝试确定在哪个地址进行连接,如以下(降序)顺序所示:

  1. 在数据库服务器所在的地址 (SHMBASE) 进行连接。
  2. 在数据库服务器段之外进行连接。
  3. 在 PLOAD_SHMBASE 中指定的地址进行连接。
提示

建议让 HPL 决定在何处进行连接,且仅当需要避免 onpload 与数据库服务器之间的共享内存冲突时才设置 PLOAD_SHMBASE。

有关更多信息,请参阅 GBase 8s High-Performance Loader 用户指南。

PSM_ACT_LOG 环境变量

使用 PSM_ACT_LOG 环境变量,可以为您的环境(例如,单个会话)指定 GBase 8s Primary Storage Manager 活动日志的位置。

IMG_256

pathname $GBASEDBTDIR/psm_act.log 的位置的完整路径名。如果仅指定文件名,那么存储管理器将在您启动存储管理器的工作目录中创建活动日志。

PSM_ACT_LOG 环境变量会覆盖 PSM_ACT_LOG 配置参数的值。

PSM_CATALOG_PATH 环境变量

使用 PSM_CATALOG_PATH 环境变量,可以为您的环境(例如,单个会话)指定 GBase 8s Primary Storage Manager 目录表的位置。

IMG_256

pathname 目录表的位置的完整路径名,该目录表中包含有关存储管理器管理的池、设备和对象的信息。

PSM_CATALOG_PATH 环境变量会覆盖 PSM_CATALOG_PATH 配置参数的值。

PSM_DBS_POOL 环境变量

使用 PSM_DBS_POOL 环境变量,可以为您的环境(例如,单个会话)更改 GBase 8s Primary Storage Manager 放置备份和复原数据库空间数据的池的名称。

IMG_256

pool_name 存储管理器池的名称。

PSM_DBS_POOL 环境变量会覆盖 PSM_DBS_POOL 配置参数的值。

PSM_DEBUG 环境变量

使用 PSM_DEBUG 环境变量,可以为您的环境(例如,单个会话)指定 GBase 8s Primary Storage Manager 调试日志中打印的调试信息量。

IMG_256

value

0 = 无调试消息。

1 = 仅打印内部错误。

2 = 打印有关函数入口和出口的信息,还打印内部错误。

3 = 打印 1-2 指定的信息以及其他详细信息。

4 = 打印有关并行操作的信息以及 1-3 指定的信息。

5 = 打印有关 GBase 8s Primary Storage Manager 中内部状态的信息。

6 = 打印 1-5 指定的信息以及其他详细信息。

7 = 打印 1-6 指定的信息以及其他详细信息。

8 = 打印 1-7 指定的信息以及其他详细信息。

9 = 打印所有调试信息。

PSM_DEBUG 环境变量会覆盖 PSM_DEBUG 配置参数的值。

PSM_DEBUG_LOG 环境变量

使用 PSM_DEBUG_LOG 环境变量,可以为您的环境(例如,单个会话)指定 GBase 8s Primary Storage Manager 调试日志的位置。

IMG_256

pathname $GBASEDBTDIR/psm_debug.log 的位置的完整路径名。如果仅指定文件名,那么存储管理器将在您启动存储管理器的工作目录中创建调试日志。

PSM_DEBUG_LOG 环境变量会覆盖 PSM_DEBUG_LOG 配置参数的值。

PSM_LOG_POOL 环境变量

使用 PSM_LOG_POOL 环境变量,可以为您的环境(例如,单个会话)更改 GBase 8s Primary Storage Manager 放置备份和复原日志数据的池的名称。

IMG_256

pool_name 存储管理器日志池的名称。

PSM_LOG_POOL 环境变量会覆盖 PSM_LOG_POOL 配置参数的值。

PSORT_DBTEMP 环境变量

PSORT_DBTEMP 环境变量指定数据库服务器将环境变量用于执行排序的临时文件写入的位置。

IMG_256

pathname 排序期间用于中间写操作的 UNIX™ 目录的名称。

要设置 PSORT_DBTEMP 环境变量以指定该目录(例如:/usr/leif/tempsort),输入以下命令:

setenv PSORT_DBTEMP /usr/leif/tempsort

要获取最佳性能,请指定在不同磁盘上的文件系统中的目录。

您还可能想要考虑设置环境变量 DBSPACETEMP 以放置在数据库空间中进行排序时使用的临时文件而不是操作系统文件。请参阅 DBSPACETEMP 环境变量中对 DBSPACETEMP 环境变量的讨论。

数据库服务器使用 PSORT_DBTEMP 指定的目录,即使未设置 PSORT_NPROCS 环境变量也是如此。有关 PSORT_DBTEMP 环境变量的更多信息,请参阅《GBase 8s 管理员指南》和《GBase 8s 性能指南》。

PSORT_NPROCS 环境变量

PSORT_NPROCS 环境变量使数据库服务器能够通过为进行排序分配更多线程来改进并行进程排序软件包的性能。

在排序软件包执行并行排序之前,确保数据库服务器有足够的内存可供排序使用。

IMG_256

threads 是一个整数,指定要用来对查询排序的最大线程数。此值不能超过 10。

以下命令将 PSORT_NPROCS 设置为 4:

setenv PSORT_NPROCS 4

要禁用并行排序,输入以下命令:

unsetenv PSORT_NPROCS

如果计算机有多个 CPU,建议最初将 PSORT_NPROCS 设置为 2。如果后续 CPU 活动的速度小于 I/O 活动,可增加 PSORT_NPROCS 的值。

技巧

如果未设置 PDQPRIORITY 环境变量,那么数据库服务器分配最少量的内存来进行排序。这一最少内存即使启动两个排序线程都不够。如果未设置 PDQPRIORITY,那么在执行大规模排序(如索引构建)之前检查可用内存以确保您有足够内存。

拆离索引的缺省 PSORT_NPROCS 值

如果设置了 PSORT_NPROCS 环境变量,那么数据库服务器使用指定的排序线程数作为普通排序的上限。如果未设置 PSORT_NPROCS,那么不会进行并行排序。数据库服务器对该排序使用一个线程。如果 PSORT_NPROCS 设置为 0,那么数据库服务器对该排序使用三个线程。

连接的索引的缺省 PSORT_NPROCS 值

线程的缺省数目对各个连接索引是不同的。

如果设置了 PSORT_NPROCS 环境变量,那么正在构建的索引的每个分段具有指定数目的排序线程。

如果未设置 PSORT_NPROCS,或者如果其设置为 0,那么除非您有单 CPU 虚拟处理器,否则该索引的每个分段将有两个排序线程。如果您有单 CPU 虚拟处理器,那么您将获取索引的每个分段的一个排序线程。

有关 PSORT_NPROCS 环境变量的更多信息,请参阅《GBase 8s 管理员指南》和 GBase 8s 性能指南。

RTREE_COST_ADJUST_VALUE 环境变量

RTREE_COST_ADJUST_VALUE 环境变量指定一个系数,用户定义的数据类型的支持函数可使用该系数来估计对针对 UDT 列的查询使用 R 型树索引的成本。

IMG_256

value 为一个浮点数(其中 1 ≤ value ≤ 1000),它指定一个乘法器来估计对 UDT 列使用索引的成本。

对于空间查询,I/O 开销可能会超出 CPU 成本很多,所以通过用未更正的估计成本乘以此设置中的适当值,数据库服务器可以就如何执行对存在 R 型树索引的 UDT 列的查询作出更好的基于成本的决策。

SHLIB_PATH 环境变量 (UNIX™)

SHLIB_PATH 环境变量告诉 HP-UX 系统上的 shell 要在哪些目录中搜索动态链接库。例如:它可与 INTERSOLV DataDirect ODBC Driver 配合使用。必须对安装该产品的目录指定全路径名。

IMG_256

pathname 指定库的搜索路径。

在 Solaris 系统上,设置 LD_LIBRARY_PATH。在 AIX® 系统上,设置 LIBPATH。

SRV_FET_BUF_SIZE 环境变量

使用 SRV_FET_BUF_SIZE 环境变量,可以指定本地数据库服务器用于数据库服务器中分布式 DML 事务的访存缓冲区的大小。

IMG_256

size 是一个不超过 1048576 (1 MiB) 的正整数,指定用于保存服务器中分布式查询所检索数据的访存缓冲区的大小(以字节计)。

例如,要在使用 C shell 的 UNIX™ 系统上将缓冲区大小设置为 5,000 字节,请输入以下命令来设置 SRV_FET_BUF_SIZE:

setenv SRV_FET_BUF_SIZE 5000

将 SRV_FET_BUF_SIZE 设置为有效值后,新值将覆盖 SRV_FET_BUF_SIZE 的缺省值(或先前设置的任何值)。仅当数据库服务器的启动环境中设置了该设置时,它才生效。

如果未设置 SRV_FET_BUF_SIZE,那么访存缓冲区的缺省设置取决于行大小。

如果将 SRV_FET_BUF_SIZE 设置为小于缺省大小的值或大于 1048576 (1 MiB) 的值,那么不会发生任何错误。如果为 SRV_FET_BUF_SIZE 指定大于 1048576 的大小,那么该值将设置为 1048576。

有效的 SRV_FET_BUF_SIZE 设置仅在服务器上的 DML 事务中生效(在这些事务中,本地数据库服务器作为协调器或作为下级数据库服务器参与其中)。

但是,它对仅访问本地服务器实例的数据库的查询无效,并且不会影响客户机与本地服务器通信中的访存缓冲区的大小。

BYTE 和 TEXT 对象的处理不会受 SRV_FET_BUF_SIZE 设置的影响。

为本地数据库服务器环境设置 SRV_FET_BUF_SIZE 不会重置在服务器上的 DML 事务中协调本地服务器实例或参与其中的远程服务器实例的访存缓冲区大小。

缓冲区的大小越大,可返回的行就越多,因而本地服务器必须等待数据库服务器返回行的频率就越低。大型缓冲区可提高在服务器之间传输大量数据的性能。

STMT_CACHE 环境变量

使用 STMT_CACHE 环境变量来控制会话上的共享语句高速缓存的使用。

此功能可减少内存消耗,还可加速不同用户会话间的查询处理。有效 STMT_CACHE 值包括 1 和 0。

IMG_256

1 启用 SQL 语句高速缓存。

0 禁用 SQL 语句高速缓存。

对不使用 SET STMT_CACHE 语句的应用程序设置 STMT_CACHE 环境变量,可以控制对 SQL 语句高速缓存的使用。缺省情况下,语句高速缓存是禁用的,但是可以通过 onconfig.std 文件的 STMT_CACHE 参数或 SET STMT_CACHE 语句来启用该功能。

如果通过配置文件设置来禁用 SQL 语句高速缓存,那么此环境变量不起任何作用。应用程序中的 SET STMT_CACHE 语句设置的值会覆盖 STMT_CACHE 设置。

TERM 环境变量 (UNIX™)

TERM 环境变量用于终端处理。它允许 DB-Access(及其他基于字符的应用程序)识别您正在使用的终端并与其通信。

IMG_256

type 指定终端类型。

在 TERM 设置中指定的终端类型必须对应于 termcap 文件或 terminfo 目录中的某个条目。

必须先从数据库管理员处获取代表您终端的代码,才能设置 TERM 环境变量。

例如:要指定 vt100 终端,通过输入以下命令设置 TERM 环境变量:

setenv TERM vt100

TERMCAP 环境变量 (UNIX™)

TERMCAP 环境变量用于终端处理。它告诉 DB-Access(和其他基于字符的应用程序)与 termcap 文件通信而不是与 terminfo 目录通信。

IMG_256

pathname 指定 termcap 文件的位置。

termcap 文件包含各种类型的终端以及它们的特征的列表。例如,要提供 DB-Access 终端处理信息(该信息是在 /usr/gbasedbt/etc/termcap 文件中指定的),请输入以下命令:

setenv TERMCAP /usr/gbasedbt/etc/termcap

可以下列任一方式设置 TERMCAP:如果存在若干个 termcap 文件,那么它们具有以下优先级顺序(降序):

  1. 您创建的 termcap 文件
  2. 数据库服务器提供的 termcap 文件(即 $GBASEDBTDIR/etc/termcap)
  3. 操作系统 termcap 文件(即,/etc/termcap)

如果设置 TERMCAP 环境变量,应确保 GBASEDBTTERM 环境变量设置为 termcap。

如果不设置 TERMCAP 环境变量,那么在缺省情况下使用 terminfo 目录。

TERMINFO 环境变量 (UNIX)

TERMINFO 环境变量用于终端处理。

该环境变量仅在完全支持 System V 和 Solaris UNIX™ 系统提供的 terminfo 库的平台上受支持。

IMG_256

TERMINFO 告诉 DB-Access 与 terminfo 目录通信而不是与 termcap 文件通信。terminfo 目录有包含与终端及其特征有关的文件的子目录。

要设置 TERMINFO,输入以下命令:

setenv TERMINFO /usr/lib/terminfo

THREADLIB 环境变量 (UNIX™)

使用 THREADLIB 环境变量可编译多线程 GBase 8s ESQL/C 应用程序。多线程 GBase 8s ESQL/C 应用程序允许您与一个或多个数据库建立与线程数一样多的连接。当应用程序执行时,这些连接可以保持活动状态。

THREADLIB 环境变量指示在编译应用程序时使用哪些线程软件包。目前仅支持“分布式计算环境”(DCE)。

IMG_256

当编译多线程 GBase 8s ESQL/C 应用程序时,将 -thread 选项传递至 GBase 8s ESQL/C 脚本时会检查 THREADLIB 环境变量。当在编译时使用 -thread 选项的情况下,如果未设置 THREADLIB 或将 THREADLIB 设置为不受支持的线程软件包,那么 GBase 8s ESQL/C 脚本生成错误。

TZ 环境变量

TZ 环境变量用于设置时区。它由各种时间函数用于计算相对于全球标准时间 (UTC)(以前称为格林威治标准时间 (GMT))的时间。格式由操作系统指定。

IMG_256

tzn 三个字母的时区名称,如 PST。您必须指定从本地时间到 UTC(全球标准时间)之间的正确偏移量。

hh UTC 与本地时间之间的小时数之差(一位数或两位数)。可选择带符号。

mm UTC 与本地时间之间的分钟数之差(两位数)。

ss UTC 与本地时间之间的秒数之差(两位数)。

dzn 三个字母的夏令时区域,如 PDT。如果本地从未采用夏令时,请在设置 TZ 时不使用 dzn 值。

例如,如果使用实施太平洋夏令时的太平洋标准时间,请将 TZ 环境变量设置为 PST8PDT。有关设置 TZ 环境变量的更多信息,请参阅操作系统文档。

USETABLENAME 环境变量

USETABLENAME 环境变量可防止用户使用同义词在 ALTER TABLE 或 DROP TABLE 语句中指定 table。 与大多数环境变量不同,USETABLENAME 不需要设置值。无论您将其设置为任何值或不对其设置值,它都会起作用。

IMG_256

缺省情况下,ALTER TABLE 或 DROP TABLE 语句接受表示要改变或删除的 table 名称的有效同义词。(相反,如果您指定同义词,RENAME TABLE 会报错,如果您尝试用同义词替代这些语句中的 sequence 名,那么 ALTER SEQUENCE、DROP SEQUENCE 和 RENAME SEQUENCE 语句也会报错。)

如果设置 USETABLENAME,那么同义词在 ALTER TABLE 或 DROP TABLE 语句中时,会导致错误。设置 USETABLENAME 对 DROP VIEW 语句没有任何影响,该语句将接受视图的有效同义词。