跳到主要内容

数据库服务器

数据库服务器的安装和配置

规划数据库服务器

配置操作系统

GBase 8s 的 32 位版本可以运行在 64 位或 32 位操作系统上。GBase 8s 的 64 位版本必须运行在 64 位操作系统上。

配置磁盘空间

配置磁盘以便在数据集市和数据仓库中获得最佳性能。对于 SQL 操作,磁盘 I/O 所占的响应时间最长。数据库服务器提供对计算机上的多个磁盘的并行访问权。

使用大块

缺省情况下,对于 2 KB 页,数据库空间的块大小是 4 太字节。块可以位于 64 位地址空间中的任何位置。

在 UNIX 上创建块文件

在 UNIX™ 上,可以将数据存储在使用未缓冲(原始)磁盘或操作系统文件(又称为已缓冲或熟文件)的块中。

设置许可权、所有权和组

数据库服务器使用的文件或原始磁盘设备必须有适当的所有权和权限。

在 UNIX™ 上,所有者和组必须是 gbasedbt,并且这些权限必须设置为允许用户和组(但不包括其他)进行读写。

如果希望非 gbasedbt或 root 的用户运行 ON-Bar 命令,请创 bargroup 组。只有 bargroup 的成员可以运行 ON-Bar 命令。bargroup 组不会在数据库服务器安装期间自动创建。

创建标准设备名 (UNIX)

使用符号链接为每个原始磁盘设备指定缩写的标准设备名。如果拥有符号链接,那么可以使用新磁盘通过为该新磁盘指定符号名来替换发生故障的磁盘。

要在字符专用设备名和另一个文件名之间创建链接,请使用 UNIX™ 链接命令(通常为 ln)。

在设备目录上运行 UNIX 命令 ls -l 以便验证这些设备和链接都已存在。以下示例显示到原始设备的链接。如果您的操作系统不支持符号链接,那么可以使用硬链接。

ls -l
crw-rw--- /dev/rxy0h
crw-rw--- /dev/rxy0a
lrwxrwxrwx /dev/my_root@->/dev/rxy0h
lrwxrwxrwx /dev/raw_dev2@->/dev/rxy0a

设置环境变量

要启动、停止或访问数据库服务器,每个用户都必须具有必要的数据库访问特权,且必须设置适当的环境变量。一些环境变量是必需的,其他则是可选的。

需要的环境变量

《GBase 8s SQL 指南:参考》包含环境变量的完整列表。

下表显示了必须在访问数据库服务器或执行大多数管理任务前设置的环境变量。

表 1. 需要的环境变量

环境变量描述
CLASSPATH如果您使用的是 J/Foundation,那么指定 jvphome/krakatoa.jar 文件的位置,以便 Java Development Kit (JDK) 可以编译 Java™ 源文件。
GBASEDBTDIR指定安装 GBase 8s 数据库服务器的目录。
GBASEDBTSERVER指定缺省数据库服务器的名称。 它具有为 DBSERVERNAME 或 DBSERVERALIASES 配置参数指定的值。
JVPHOME如果您正在使用 J/Foundation,请指定装有 GBase 8s JDBC Driver 的目录。
ONCONFIG指定活动 onconfig 文件的名称。 所有使用数据库服务器实用程序(如 onstat)的用户都必须设置 ONCONFIG 环境变量。运行客户机应用程序的用户无需设置 ONCONFIG 环境变量。
如果 ONCONFIG 环境变量不存在,数据库服务器将使用 onconfig 文件中的配置值:
在 UNIX™ 上:$GBASEDBTDIR/etc/onconfig
PATH指定可执行文件的位置。
在 UNIX™ 上:$GBASEDBTDIR/bin
TERM使 DB-Access 能够识别您正在使用的终端并与其通信。此环境变量无需初始化或启动,但首先必须对其进行设置才可以运行应用程序。
TERMCAP TERMINFO GBASEDBTTERM指定 DB-Access 是使用 termcap 文件还是 terminfo 目录中的信息。如果系统要求,可能需要获得 UNIX 系统管理员的帮助,才能设置这些变量,这是因为这些变量高度依赖系统。

设置环境变量

提示

在 shell 文件中设置环境变量。

可在配置文件中包含环境变量 $GBASEDBTDIR。该环境变量必须为路径名规范中的第一个路径名值。

要设置必需的环境变量,请执行以下操作:

  1. 将 GBASEDBTDIR 设置为安装 GBase 8s 产品的目录。
  2. 将 PATH 环境变量设置为包含 $GBASEDBTDIR/bin。
  3. 将 GBASEDBTSERVER 设置为数据库服务器的名称。

设置 GLS 环境变量

如果要使用非缺省语言(美式英语),请设置 Global Language Support (GLS) 环境变量。

使用以下环境变量处理 GLS:

  • CLIENT_LOCALE
  • DB_LOCALE
  • SERVER_LOCALE
  • DBLANG
  • C8BITLEVEL
  • ESQLMF
  • GLS8BITFSYS
  • GL_DATE
  • GL_DATETIME

如果计划使用 Unicode,请设置 GL_USEGLU 环境变量以提高对 UTF-8 编码的支持。

在 UNIX 上设置环境变量

用以下某种方法设置 UNIX™ 环境变量:

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

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

  • 在环境配置文件(例如 $GBASEDBTDIR/etc/gbasedbt.rc 或.gbasedbt)中

环境配置文件是一种公共或专用文件,您可以在该文件中为每个数据库服务器用户设置环境变量。使用环境配置文件将减少必须在命令行或外壳程序文件中设置的环境变量数目。

  • 在 .profile 或 .login 文件中

如果在 .login、.cshrc 或 .profile 文件中设置某个环境变量,每次登录到系统时都将自动指定该变量。

要覆盖自动设置的环境变量,请使用专用环境变量文件 ~/.gbasedbt,或单独为环境变量指定新的值。

以下示例显示包含miami 数据库服务器的环境变量的设置文件。LD_LIBRARY_PATH 设置为数据库服务器和 GBase 8s ESQL/C 库文件的位置。

export GBASEDBTDIR=/data/3503x2_4_csdk
export GBASEDBTSERVER=gbase350_3X2_4
export ONCONFIG=onconfig.$GBASEDBTSERVER
export PATH=$GBASEDBTDIR/bin:${PATH}
export GBASEDBTSQLHOSTS=/data/3503x2_4_csdk/etc/sqlhosts

export DB_LOCALE=zh_CN.utf8
export CLIENT_LOCALE=zh_CN.utf8
export GL_USEGLU=1
export DBDATE="Y4MD-"
export DBACCESS_SHOW_TIME=1
export LD_LIBRARY_PATH=${GBASEDBTDIR}/lib:${GBASEDBTDIR}/lib/esql:${GBASEDBTDIR}/lib/cli
export ODBCINI=/home/gbasedbt/.odbc.ini

配置连接

在配置连接时,要考虑设置 LISTEN_TIMEOUT 和 MAX_INCOMPLETE_CONNECTIONS 配置参数。通过使用这些参数,处理连接的侦听器 VP 更不容易因连接过多而发生问题,从而能够降低受到恶意的拒绝服务 (DOS) 攻击的风险。

sqlhosts 文件

在 UNIX™ 上,sqlhosts 文件包含连接信息。sqlhosts 文件包含在 UNIX 操作系统上运行的数据库服务器和客户机运行的数据库服务器的连接信息。

文件的缺省位置是 $GBASEDBTDIR/etc/sqlhosts。

如果将信息存储在其他位置,那么必须设置 GBASEDBTSQLHOSTS 环境变量。

如果将多个数据库服务器设置为使用分布式查询,请使用下面的某种方法来存储所有数据库的 sqlhosts 信息:

  • 在一个 GBASEDBTSQLHOSTS 所指向的 sqlhosts 文件中
  • 存储在多个 sqlhosts 文件中,每个文件位于每个数据库服务器目录下

网络配置文件

除了 sqlhosts 文件之外,因特网协议网络连接还需要 /etc/hosts 和 /etc/services 文件中的条目。

网络安全性文件

GBase 8s 数据库服务器遵循 UNIX 的有关建立连接的安全性要求。因此,UNIX 系统管理员可能需要修改 /etc/passwd、/etc/hosts、~/.rhosts 和其他相关文件。

配置数据库服务器

通过设置配置参数,可以为数据处理环境定制数据库服务器。数据库服务器的配置参数存储在配置文件中。

创建 GBase 8s 数据库服务器实例时,将自动使用基于 onconfig.std 文件的缺省值来创建对应的配置文件。新的配置文件名为 onconfig.gbasedbtservername,缺省情况下会在 $GBASEDBTDIR\etc\ 目录中创建此文件。如果将配置文件移至其他目录,请将 ONCONFIG 环境变量设置为此文件所在位置。

可以编辑配置文件来修改配置参数值,以提高实例的性能和其他特性。如果在配置文件中省略某个参数值,数据库服务器将使用 onconfig.std 文件中的缺省值,或基于其他参数值来计算相应值。

onconfig.std 文件是用于创建 onconfig.gbasedbtservername 文件的模板。 不要修改或删除 onconfig.std 文件。

通过编辑 onconfig 文件,可以修改配置参数值。 数据库服务器下次关闭并重新启动之后,更改将生效。但是,不便重新启动数据库服务器时,也可以通过其他方式来更改某些配置参数的值:

  • 数据库服务器正在运行时,使用 onmode -wf 命令可永久性更新许多配置参数。
  • 使用 onmode -wm 命令可更新当前会话的许多配置参数值。

可以成组导出、导入和修改配置参数:

  • 使用 onmode –we 命令可将当前配置的快照导出到文件。然后,生成的快照可以进行归档,用作配置文件,或导入到另一个正在运行的实例。
  • 使用 onmode –wi 命令可从先前导出的文件导入可调整的配置参数。文件中不可动态调整的配置参数将被忽略。

还可以通过 SQL 管理 API 命令来修改、重置、导出和导入配置文件:

  • 将 modify config 自变量用于 admin() 或 task() 函数可更改配置参数的值。
  • 将 export config 和 import config 自变量用于 admin() 或 task() 函数可导出或导入包含一个或多个可动态调整的配置参数的文件。
  • 将 reset config 或 reset config all 自变量用于 admin() 或 task() 函数可将一个配置参数或全部配置参数的值还原为 onconfig 文件中的相应值。

通过一个配置参数 AUTO_TUNE,可以启用或禁用 onconfig 文件中不包含其值的所有自动调整配置参数。自动调整配置参数为 AUTO_AIOVPS、AUTO_CKPTS、AUTO_LRU_TUNING、AUTO_READAHEAD、 AUTO_REPREPARE 和 AUTO_STAT_MODE。

此外,还可以从 onconfig 文件中除去任何自动调整配置参数,然后使用 AUTO_TUNE 配置参数来设置已除去的配置参数的缺省值。例如,如果 AUTO_AIOVPS 和 AUTO_CKPTS 配置参数在配置文件中不存在,那么数据库服务器会自动将 AUTO_AIOVPS 和 AUTO_CKPTS 的值设置为 AUTO_TUNE 的值。 可以动态修改 AUTO_TUNE 配置参数。

准备 onconfig 配置文件

GBASEDBTDIR 的 etc 子目录中的 onconfig.std 模板文件包含许多配置参数的初始值。您可以复制模板并保存副本,这样就可以根据您的特定配置来定制副本。

这些模板文件包含许多配置参数的初始值。

重要

请勿修改或删除模板文件。数据库服务器将这些文件作为模板而不是作为功能性配置文件提供。

可以更改的功能配置文件是 onconfig 文件(而不是 onconfig.std 模板文件)。可以使用文本编辑器来更改 onconfig 文件中的配置参数。

如果在 onconfig 文件的副本中省略参数,那么数据库服务器将在服务器启动时使用onconfig.std 文件中的值代替缺少的参数。

提示

如果不希望直接处理所有 onconfig 文件参数,genoncfg 实用程序可加快根据您的硬件以及根据数据库服务器的预期用途对配置文件进行定制的过程。

在 UNIX™ 上创建 onconfig 文件

当您首次安装 GBase 8s 软件时,将创建并初始化数据库服务器的新实例。安装脚本将自动为您创建 onconfig.demo 文件。

要使用文本编辑器准备 onconfig 文件,请执行以下操作:

  1. 复制和重命名 $GBASEDBTDIR/etc/onconfig.std 文件,并将其存储到etc 子目录中。
  2. 使用文本编辑器编辑 onconfig 配置文件。
  3. 将 ONCONFIG 环境变量设置为新的 onconfig 文件的名称。
  4. 如果它是新的实例,那么初始化数据库服务器。 否则,关闭并重新启动数据库服务器。

查看有关配置参数的信息

要查看配置文件的内容,请运行 onstat –c 命令。如果在服务器运行期间更改了配置参数,而且未关闭并重新启动数据库服务器,那么生效的配置将不同于 onstat –c 选项所显示的内容。

要查看配置参数及其当前值的列表,请运行 onstat -g cfg 命令。

启动和管理数据库服务器

在安装并配置了数据库服务器之后,必须执行以下一个或多个任务:

  • 准备连接到应用程序。
  • 启动数据库服务器并初始化磁盘空间。
  • 创建存储空间。
  • 设置备份并复原系统。
  • 执行管理任务。

启动数据库服务器

使用 oninit 实用程序可启动数据库服务器。可以通过不同的方式启动数据库服务器。 缺省方式是在线方式,它允许多个用户连接到数据库服务器。

先决条件:

  • UNIX™、Linux™ :您必须以 root 或 gbasedbt 用户身份登录。
  • 数据库服务器的磁盘空间已初始化。

要启动数据库服务器:

UNIX、Linux :运行 oninit 命令。可以在 oninit 命令中包含选项来定制启动。

准备自动启动

准备操作系统注册表或脚本以自动启动和停止数据库服务器。

准备 UNIX 启动脚本

可以准备 UNIX™ 启动脚本来启动数据库服务器。

要准备 UNIX 启动脚本,请将 UNIX 和数据库服务器实用程序命令添加到 UNIX 启动脚本,以便该脚本执行以下步骤。

要准备 UNIX 启动脚本,请执行以下操作:

  1. 将 GBASEDBTDIR 环境变量设置为数据库服务器安装目录的完整路径名。
  2. 将 PATH 环境变量设置为包含 $GBASEDBTDIR/bin 目录。
  3. 将 ONCONFIG 环境变量设置为适当的配置文件。
  4. 设置 GBASEDBTSERVER 环境变量,使 sysmaster 数据库可以更新(或在需要时创建)。
  5. 运行 oninit,启动数据库服务器,并使该服务器保持在线模式。

oninit 实用程序具有 -w 选项,在返回至 shell 提示符并返回代码 0 之前,该选项迫使服务器等待,直到成功初始化为止。

如果您计划初始化数据库服务器的多个版本(多处驻留),那么必须重置ONCONFIG 和 GBASEDBTSERVER,并为数据库服务器的每个实例重新运行 oninit。

如果数据库服务器的不同版本安装在不同的目录中,您必须复位 GBASEDBTDIR 并为每个不同版本重复前面的步骤。

准备 UNIX 关闭脚本

可以准备在 UNIX™ 每次关闭时都以受控方式关闭数据库服务器。

要在无论 UNIX 何时关闭时都以受控方式关闭数据库服务器,请将 UNIX 和数据库服务器实用程序命令添加到 UNIX 关闭脚本,以便该脚本执行以下步骤。

要准备 UNIX 关闭脚本,请执行以下操作:

  1. 将 GBASEDBTDIR 环境变量设置为数据库服务器安装目录的完整路径名。
  2. 将 PATH 环境变量设置为包含 $GBASEDBTDIR/bin 目录。
  3. 将 ONCONFIG 环境变量设置为适当的配置文件。
  4. 运行 onmode -ky,启动立即关闭并使数据库服务器脱机。

如果正在运行数据库服务器的多个版本(多处驻留),那么必须重置ONCONFIG 并为每个实例重新运行 onmode -ky。

如果数据库服务器的不同版本安装在不同的目录中,您必须复位 GBASEDBTDIR 并为每个版本重复前面的步骤。

在 UNIX 关闭脚本中,当所有客户机应用程序已经完成它们的事务并退出之后,数据库服务器关闭命令就会运行。

准备连接到应用程序

当数据库服务器在线时,您可以连接客户机应用程序并开始创建数据库。在您可以访问数据库中的信息之前,客户机应用程序必须连接到数据库服务器环境。要连接到数据库服务器或断开连接,您可以从以下客户机程序发出 SQL 语句

  • DB-Access
  • SQL 编辑器
  • GBase 8s ESQL/C
  • GBase 8s ODBC Driver
  • GBase 8s JDBC Driver

有关创建数据库的信息,请参阅《GBase 8s SQL 指南:教程》。有关如何使用客户机应用程序的信息,请参阅《GBase 8s DB-Access 用户指南》、《GBase 8s ESQL/C 程序员手册》、《GBase 8s ODBC Driver 程序员手册》或《GBase 8s JDBC Driver 程序员手册》。

创建存储空间和块

您负责规划和实现存储空间和块的配置。如何在磁盘上分布数据将影响数据库服务器的性能。

块与已经指定给数据库服务器的逻辑卷、逻辑单元或常规文件相同。 单个块的最大大小是 4 TB。

一个实例中最多可以有 32766 个块。可以将这些块全部放入一个存储空间中,也可以将其分散放入多个存储空间中。

逻辑存储空间由一个或多个块组成。

提示

要利用每块 4 TB 的上限,应为每个磁盘驱动器指定一个块。这种分布数据的方法将提高性能。

初始化数据库服务器之后,可以创建存储空间(如数据库空间、BLOB 空间或智能大对象空间)。使用 onspaces 实用程序可创建存储空间和块。

初始化数据库服务器之后,可以创建存储空间(如数据库空间、BLOB 空间或智能大对象空间)。使用 onspaces 实用程序创建存储空间和块。

如果您要使用以下功能,必须创建智能大对象空间:

  • J/Foundation(保存 Java™ JAR 文件)
  • Enterprise Replication(容纳假脱机行数据)
  • 智能大对象(BLOB 和 CLOB 数据类型)

支持大块

要支持最大为 4 TB 以及大于 2047 块的大块和大偏移量,请运行 onmode -BC 1。

您可以在 onmode -BC 1 方式下测试数据。 如果您确信已正确转换了数据,那么可以运行 onmode -BC 2,从而使服务器以“仅大块”方式运行。

在运行 onmode -BC 2 后,将不再支持还原。在启用了对大块的支持后,它就不能禁用了。

设置备份系统和存储

可以使用 ON-Bar 实用程序或 ontape 实用程序来备份和复原数据。

确定要使用哪个实用程序,然后准备备份数据:

  • 如果您将 ontape 用作备份工具,您必须在可以备份与复原数据前设置存储设备(磁带机)。Gtape 实用程序不需要存储管理器。
  • 如果您将 ON-Bar 用作备份工具,您必须先设置存储管理器和存储设备才能备份与复原数据。

存储管理器是管理包含备份的存储设备和介质的应用程序。存储管理器将处理所有的介质标号、安装请求以及存储卷。ISM 可以一次将数据备份到多达四个的存储设备中。ISM 将数据存储在简单磁带机、光盘设备以及文件系统上。如果要使用更先进的存储设备,一次备份到四个以上的存储设备或通过网络进行备份,那么可以从其他供应商处购买存储管理器。

有关设置和使用 ON-Bar 或 ontape 的信息,请参阅《GBase 8s 备份与复原指南》。

自动终止空闲连接

可以通过启用 idle_user_timeout 调度程序任务来自动终止与已空闲指定时间的客户机的会话。

必须以用户 gbasedbt 或其他授权用户身份连接 sysadmin 数据库。

要启用 idle_user_timeout 任务,请运行以下语句:

UPDATE ph_task
SET tk_enable = 't'
WHERE tk_name = 'idle_user_timeout';

缺省情况下,idle_user_timeout 任务将终止空闲时间超过 60 分钟的用户会话。无法终止用户 gbasedbt 的会话。idle_user_timeout 任务会在两小时之后开始检查是否有空闲会话,这是该任务的缺省频率。

提示

数据库服务器计算机上的系统时间更改之后,用户会话已空闲的时间量将不再准确。例如,如果用户会话上次工作的时间为下午 3:14,而系统时钟在下午 3:15 向前拨了一个小时,那么对于数据库服务器而言,用户会话的空闲时间已经超过了一小时。

要更改空闲超时周期,请更新任务的运行频率和该阈值的值。允许的最短空闲超时周期为 5 分钟。例如,要将超时周期更改为 5 分钟,请运行以下语句:

UPDATE ph_task
SET tk_frequency = INTERVAL (5) MINUTE TO MINUTE
WHERE tk_name = 'idle_user_timeout';

UPDATE ph_threshold
SET value = '5'
WHERE task_name = 'idle_user_timeout';

配置会话属性

可在连接或访问时更改数据库服务器会话的属性,而不更改会话所运行的应用程序。如果不能修改应用程序的源代码来设置环境选项(或环境变量)或包含与会话相关的 SQL 语句(例如,由于 SQL 语句包含从供应商处获得的代码)时,该操作很有帮助。

要更改会话的属性,可为各种数据库设计定制 sysdbopen()和 sysdbclose() 过程以支持特定用户或 PUBLIC 组的应用程序。Sysdbopen() 和 sysdbclose() 过程可包含数据库服务器在数据库打开或关闭时为用户或 PUBLIC 组执行的一系列 SET、SET ENVIRONMENT、SQL 或 SPL 语句。

例如,对于 user1,可定义包含 SET PDQPRIORITY、SET ISOLATION LEVEL、SET LOCK MODE、SET ROLE 或 SET EXPLAIN ON 语句的过程,无论何时 user1 使用 DATABASE 或 CONNECT TO 语句打开数据库时,这些过程都将执行。

Sysdbopen() 过程中由 SET ENVIRONMENT 语句指定的会话环境变量 PDQPRIORITY 和 OPTCOMPIND 的任何设置都将在整个会话期间保持。对于常规过程非持久的 SET PDQPRIORITY 和 SET ENVIRONMENT OPTCOMPIND 语句,在 sysdbopen() 过程包含它们时将保持。

当作为过程所有者的用户从数据库断开连接时,将运行 user.sysdbclose() 过程(或者此时将运行 PUBLIC.sysdbclose(),前提是此过程存在且当前用户不具有任何 sysdbclose() 过程)。

在定制 sysdbopen() 和 sysdbclose() 过程中,如果在不符合 ANSI 标准的数据库中调用了例程,那么 GBase 8s 将不会忽略 UDR 所有者的名称。

有关更多信息,请参阅配置会话属性和《GBase 8s SQL 指南:语法》。

配置会话属性

只有 DBA 或 gbasedbt 用户可以在 SQL 的 ALTER PROCEDURE、ALTER ROUTINE、CREATE PROCEDURE、CREATE PROCEDURE FROM、CREATE ROUTINE FROM、DROP PROCEDURE 或 DROP ROUTINE 语句中创建或更改sysdbopen()或 sysdbclose()。

可在连接或访问时设置更改会话属性的 sysdbopen() 过程,而不更改会话运行的应用程序。如果不能修改应用程序的源代码来设置环境选项(或环境变量)或包含与会话相关的 SQL 语句(例如,由于 SQL 语句包含从供应商处获得的代码)时,该操作很有帮助。

要设置 sysdbopen() 和 sysdbclose() 过程以配置会话属性,请执行以下操作:

  1. 将 IFX_NODBPROC 环境变量设置为任何值(包括 0)以使数据库服务器绕过并阻止 sysdbopen() 或 sysdbclose() 过程的执行。
  2. 编写 CREATE PROCEDURE 或 CREATE PROCEDURE FROM 语句以定义特定用户或 PUBLIC 组的过程。
  3. 测试过程(例如,通过使用 EXECUTE PROCEDURE 语句中的 sysdbclose())。
  4. 取消设置 IFX_NODBPROC 环境变量以使数据库服务器能够运行 sysdbopen() 或 sysdbclose() 过程。

示例

以下过程设置特定用户的角色和 PDQ 优先级:

	create procedure oltp_user.sysdbopen()
set role to oltp;
set pdqpriority 5;
end procedure;

以下过程设置 PUBLIC 组的角色和 PDQ 优先级:

	create procedure public.sysdbopen()
set role to others;
set pdqpriority 1;
end procedure

执行例程管理任务

根据贵组织的需求,您可以负责执行以下各段中描述的定期任务。并不是所有这些任务都适合每个安装。例如,如果您的数据库服务器每天运行 24 小时、每周运行 7 天,那么您就不可以使数据库服务器进入脱机方式,这样数据库服务器的运行方式将不能定期更改。

更改数据库服务器方式

数据库服务器管理员负责通过更改方式来启动和关闭数据库服务器。数据库服务器运行方式说明了如何更改数据库服务器方式。

备份数据和逻辑日志文件

要确保能够在发生故障时恢复数据库,请经常备份存储空间和逻辑日志。您也可以使用archecker 实用程序验证 ON-Bar 备份。

每隔多少时间备份一次存储空间将取决于更新数据的频率以及数据的重要性如何。备份调度可以包括每周进行一次完全(0 级)备份、每天进行增量(1 级)备份以及每小时进行 2 级备份。还必须在执行管理任务(如添加数据库空间、删除逻辑日志文件或启用镜像)后执行 0 级备份。

每个逻辑日志文件一满就立即备份该文件。可以手动或自动备份这些文件。有关使用ON-Bar 和 ontape 的信息,请参阅《GBase 8s 备份与复原指南》。

监视活动

GBase 8s 数据库服务器的设计使您能够监视数据库服务器的每个方面。监视数据库服务器活动提供了对于可用信息的描述、有关获取信息的指示信息以及有关使用信息的建议。

检查一致性

对数据的一致性执行不定期的检查。有关这些任务的描述,请参阅 一致性检查。

执行其他管理任务

这些主题涵盖了您将在生产数据库服务器上执行的各种管理任务。

磁盘镜像

当您使用磁盘镜像时,数据库服务器会将数据写入两个位置。镜像将消除由存储设备故障所造成的数据丢失。如果由于任何原因镜像数据变得不可用,那么将立即透明地向用户提供数据的镜像。

重要

为物理日志、根数据库空间以及包含逻辑日志文件的关键数据库空间建立镜像。

管理数据库日志记录状态

可指定是否每个数据库在缺省情况下都使用事务日志记录;数据库的缺省日志记录方式是已缓冲还是未缓冲;以及日志记录方式是否符合 ANSI 标准。

可以在日志记录数据库中创建以下表的类型:

  • STANDARD
  • TEMP
  • RAW

管理逻辑日志

数据库服务器包含多个称为逻辑日志的文件,这些文件记录数据事务和管理信息(如检查点记录以及块的添加和删除)。

典型的逻辑日志管理任务包括备份逻辑日志文件,添加、释放逻辑日志文件和调整其大小,以及指定高水位标志。

数据库服务器在在线时动态地分配逻辑日志文件用以防止长事务使数据库服务器挂起。

管理物理日志

您可以更改物理日志的大小和位置。

当数据库服务器启动时,它会检查物理日志是否为空,因为物理日志为空的话就意味着该服务器以受控方式关闭。如果物理日志不为空,那么数据库服务器将自动执行称为快速恢复的操作。 系统发生故障后,可能会使一个或多个事务保持未落实状态,而快速恢复会自动将数据库复原到物理和逻辑一致性状态。

管理共享内存

管理共享内存包含以下任务:

  • 更改缓冲区的大小和数量(通过更改逻辑日志或物理日志缓冲区的大小或更改共享内存缓冲池中缓冲区的数量)
  • 更改共享内存参数值(如有必要)
  • 更改强制的驻留(开或关,临时或用于此会话)
  • 调整检查点间隔
  • 将段添加到共享内存的虚拟部分
  • 使用 SQL 语句高速缓存以减少内存的使用以及查询的准备时间

管理虚拟处理器

虚拟处理器 (VP) 的配置和管理对数据库服务器的性能具有直接的影响。数据库服务器的 VP 的最佳数量和组合取决于硬件和数据库服务器支持的应用程序类型。

管理并行数据库查询

您可以控制数据库使用的资源来并行执行决策支持查询。 必须协调决策支持查询与联机事务处理 (OLTP) 查询之间的需求。必须考虑的资源包括共享内存、线程、临时表空间及扫描带宽。

数据复制

数据复制是在多个不同站点上提供数据库对象的过程。数据复制配置由一个主服务器和一个或多个诸如 HAC 辅助服务器的辅助服务器、一台或多台 SSC 辅助服务器以及一个或多个 RHAC 辅助服务器组成。此外,GBase 8s 支持 GBase 8s Enterprise Replication(ER)。可在同一数据库服务器上结合数据复制和 Enterprise Replication。

数据复制环境

带有 HAC 辅助服务器的主服务器支持将整个数据库同步复制到辅助数据库服务器,并且在发生灾难性计算机故障时提供热待机。

带有 SSC 辅助服务器的主服务器提供对与主服务器分享的磁盘阵列上的数据的只读访问。带有 RHAC 辅助服务器的主服务器支持数据库在主服务器上的异步复制。带有 HAC 辅助服务器、RHAC 辅助服务器和 SSC 辅助服务器的主服务器可以在数据复制环境中存在。

Enterprise Replication

Enterprise Replication 支持在按地理分布的数据库服务器上执行异步数据复制,因此您既可以复制整个数据库,又可以复制数据库和表的子集。Enterprise Replication 对用户定义的数据类型提供有限的支持。

审计

如果想要使用数据库服务器审计,那么必须指定存储审计记录的位置、如何处理错误条件等等。如果您怀疑用户正在滥用他们的特权,那么您可能还希望更改审计用户的方法。

分布式查询

可以使用数据库服务器跨同一数据库服务器实例的多个数据库服务器查询和更新多个数据库(跨数据库分布式查询),以及跨多个服务器实例查询和更新多个数据库(跨服务器分布式查询)。这类查询称为分布式查询。 此术语不限为 SELECT 语句,而更多时候是指在本地数据库外返回或引用对象的任何 DML 操作或例程的执行。在跨服务器分布式查询中,参与的数据库服务器可以位于单个主机、同一网络或某个网关上。

有关分布式查询的更多信息,请参阅《 GBase 8s SQL 指南:教程》。

全局事务

全局事务是涉及多个数据库服务器的一种事务。GBase 8s 数据库服务器支持以下两种类型的全局事务:

  • TP/XA(带事务管理器)
  • 两阶段落实

GBase 8s 使用两阶段落实协议来确保分布式查询跨多个数据库服务器统一落实或回滚。

事务管理器

事务管理器将管理终端和数据恢复。TP/XA 库支持在 X/Open 环境中从供应商处获得的事务管理器和 GBase 8s 数据库之间进行通信。

监视数据库服务器活动

可以使用多种工具来监视数据库服务器活动。大多数工具可用于 UNIX™ 平台。如本主题中的表所示。

可以从以下源收集有关数据库服务器活动的信息。

信息源UNIX
事件警报X
消息日志X
oncheck 实用程序X
onstat 实用程序X
SMI 表X

以下主题说明了其中每个源。

事件警报

要报告需要您立即注意的情况,数据库服务器会使用事件警报功能。要使用事件警报功能,请将 ALARMPROGRAM 配置参数设置为执行必要的管理操作的可执行文件的完整路径名。

有关更多信息,请参阅《 GBase 8s 管理员参考 》中有关事件警报的附录和有关配置参数的章节。

消息日志

数据库服务器消息日志为操作系统文件。这些包含在数据库服务器消息日志中的消息通常不需要立即操作。

要报告需要您立即注意的情况,数据库服务器会使用事件警报。

指定消息日志消息的目标

要指定消息日志的路径名,请设置 MSGPATH 配置参数。对 MSGPATH 所作的更改会在关闭并重新启动数据库服务器后生效。

监视消息日志

每天必须监视一到两次消息日志,以确保处理正常进行,并且是在按预期记录事件。使用 onstat -m 命令以获取消息日志的名称以及 20 条最近的条目。 使用文本编辑器读取完整的消息日志。使用操作系统命令(如 UNIX™ 命令 tail -f)可查看出现的消息。

监视消息日志大小,因为数据库服务器将向此文件追加新的条目。按需编辑日志,或将其备份到磁带并将其删除。

如果数据库服务器遇到故障,消息日志将作为审计跟踪重新跟踪那些今后将发展成为预料不到的问题的事件。数据库服务器通常会在消息日志中提供问题的确切性质以及建议的更正操作。

您可以读取数据库服务器消息日志,了解有关数据库服务器处理的每分钟的报告以便在问题变大前捕捉事件。但是,您无需执行此类监视。

oncheck 实用程序

oncheck 实用程序显示有关数据库磁盘配置和使用情况的信息,如用于表的页数、保留页的内容以及表中扩展数据块的数量。

onstat 实用程序

onstat 实用程序提供从命令行监视数据库服务器共享内存的方法。onstat 实用程序从共享内存读取数据,并报告针对命令执行瞬间的精确的统计信息。也就是说,onstat 提供在处理期间动态更改的信息,包括缓冲区、锁、索引和用户的更改。

SMI 表

系统监视接口 (SMI) 表是由数据库服务器管理的特殊表,这些表包含有关数据库服务器状态的动态信息。可对这些表使用 SELECT 语句来确定您可能想要了解的有关数据库服务器的几乎所有信息。有关 SMI 表的描述,请参阅《GBase 8s 管理员参考》中有关 sysmaster 数据库的主题。

系统控制台

数据库服务器将通过系统控制台发送对数据库服务器管理员有用的消息。要指定控制台消息的目标路径名,请设置 CONSOLE 配置参数。

对 CONSOLE 所作的更改会在关闭并重新启动数据库服务器后生效。

UNIX 操作系统工具

数据库服务器依靠主机的操作系统提供对系统资源(例如,CPU、内存和各种未缓冲的磁盘 I/O 接口和文件)的访问。每个操作系统都有其自己的一套实用程序用来报告使用系统资源的状况。不同的操作系统可能有具有相同名称的监视实用程序,但它们的选项和信息显示不同。

下表显示典型的 UNIX™ 操作系统资源监视实用程序。有关如何监视操作系统资源的信息,请查询系统管理指南。

UNIX 实用程序描述
vmstat显示虚拟内存统计信息
iostat显示 I/O 利用率统计信息
sar显示各种资源统计信息
ps显示活动进程信息
cron通过系统调度程序(每隔一定时间运行命令或程序)来捕获系统资源的状态。 还可以使用其他可由操作系统提供的调度工具。

客户机/服务器通信

以下主题说明了要配置客户机/服务器通信所必须了解的概念和术语。

客户机/服务器体系结构

GBase 8s 产品符合客户机/服务器软件设计模型。应用程序或客户机可以位于托管数据库服务器的计算机上,也可以位于其他计算机上。客户机应用程序将发出请求以获得数据库服务器的服务和数据。数据库服务器通过提供客户机请求的服务和数据来作出响应。

将网络协议连同网络编程接口一起使用可连接客户机和数据库服务器并在它们之间传输数据。

网络协议

网络协议是一组规则,规定了如何在应用程序间传输数据以及在此上下文中如何在客户机与数据库服务器之间传输数据。

协议的规则在网络驱动程序中实施。 在数据从客户机发送到数据库服务器以及从数据库服务器发送到客户机时,网络驱动程序包含的代码会将数据格式化。

客户机和数据库服务器通过网络编程接口获得对网络驱动程序的访问权。网络编程接口包含的系统调用或库例程提供了对网络通信设施的访问权。 UNIX™ 的网络编程接口的示例是 TLI(传输层接口)。

网络协议的作用在于它能够启用客户机/服务器通信,尽管客户机和数据库服务器位于具有不同体系结构和操作系统的不同计算机上。

您可以配置数据库服务器来支持多个协议,但是仅当某些客户机使用 TCP/IP 时才考虑该选项。

网络编程接口

网络编程接口是一种应用程序编程接口 (API),它包含一组通信例程或系统调用。应用程序可以调用这些例程以便与位于相同或不同计算机上的其他应用程序通信。在该说明的上下文中,客户机和数据库服务器是调用 TLI 或套接字 API 中的例程的应用程序。客户机和数据库服务器都使用网络编程接口根据通信协议发送和接收数据。

如果要使客户机/服务器通信成功,那么客户机和数据库服务器的环境都必须用相同的协议配置。然而,一些网络协议可以通过多个网络编程接口来访问。例如,根据操作系统平台上可用的编程接口,可通过 TLI 或套接字来访问 TCP/IP。

数据库服务器连接

客户机应用程序使用 CONNECT 或 DATABASE SQL 语句建立与数据库服务器的连接。例如,应用程序可能包含以下 CONNECT 语句以连接到名为 my_server 的数据库服务器:

CONNECT TO '@my_server'
提示

数据库服务器的内部通信设施称为关联服务设施 (ASF)。如果看到一条包含对 ASF 的引用的错误消息,那么说明连接有问题。

支持多路复用连接

有些应用程序会代表一个用户多次连接到同一台数据库服务器。多路复用连接在数据库服务器和客户机之间使用单个网络连接以便处理来自客户机的多个数据库连接。客户机应用程序可以建立多个到数据库服务器的连接以代表单个用户访问多个数据库。如果连接不是多路复用的,那么每个数据库连接将建立到数据库服务器的单独网络连接。每个额外的网络连接都将使用额外的计算机内存和处理器时间,甚至对于不活动的连接亦如此。多路复用连接使数据库服务器可以创建多个数据库连接,而不会耗尽额外网络连接所需的额外计算机资源。

要配置数据库服务器以支持多路复用连接,请执行以下操作:

  1. 使用 DBSERVERALIASES 配置参数定义别名。

例如,指定:

DBSERVERALIASES ifx_mux
  1. 为别名添加 sqlhosts 文件条目,其中将 onsqlmux 用作 nettype 条目。hostname 和 servicename 必须具有条目,但这些条目会被忽略。可将连字符 (-) 用作条目。

例如:

#dbservername    nettype       hostname      servicename      options
ifx_mux onsqlmux
  1. 通过在客户机用于数据库服务器连接的 sqlhosts 条目中指定m=1,从而启用选定连接类型的多路复用。

例如:

#dbservername    nettype       hostname      servicename      options
menlo ontlitcp valley jfkl m=1

以下示例显示了 onconfig 文件和 sqlhosts 文件条目。

onconfig 文件:

DBSERVERNAME web_tli
DBSERVERALIASES web_mux

sqlhosts 文件:

#dbservername    nettype       hostname      servicename      options
web_tli ontlitcp node5 svc5 m=1
web_mux onsqlmux - -

无需更改数据库服务器使用的 sqlhosts 信息。客户机程序无需执行任何特殊的 SQL 调用,即可启用连接多路复用。当 onconfig 文件和 sqlhosts 条目进行了适当配置并且数据库服务器启动时,将自动启用连接多路复用。

多路复用连接不支持:

  • 多线程客户机连接
  • 共享内存连接
  • 与下级数据库服务器的连接(例如,用于分布式查询或数据复制)

如果在应用程序尝试建立连接时出现以上任一情况,数据库服务器就将建立标准连接。数据库服务器不返回 SQL 错误。

多路复用连接期间,不支持 GBase 8s ESQL/C sqlbreak() 函数。

数据库服务器支持的连接

数据库服务器支持与客户机应用程序的以下连接类型。

连接类型UNIX™本地网络
套接字XXX
TLI (TCP/IP)XXX
共享内存XX
安全套接字层 (Secure Sockets Layer, SSL)XX
流管道XX
命名管道X

安全套接字层 (SSL) 连接对网络中两点之间的数据通信使用加密。

配置连接时,请考虑设置 LISTEN_TIMEOUT 和 MAX_INCOMPLETE_CONNECTION 配置参数。通过使用这些参数,处理连接的侦听器 VP 更不容易因连接过多而发生问题,这样您就能够降低受到恶意的拒绝服务 (DOS) 攻击的风险。

仅限 UNIX: 在许多 UNIX 平台上,数据库服务器都支持多个网络编程接口。机器说明显示了数据库服务器支持用于您操作系统的接口/协议组合。

要设置客户机连接,请执行以下操作:

  1. 在 onconfig 文件中指定连通性和连接配置参数。
  2. 在平台上的连接文件中设置适当的条目。
  3. 请在 UNIX 启动脚本
  4. 添加 sqlhosts 条目以定义数据库服务器的数据库服务器组。

本地连接

本地连接是同一台计算机上客户机和数据库服务器之间的连接。以下主题描述了不同的本地连接类型。

共享内存连接 (UNIX™)

共享内存连接使用共享内存的一块区域作为客户机和数据库服务器相互通信所通过的通道。客户机不能与数据库服务器建立多个共享内存连接。

下图说明了共享内存连接。

图: 通过共享内存连接进行的客户机应用程序和数据库服务器通信

IMG_256

共享内存提供对数据库服务器的快速访问,但是它会引起一些安全性方面的风险。错误或恶意的应用程序可能删除或查看其自己的或其他本地用户的消息缓冲区。 如果客户机应用程序执行显式内存寻址或过度索引数据数组,那么共享内存通信也容易受到编程错误的影响。如果使用的是网络通信或流管道,那么这些错误不会影响数据库服务器。

共享内存连接的示例

下图显示名为river 的计算机上的共享内存连接。

图: 客户机应用程序与名为 river_shm 的数据库服务器之间的共享内存连接。

IMG_257

此安装的 onconfig 文件包含以下行:

DBSERVERNAME river_shm

此安装的 sqlhosts 文件包含以下行:

#dbservername    nettype       hostname      servicename      options
river_shm onipcshm river rivershm

客户机应用程序将连接到使用以下语句的此数据库服务器:

CONNECT TO '@river_shm'

对于共享内存连接,无需网络配置文件中的任何条目。对 sqlhosts 文件的 hostname和 servicename 字段使用任意值。

流管道连接(UNIX 和 Linux™)

流管道是 UNIX™ 进程间通信 (IPC) 设施,该设施允许同一计算机上的进程可以互相通信。

流管道连接有下列优势:

  • 与共享内存连接不同,流管道不会引起被其他显式地访问共享内存的相同部分的程序覆盖或读取的安全性风险。
  • 与共享内存连接不同,流管道连接允许同处一台计算机的数据库服务器之间有分布式事务。

流管道连接有下列劣势:

  • 在一些计算机上,流管道连接可能比共享内存连接慢。
  • 流管道并不可用于所有平台。
  • 当您将共享内存或流管道用于客户机/服务器通信时,hostname 条目被忽略。

本地回送连接

同一台计算机上客户机应用程序和数据库服务器之间的网络连接称为本地回送连接。 所用的网络工具是相同的,就像客户机应用程序和数据库服务器位于不同的计算机上一样。您可以进行本地回送连接,条件是已装备了您的计算机来处理网络事务。 本地回送连接不如共享内存连接快,但它们不会引起共享内存的安全性风险。

在本地回送连接中,数据看上去是从客户机应用程序传出到网络,然后再次传回数据库服务器。内部连接进程将直接在客户机和数据库服务器之间发送信息,而不会在网络上向外传输该信息。

本地回送连接的示例

下图显示了使用套接字和 TCP/IP 的本地回送连接。

图: 名为 river 的计算机上客户机与名为 river_soc 的数据库服务器之间的本地回送连接。

IMG_256

此安装的 sqlhosts 文件包含以下行:

#dbservername    nettype       hostname      servicename      options
river_soc onsoctcp river riverol

如果网络连接使用 TLI 来代替套接字,那么仅本例中的 nettype 条目将更改。在那种情况下,nettype 条目是 ontlitcp 而不是 onsoctcp。

此安装的 onconfig 文件包含以下行:

DBSERVERNAME river_soc

此示例假定 river 的条目在 hosts 文件中,而 riverol 的条目在 services 文件中。

通信支持服务

通信支持服务包括与连接相关的服务,例如:

  • 认证,这是验证用户或应用程序的身份的过程。最普通形式的认证是要求用户输入密码以获得对计算机或应用程序的访问权。
  • 消息完整性,用于确保通信消息在到达其目的地时完整无缺且未变更。
  • 消息机密性,用于在传输期间保护消息以免受到未经授权的查看,通常是通过加密和解密来实现这一点。

通信支持服务还可以包括其他处理,如数据压缩或基于流量的记帐。

数据库服务器通过名为“通信支持模块”(CSM) 的插件软件模块来提供额外的安全性相关通信支持服务。数据库服务器将在您未指定通信支持模块时使用该缺省认证策略。

连接文件

连接文件包含支持客户机/服务器通信的信息,并支持数据库服务器与其他数据库服务器通信。

这些连接配置文件可以分成三组:

  • 网络配置文件
  • 网络安全性文件
  • sqlhosts 文件

网络配置文件

这些主题标识并说明网络配置文件在 TCP/IP 网络上的使用。

TCP/IP 连接文件

当配置数据库服务器以使用 TCP/IP 网络协议时,您可使用 hosts 和 services 文件中的信息来准备 sqlhosts 信息。

对于连接正在网络上运行 GBase 8s 客户机/服务器产品的计算机的每个网络控制器卡,hosts 文件都需要一个单独的条目。文件中的每个条目都包含 IP 地址(或以太网卡地址)和主机名。您还可以包含主机别名。尽管主机名的长度在 hosts 文件中没有限制,但数据库服务器仍将主机名限制为 256 个字节。

以下示例具有两个条目。

#address       hostname  alias
98.555.43.21 odyssey
12.34.56.555 illiad sales

services 文件包含对于在 TCP/IP 上可用的每个服务的条目。每个条目都是一个单独的行,包含以下信息:

  • 服务名

GBase 8s 产品使用该名称来确定用于建立客户机/服务器连接的端口号和协议。服务名称限制为 128 个字节。

  • 端口号和连接协议,由正斜杠分隔

端口号是计算机端口,而 TCP/IP 的协议是 tcp。

操作系统会在端口号上施加限制。用户 gbasedbt 必须使用等于或大于 1024的端口号。 只允许 root 用户使用小于 1024 的端口号。

  • 主机别名(可选)

服务名称和端口号为随机。然而,它们在文件的上下文中必须唯一,并且在运行GBase 8s 客户机/服务器产品的所有计算机上必须完全相同。以下示例具有一个条目:

#servicename   port/protocol
server2 1526/tcp

该条目导致 server2 充当 TCP 端口 1526 的服务名称。然后,数据库服务器可以使用此端口来处理连接请求。

重要

对于与其他数据库服务器通信的数据库服务器,必须为 DBSERVERNAME 配置参数定义 TCP/IP 连接或 IPCSTR(进程间通信流管道)连接。 您还可以使用正确的连接协议为协调程序与下级服务器之间的连接定义至少一个 DBSERVERALIASES 配置参数设置。对于跨服务器事务,每个参与服务器必须支持与协调程序之间进行的 TCP/IP 或 IPCSTR 连接,即使两个数据库服务器实例在同一工作站上。

通常,为每个与数据库服务器名称关联的连接类型都包含单独的 NETTYPE 参数。您可在 DBSERVERNAME 和 DBSERVERALIASES 配置参数中列出数据库服务器名称条目。通过 sqlhosts 文件或注册表中的条目,可将连接类型与数据库服务器名称相关联。

hosts 和 services 文件必须可用于运行 GBase 8s 客户机/服务器产品的每台计算机。

UNIX:

  • hosts 和 services 文件位于 /etc 目录中。
  • 在使用 NIS 的系统上,hosts 和 services 文件都将保留在 NIS 服务器上。位于本地计算机上的 hosts 和 services 文件可能不会使用,也可能不是最新的。要查看 NIS 文件的内容,请在命令行上输入以下命令:
ypcat hosts
ypcat services

TCP/IP 连接文件 (UNIX™)

hosts 和 services 文件位于 /etc 目录中。文件必须可用于运行 GBase 8s 客户机/服务器产品的每台计算机。

在使用 NIS 的系统上,hosts 和 services 文件都将保留在 NIS 服务器上。位于本地计算机上的 hosts 和 services 文件可能不会使用,也可能不是最新的。要查看 NIS 文件的内容,请在命令行上输入以下命令:

ypcat hosts
ypcat services

打开 TCP/IP 连接时客户机和服务器的操作

当打开 TCP/IP 连接时,在客户机方可以读取到以下信息:

  • GBASEDBTSERVER 环境变量。
  • hosts 文件信息(GBASEDBTSQLHOSTS 环境变量、$GBASEDBTDIR/etc/sqlhosts 文件)和 services 文件信息
  • 其他环境变量
  • 资源文件

以下信息是在服务器方读取的:

  • DBSERVERNAME 配置参数
  • DBSERVERALIASES 配置参数
  • 服务器环境变量和配置参数,包括管理 TCP/IP 连接的任何 NETTYPE 配置参数设置。

多个 TCP/IP 端口

要利用多块以太网卡:

  • 在 services 文件中为数据库服务器将使用的每个端口建立一个条目,如以下示例所示:
#servicename   port/protocol   alias
soc1 21/tcp
soc2 22/tcp

单个 IP 地址的每个端口必须唯一。 独立的以太网卡可以使用唯一或共享的端口号。您可能希望在连接到同一个数据库服务器的几块以太网卡上使用同一个端口号。(在此方案中,服务名称相同。)

  • 将每个条目(每个以太网卡一个)放入具有独立 IP 地址的 hosts 文件中,如下例所示:
#address               hostname    alias
192.147.104.19 svc8
192.147.104.20 svc81
  • 在 onconfig 文件中,为其中一个以太网卡设置 DBSERVERNAME 配置参数,为另一个以太网卡设置 DBSERVERALIASES 配置参数。以下行显示 onconfig文件中的样本条目:
DBSERVERNAME chicago1
DBSERVERALIASES chicago2
  • 针对每张以太网卡添加一个 sqlhosts 条目。即,为 DBSERVERNAME 建立一个条目,并为 DBSERVERALIASES 建立另一个条目。
#dbservername    nettype       hostname      servicename      options
chicago1 onsoctcp svc8 soc1
chicago2 onsoctcp svc81 soc2

此配置完成后,应用程序将通过指定给数据库服务器名称(由GBASEDBTSERVER环境变量提供)的以太网卡进行通信。

网络安全性文件

GBase 8s 产品遵循由网络安全性文件中包含的信息管理的标准安全性过程。对于与远程计算机上数据库服务器连接的客户机应用程序,客户机应用程序的用户在远程计算机上必须具有有效的用户标识。

可信主机信息

/etc/hosts.equiv 和 .rhosts 文件为 rlogin、rsh、rcp 和 rcmd 提供了远程认证数据库。这些文件指定了可信的远程主机和用户。允许可信用户在不提供密码的情况下访问本地系统。hosts.equiv 文件应用于整个系统。各个用户在其主目录中维护自己的.rhosts 文件。

数据库服务器可以配置为使用 /etc/hosts.equiv 或 .rhosts 文件进行远程认证。要使用可信主机信息进行认证,应该在 sqlhosts 信息中指定 s=1 或 s=3 选项。如果未指定 s 选项,s=3 是缺省值。

可以将数据库服务器配置为使用其他文件进行远程认证。REMOTE_SERVER_CFG 配置参数可以指定要使用的备用文件,而不是 hosts.equiv 文件。 在以下情况下,此备用文件是必需的:

  • 针对数据库服务器需要的可信主机不同于为操作系统列出的可信主机
  • 安装时的安全策略不允许使用 hosts.equiv
  • 您是非 root 服务器实例的用户,并且需要控制哪些主机可信

可信主机文件是指 hosts.equiv 文件或 REMOTE_SERVER_CFG 配置参数指定的文件。

如果客户机应用程序提供了无效的帐户名称和密码,那么即使可信主机信息包含客户端计算机的条目,数据库服务器也将拒绝连接。请仅将可信主机信息用于不提供用户帐户或密码的客户机应用程序。

usename 字段是可选的。包含用户名可将连接限制到指定的用户。

要避免额外的 DNS 查找,请在可信主机文件中指定包含和不包含域名的主机名。例如,如果可信主机名为argo,并且位于域example.com 中,那么可信主机文件将指定以下主机:

#trustedhost      #username
argo gbasedbt
argo.example.com gbasedbt

在一些网络中,远程主机用于连接到特定计算机的主机名可能与计算机用于表示其自身的主机名不同。例如,包含标准域名 (FQDN) xyz.gbasedbt.com 的网络主机可能通过本地主机名viking 引用自身。如果发生这种情况,可信主机信息必须指定这两种主机名格式,如以下示例中所示:

#trustedhost
xyz.gbasedbt.com
viking

如果使用的是系统 hosts.equiv 文件并使用了 rlogind 守护程序,那么可以在客户端计算机上执行以下语句来确定客户机是否可信:

rlogin hostname

如果在没有收到密码提示的情况下成功登录,说明该客户机是可信计算机。当 REMOTE_SERVER_CFG 配置参数指定备用文件名时,这种用于确定客户机是否可信的方法将失效。

通过在 sqlhosts 文件中配置专用端口,可以提高 Enterprise Replication 连接和高可用性连接的安全性。

可信用户信息

在用户的 .rhosts 文件中,用户可以列出可从中作为可信用户进行连接的主机。.rhosts 文件位于数据库服务器所在的计算机上的用户主目录中。 要启用可信用户认证,请在 sqlhosts 条目的选项中指定 s=2 或 s=3。如果未指定 s 选项,s=3 是缺省值。

无法使用用户的 .rhosts 文件的原因可能有多种。例如,非 root 安装可能对特定用户的 .rhosts 文件不具有读访问权。 通过设置 REMOTE_USERS_CFG 配置参数,可以指定备用文件名。如果设置此参数,数据库服务器只有一个可信用户文件用于所有用户。

.rhosts 文件的每一行是用户可以从中进行连接的一个主机。必须指定包含和不包含域名的服务器名称,以避免执行额外的 DNS 查找。 例如:

#trustedusers
xxx.example.com
xxx

yyy.example.com
yyy

REMOTE_USERS_CFG 配置参数指定的文件必须是各个 .rhosts 文件的组合。 文件中的每个单行条目都具有以下格式:

hostname username

例如,假设针对用户 John 和 Fred 存在以下两个 .rhosts 文件:

~john/.rhosts

#trustedhosts
xxx.example.com
xxx

yyy.example.com
yyy
~fred/.rhosts
#trustedhosts
xxx.example.com
xxx

zzz.example.com
zzz

John不信任 zzz.example.com 或zzz,而Fred 不信任 yyy.example.com 或 yyy

.rhosts 文件可以合并到具有以下格式的一个文件中:

#trustedhost      username
xxx.example.com john
xxx john

yyy.example.com john
yyy john

xxx.example.com fred
xxx fred

zzz.example.com fred
zzz fred

netrc 信息

netrc 信息是指定标识数据的可选信息。没有访问数据库服务器的权限的用户或不是数据库服务器所信任的计算机上的用户可以使用此文件提供可信的名称和密码。在远程计算机上拥有不同用户帐户和密码的用户也可以提供此信息。

UNIX™:netrc 信息位于用户主目录中的 .netrc 文件中。可使用任何标准的文本编辑器准备 .netrc 文件。netrc 条目的格式为:

machine machine_name login user_name password user_password

如果您没有在应用程序中为远程服务器显式地提供用户密码(即,通过 CONNECT 语句的 USER 子句或 DB-Access 中提示的用户名和密码),那么客户机应用程序将用户名和密码锁定在 netrc 信息中。 如果用户在应用程序中显式指定了密码,或者如果数据库服务器不是远程的,那么将不会参考 netrc 信息。

无论数据库服务器是否使用缺省的认证策略或通信支持模块,它都将使用 netrc 信息。

用户模仿

对于某些客户机查询或操作,数据库服务器必须模仿客户机,为客户机运行进程或程序。为了模仿客户机,数据库服务器必须接收每个客户机连接的密码。客户机可以通过 CONNECT 语句或 netrc 信息提供用户标识和密码。

以下示例显示了您可以如何提供密码以模仿客户机。

netrc

machine trngpc3 login bruce password im4golf

CONNECT 语句

CONNECT TO ol_trngpc3 USER bruce USING "im4golf"

sqlhosts 文件和 SQLHOSTS 注册表键

GBase 8s 客户机/服务器连接信息(sqlhosts 信息)包含允许客户机应用程序找到并连接到网络上任何 GBase 8s 数据库服务器的信息。

sqlhosts 文件 (UNIX™)

在 UNIX 上,缺省情况下,sqlhosts 文件位于 $GBASEDBTDIR/etc 目录中。

sqlhosts 文件中的每个条目包含一个数据库服务器或数据库服务器组的sqlhosts 信息。其中每个字段的附加语法规则将在以下各节中提供,它们将描述 sqlhosts 文件中的条目。 可使用任何标准的文本编辑器在sqlhosts 文件中输入信息。

使用文本编辑器创建 sqlhosts 文件 (UNIX™)

缺省情况下,sqlhosts 文件位于 $GBASEDBTDIR/etc 目录中。或者,您可以将 GBASEDBTSQLHOSTS环境变量设置为包含sqlhosts 信息的文件的完整路径名和文件名。每个主管数据库服务器或客户机的计算机都必须有一个 sqlhosts 文件。

打开任何标准文本编辑器以创建 sqlhosts 文件。

注意
  • 使用空格(空格、制表符或两者)分隔各个字段。
  • 不要在字段内包含任何空格或制表符。
  • 要在 sqlhosts 文件中放置注释,请以注释符 (#) 开始每一行。您还可以将若干行 留空以增加可读性。

样本 sqlhosts 文件

以下代码块显示样本 sqlhosts 文件。

#dbservername  nettype        hostname      servicename      options
menlo onipcshm valley menlo
newyork ontlitcp hill dynsrvr2 s=2,b=5120
payroll onsoctcp dewar py1
asia group - - e=asia.3
asia.1 ontlitcp node6 svc8 g=asia
asia.2 onsoctcp node0 svc1 g=asia
portland drsocssl dewar portland_serv

sqlhosts 信息

托管数据库服务器或客户机的每台计算机都必须包含连接信息。信息存储在 UNIX™ 操作系统上的 sqlhosts文件中。连接信息存储在 sqlhosts文件中。

sqlhosts 信息包含每个数据库服务器的连接信息。sqlhosts 信息还包含对于组的定义。当您启动数据库服务器、客户机应用程序连接到数据库服务器、或数据库服务器连接到另一个数据库服务器时,数据库服务器将查询连接信息。

在 sqlhosts 文件中,每一行包含一个数据库服务器的连接信息,或者一个组的定义。

  • 每个数据库服务器的连接信息包括四个必填信息字段和一个可选字段。
  • 组定义仅包括三个字段中的信息。

在注册表中,数据库服务器名称将指定给 SQLHOSTS 注册表键中的键,而其他字段是该键的值。

下表概括了用于 SQLHOSTS 信息的字段。

sqlhosts 文件中的字段名称SQLHOSTS 注册表键中的字段名称连接信息的描述组信息的描述
dbservernameDatabase server name key 或 database server group key数据库服务器名数据库服务器组名称
nettypePROTOCOL连接类型关键字 group
hostnameHOST数据库服务器的主机无信息。在此字段中使用短划线作为占位符。
servicenameSERVICE端口号的别名无信息。在此字段中使用短划线作为占位符。
optionsOPTIONS描述或限制连接的选项组选项

sqlhosts.std 文件中的 IANA 标准服务名称和端口号

因特网指定号码权限 (IANA) 为 GBase 8s 数据库服务器指定了以下服务名称和端口号:

端口/服务IANA 代码描述
sqlexec9088/tcpGBase 8s SQL 接口
sqlexec-ssl9089/tcpGBase 8s SQL 接口 - 已加密

这些服务名称在 GBase 8s 的 sqlhosts.std 文件中创建。无需更改已安装的 GBase 8s 系统,因为这些系统将继续使用现有端口号和服务名称。(另外,不能保证其他某个系统尚未使用指定给 GBase 8s 的服务名称或端口号。)

具有以下标准的策略的组织可以使用这些服务名称和端口号,假如这些组织想要数据库服务器与 IANA 标准保持一致的话。如果安装在同一工作站上的另一应用程序已经使用了其中某个服务名称或端口号,那么可以要求不合规应用程序的发布者注册指定的 IANA 端口号,以避免冲突。应用程序不合规时,可以使用非标准端口来运行 GBase 8s。

sqlhosts 连接信息

sqlhosts 文件中的字段或 SQLHOSTS 注册表键描述连接信息。

语法

C:\Users\admin\Desktop\webhelp\admin\svgobject\2Ftemp2Fxhtml2Fids_admin_0161.dita_d4259e202.png

元素用途限制
dbservername指定要为其指定连接信息的数据库服务器的名称。
如果通过组关键字而非连接类型进行指定,那么指定一个组以将多个相关数据库服务器条目作为一个逻辑条目进行处理。您可以使用组来建立或更改客户机/服务器连接,或者简化到数据库服务器的连接重定向。
该名称必须以小写字母开头,并且可以包含小写字母、数字和下划线 (_) 符号。字段长度限制为 128 个字节。
数据库服务器必须存在。其名称必须由 onconfig 文件中的 DBSERVERNAME 或 DBSERVERALIASES 配置参数指定。
无法将一个数据库服务器组嵌套在另一个数据库服务器组中。 数据库服务器可以是一个组的成员。
connection_type描述数据库服务器和客户机应用程序或其他数据库服务器之间建立的连接的类型。
hostname指定数据库服务器所在的计算机。字段长度限制为 256 个字节。 如果指定组关键字,那么必须为空值 (-)。
servicename指定端口号的别名。服务名称字段的解释取决于连接类型字段中的连接类型。字段长度限制为 128 个字节。 如果指定组关键字,那么必须为空值 (-)。

dbservername 字段

跨所有关联网络的每台数据库服务器必须有一个唯一的数据库服务器名称。

如果 sqlhosts 文件具有使用相同 dbservername 的多个条目,那么只使用第一个条目。

连接类型字段

连接类型字段在 sqlhosts 文件中称为 nettype,在 SQLHOSTS 注册表键中称为 PROTOCOL。

下表概括了不同操作系统上数据库服务器连接的可能连接类型值。

表 1. 连接类型摘要

UNIX™ 的值描述连接类型
onipcshm共享内存通信。如果用于非 root 安装(这种情况下服务器和客户机位于不同位置),那么 sqlhosts 文件中需要 cfd 选项。IPC
onipcstr流管道通信。如果用于非 root 安装(这种情况下服务器和客户机位于不同位置),那么 sqlhosts 文件中需要 cfd 选项。IPC
命名管道通信IPC
ontlitcpTCP/IP 协议的 TLI网络
onsocssl安全套接字层 (SSL) 协议网络
onsoctcp使用 TCP/IP 协议的套接字网络
onsocimc用于与 GBase 8s MaxConnect 通信的 TCP/IP 协议的套接字网络
ontliimc用于与 GBase 8s MaxConnect 通信的 TCP/IP 协议的 TLI网络
onsqlmux多路复用连接网络
注意

以“on”开头的连接类型值可以使用“ol”来代替“on”。例如,onipcshm 或 olipcshm 指定共享内存连接(如果在 sqlhosts 信息中使用)。

主机名字段

主机名在 sqlhosts 文件中的 hostname 字段以及 HOST 注册表键中输入。

如果连接类型是 onsqlmux,hostname 字段不能为空,但其中输入的任何具体值都将被忽略。

下面说明了客户机应用程序如何派生主机名字段中使用的值。

通过 TCP/IP 进行的网络通信

使用 TCP/IP 连接协议时,host name 字段是 hosts 文件的一个键,用于提供计算机的网络地址。hostname 字段中使用的名称必须与 hosts 文件中的名称相对应。 在大多数情况下,hosts 文件中的主机名与计算机的名称相同。

在某些情况下,您可能希望在主机名字段中使用实际的因特网 IP 地址。

UNIX:共享内存和流管道通信

当您将共享内存或流管道用于客户机/服务器通信时,hostname 字段必须包含数据库服务器所在计算机的实际主机名。

多路复用连接

将 onsqlmux 用作连接类型时,hostname 字段必须有一个条目,但该条目将被忽略。短划线 (-) 可用作条目。

服务名称字段

通过 TCP/IP 进行的网络通信

服务名称字段在 UNIX 操作系统上称为 servicename。使用 TCP/IP 连接协议时,服务名称条目必须与 services 文件中的名称相对应。services文件中的端口号告诉网络软件如何在指定的主机上查找数据库服务器。

下图显示 sqlhosts 信息和 hosts 文件之间的关系,以及 sqlhosts 信息到 services 文件的关系。

图: sqlhosts 信息到 hosts 和 services 文件的关系

此图显示 sqlhosts 信息、hosts 文件和 services 文件中的样本数据。 sqlhosts 信息和 hosts 文件包含相同的主机名字段。sqlhosts 信息和 services 文件包含相同的服务名称字段。

在某些情况下,可在服务名称字段中使用实际的 TCP 侦听端口号。

UNIX:共享内存和流管道通信

对于共享内存连接 (onipcshm) 或流管道连接 (onipcstr),数据库服务器在内部使用 servicename 条目中的值来创建支持连接的文件。对于 onipcshm 和 onipcstr 这两种连接,servicename 可以是数据库服务器所在主机环境中唯一的任意字母短组。

提示

对于流管道连接,请将 dbservername 用作 servicename

多路复用连接

对于多路复用连接 (onsqlmux),hostname 字段必须有一个条目,但该条目将被忽略。可将连字符 (-) 用作条目。

  • sqlhosts 文件和 SQLHOSTS 注册表键选项
    您可以在 sqlhosts 文件或 SQLHOSTS 注册表键中包含服务器选项和组选项。

sqlhosts 文件和 SQLHOSTS 注册表键选项

您可以在 sqlhosts 文件或 SQLHOSTS 注册表键中包含服务器选项和组选项。

以下语法分段显示服务器选项。在服务器选项之后的部分中描述了组选项的语法分段。

重要

选项必须以逗号分隔,但在每个 sqlhosts 条目中列出的第一个选项前面不能有逗号。

Server options

C:\Users\admin\Desktop\webhelp\admin\svgobject\2Ftemp2Fxhtml2Fids_admin_0175.dita_d5915e211.png

Lookup options

C:\Users\admin\Desktop\webhelp\admin\svgobject\2Ftemp2Fxhtml2Fids_admin_0175.dita_d5915e299.png

PAM options

C:\Users\admin\Desktop\webhelp\admin\svgobject\2Ftemp2Fxhtml2Fids_admin_0175.dita_d5915e336.png

CSM options

C:\Users\admin\Desktop\webhelp\admin\svgobject\2Ftemp2Fxhtml2Fids_admin_0175.dita_d5915e367.png

表 1. sqlhosts 文件和 SQLHOSTS 注册表键中的 Server 选项。

元素用途限制
a存储连接到 GBase 8s Warehouse Accelerator 所需的认证令牌。此条目由 GBase 8s 在 GBase 8s Warehouse Accelerator 连接设置期间创建。重要: 不要手动更改此选项。
b指定用于 TCP/IP 连接的通信缓冲区空间大小(以字节为单位)。支持的最大缓冲区大小为 32 KB。
c为支持单点登录 (SSO) 的类属安全性服务 CSM 启用机密性服务。 与 SSO 认证的用户之间传输的数据已加密,只能供使用授权凭证登录的用户查看。● c=1:启用服务(缺省值)
● c=0:禁用服务
cfd指示共享内存和流管道连接中所用通信文件的存储位置。cfd 路径的长度限制为 70 个字节。相对路径字节长度包括 $GBASEDBTDIR。
csm针对使用通信支持模块 (CSM) 的每个数据库服务器描述 CSM。必须在 concsm.cfg 文件中指定 CSM 条目。
ENCCSM加密通信支持模块的名称。必须在 concsm.cfg 文件中指定 ENCCSM。 不能将 ENCCSM 用于
● Enterprise Replication 和高可用性集群
● 多路复用连接
● 简单密码 CSM (SPWDCSM)
g指定数据库服务器所属的组的名称。该组必须已定义。
GSSCSM用于单点登录 (SSO) 认证的类属安全性服务通信支持模块的名称。必须在 concsm.cfg 文件中指定 GSSCSM。不能将其用于 Enterprise Replication 和高可用性集群。
i为支持单点登录 (SSO) 的类属安全性服务 CSM 启用完整性服务。● i=1:启用服务(缺省值)
● i=0:禁用服务
k启用网络服务以定期检查客户机与服务器之间的连接是否仍处于活动状态。 如果发现连接已中断,网络服务将释放资源。仅可用于 TCP/IP 连接。
m使数据库服务器可以创建多个数据库连接,而不会耗尽更多网络连接所需的额外计算机资源。● 不支持多线程客户机连接、共享内存连接以及与下级数据库服务器的连接。
● 不支持 GBase 8s ESQL/C sqlbreak() 函数。
● 不能与 CSM 结合使用。
p启用和禁用提供密码加密的简单密码 CSM。● p=0:无需密码(缺省值)
● p=1:需要密码
r启用对操作系统安全文件查找的控制来控制客户机(用户)获取数据库服务器访问权的方式。s 选项标识数据库服务器端设置,而 r 选项则标识客户机端设置。数据库服务器将忽略 r 设置。
s启用对操作系统安全文件查找的控制来控制客户机(用户)获取数据库服务器访问权的方式。s 选项标识数据库服务器端设置,而 r 选项则标识客户机端设置。客户机将忽略 s 设置。
pam_serv提供数据库要使用的 PAM 服务的名称。必须与 s=4 选项结合使用。
pamauth描述 PAM 服务所用的授权方法。必须与 s=4 选项结合使用。
SPWDCSM简单密码通信支持模块的名称必须在 concsm.cfg 文件中指定 SPWDCSM。 不能将 SPWDCSM 用于
● Enterprise Replication 和高可用性集群
● 多路复用连接
● 加密 CSM (ENCCSM)

以下语法分段显示 sqlhosts 文件中的 Group 选项。

组选项

C:\Users\admin\Desktop\webhelp\admin\svgobject\2Ftemp2Fxhtml2Fids_admin_0175.dita_d5915e798.png

表 2. sqlhosts 文件和 SQLHOSTS 注册表键中的 Group 选项。

元素用途限制
c控制连接重定向。 指示客户机应用程序选择数据库服务器组中的数据库服务器或别名的顺序。
e指定标记数据库服务器组末尾的数据库服务器名称。
i为数据库服务器组指定标识号。此标识必须是从 1 到 32767 的一个正整数,而且在您的网络环境中必须唯一。i 选项对于 Enterprise Replication 是必需的。

用途

在更改 sqlhosts 条目中的选项值时,这些更改将影响客户机应用程序建立的下一个连接。服务器将自动识别所做的任何更改。

数据库服务器将 options 条目作为一连串列进行求值。options 条目中的逗号或空格表示一个列的结束。客户机和数据库服务器将检查每一行以确定该选项是否受支持。

您可以在每个条目中组合多个选项,而且可以按任何顺序包含这些选项。options 条目的最大长度为 256 个字节。

注意

不受支持或不正确的选项不会触发通知。

缓冲区选项 (b)

b 选项仅应用于使用 TCP/IP 连接协议的连接。其他类型的连接将忽略 b 选项。

可调整缓冲区大小,以便更有效地使用系统和网络资源;然而,如果设置过高的缓冲区大小,那么用户会因为不能分配任何内存而接收到连接拒绝错误。例如,如果您在拥有 1000 个用户的系统上设置 b=16000,那么系统可能会需要 16 兆字节的内存用于通信缓冲区。此设置可能会耗尽计算机的内存资源。使用 TCP/IP 的数据库服务器的缺省缓冲区大小是 4096 字节。

提示

如果您的网络包括多种不同类型的计算机,更改通信缓冲区的大小时要小心。

使用通信缓冲区的缺省大小。如果您选择将缓冲区大小设置为其他值,请将客户机端通信缓冲区以及数据库服务器端通信缓冲区设置为相同的大小。

组连接重定向选项 (c)

c 选项仅针对分配给服务器组的服务器有效。

请将 c 选项用于:

  • 平衡多个数据库服务器实例上的负载。
  • 设置高可用性数据复制 (HAC),以便在发生故障的情况下转移到备份数据库服务器。

表 3. 连接重定向选项的设置。

设置结果
c=0这是缺省设置。
客户机应用程序连接至 sqlhosts 信息中的服务器组中列出的第一个数据库服务器实例。如果客户机无法连接到第一个实例,它将尝试连接第二个实例,依此类推。
c=1客户机应用程序会选择一个随机的起点来连接到服务器组中的某个数据库服务器实例。

通信文件目录选项 (cfd)

可使用通信文件目录选项,以将共享内存或流管道连接通信文件存储到新位置中。如果服务器和客户机位于不同位置中,那么必须为 GBase 8s 的非 root 安装指定通信文件目录选项;如果服务器和客户机位于同一位置中,指定此选项将提高系统性能。

cfd 选项可定义绝对路径或相对于 $GBASEDBTDIR 的路径以用于存储通信文件:

cfd=/location 定义绝对路径

  • cfd=location 定义相对于 $GBASEDBTDIR 的路径
  • cfd 路径的长度限制为 70 个字节。相对路径字节长度包括 $GBASEDBTDIR。

GBase 8s 的非 root 安装无权写入 /GBASEDBTTMP 目录,因此如果在 sqlhosts信息中未将任何通信文件目录指定为选项,那么共享内存和流管道连接通信文件将写入 $GBASEDBTDIR/etc 目录。

注意

必须为 GBase 8s 的非 root 安装(其中服务器和客户机位于不同位置)定义此选项,否则连接将失败。

通信支持模块选项 (csm)

CSM 选项的格式为 csm=(name,options)

name 的值必须与 concsm.cfg 文件中的某个 name 条目相匹配。

sqlhosts 文件中定义的 GSM 选项会覆盖在 concsm.cfg 文件中指定的选项。 不能在 sqlhosts 信息中指定 CSM 加密选项。

如果不指定 csm 选项,那么数据库服务器会将缺省认证策略用于该数据库服务器。

注意

不推荐也无需将 s=7 选项用于单点登录 (SSO) CSM。

组末尾选项 (e)

如果没有为某个组指定 e 选项,但是所有 sqlhosts 条目都指定组或组成员,那么网络必须扫描整个文件。可以使用 e 选项指定服务器组的末尾,从而提高系统性能。网络层将扫描 sqlhosts 文件,直至读取到 e 选项指定的条目为止。

如果没有为组指定任何组末尾选项,那么组成员假定是连续的。达到不属于组的条目或处于文件的末尾时(以其中首先发生的任一种情况为准),即可确定该组的末尾。

在以下示例中,e 选项指定了条目 lx3,所以网络层不会扫描条目 lx4。

#dbservername    nettype       hostname      servicename      options
g_x1 group - - i=10,e=lx3
lx1 onsoctcp apollo11 9810 g=g_x1
lx2 onsoctcp apollo12 9820 g=g_x1
lx3 onsoctcp apollo13 9830 g=g_x1
lx4 onsoctcp apollo14 9840

保持活动选项 (k)

此选项启用网络服务以定期检查客户机与服务器之间的连接是否仍处于活动状态。 如果连接的接收端未在操作系统的参数所指定的时间内响应,那么网络服务将立即检测到断开的连接并释放资源。

表 4. 保持活动选项的设置

设置结果
k=0禁用此服务
k=1启用此服务(缺省值)

多路复用选项 (m)

此选项使数据库服务器可以创建与客户机应用程序的多个数据库连接,而不会耗尽更多网络连接所需的额外计算机资源。启用此服务之后,必须重新启动服务器。

表 5. 多路复用选项的设置

设置结果
m=0禁用此服务(缺省值)
m=1启用此服务

PAM 选项(pam_serv 和 pam_auth)

数据库服务器提供了用于为会话认证使用 PAM 的接口。 要配置此接口,请提供 PAM 服务名称和认证方法。认证可以是连接密码或要求用户回答问题的用户提问。GBase 8s PAM 认证将调用 pam_authenticate() 和 pam_acct_mgmt() 函数。

表 6. PAM 服务的设置

选项描述设置
pam_serv数据库服务器正在使用的 PAM 服务的名称。PAM 服务通常位于 /usr/lib/security 目录中,而参数在 /etc/pam.conf 文件中列出。
在 Linux™ 中,/etc/pam.conf 文件可替换为目录 /etc/pam.d,每个 PAM 服务在该目录内有一个文件。如果存在 /etc/pam.d,Linux 将忽略 /etc/pam.conf。
pamauthPAM 服务使用的认证方法。
如果使用此认证方式,那么必须将应用程序设计为正确响应提问提示之后才能连接到数据库服务器。
pamauth=password 对认证使用连接请求密码 br pamauth=challenge 认证要求用户正确回答问题或提示

hosts.equiv 和 rhosts 查找选项 (s)

通过这些安全性选项,您可以明确地启用或禁用对这两个文件或其中任何一个文件的使用。

表 7. hosts.equiv 和 rhosts 查找的设置。

设置结果
s=0禁用 hosts.equiv 查找。 禁用 rhosts 查找。 仅接受带密码的入局连接。不能用于分布式数据库操作。
s=1启用 hosts.equiv 查找。 禁用 rhosts 查找。
s=2禁用 hosts.equiv 查找。 启用 rhosts 查找。 不能用于分布式数据库操作。
s=3启用 hosts.equiv 查找。 启用 rhosts 查找。 (缺省值)

可信主机和可信用户查找选项 (s)

通过这些安全性选项,您可以明确地启用或禁用对这两个文件或其中任何一个文件的使用。

表 8. 可信主机和可信用户查找的设置。

设置结果
s=0在 hosts.equiv 中或 REMOTE_SERVER_CFG 配置参数指定的文件中禁用可信主机查找。
在 rhosts 文件中或 REMOTE_USERS_CFG 配置参数指定的文件中禁用可信用户查找。 仅接受带密码的入局连接。不能用于分布式数据库操作。
s=1在 hosts.equiv 中或 REMOTE_SERVER_CFG 配置参数指定的文件中启用可信主机查找。
在 rhosts 文件中或 REMOTE_USERS_CFG 配置参数指定的文件中禁用可信用户查找。
s=2在 hosts.equiv 中或 REMOTE_SERVER_CFG 配置参数指定的文件中禁用可信主机查找。
在 rhosts 文件中或 REMOTE_USERS_CFG 配置参数指定的文件中启用可信用户查找。 不能用于分布式数据库操作。
s=3在 hosts.equiv 中或 REMOTE_SERVER_CFG 配置参数指定的文件中启用可信主机查找。
在 rhosts 文件中或 REMOTE_USERS_CFG 配置参数指定的文件中启用可信用户查找。
(缺省值)

集群的安全连接选项 (s=6)

sqlhosts 信息中的 s=6 选项确保集群服务器之间的连接可信。sqlhosts 信息中列出的安全端口只能用于集群通信。客户机应用程序不能连接到安全端口。

表 9. 集群的安全连接选项。

设置结果
s=6配置 Enterprise Replication 和高可用性连接安全性。不能与其他任何 s 选项结合使用。

netrc 查找选项 (r)

可使用 r 选项启用或禁用 netrc 查找。

表 10. netrc 查找选项的设置。

设置结果
r=0禁用 netrc 查找。
r=1启用 netrc 查找(缺省值)

组信息

可在 sqlhosts 文件或 SQLHOSTS 注册表键中定义服务器组。创建服务器组时,可以将多个相关数据库服务器条目视为一个逻辑实体,用于建立或更改客户机/服务器连接。也可以使用组简化到数据库服务器的连接的重定向。

要将服务器组用于 Enterprise Replication,请使用 i 和 g 选项。所有参与复制的数据库服务器都必须是数据库服务器组的成员。 企业中的每个数据库服务器都必须有作为服务器组的唯一的标识。请确保在每个参与复制的数据库服务器上都正确设置了 sqlhosts 信息。

要将数据库服务器组用于高可用性数据复制 (HAC),可使用 HAC 中的 c、e 和 g 选项。HAC 需要两个完全相同的系统。

可以在以下环境变量中或 SQL CONNECT 命令中使用数据库服务器组的名称来代替数据库服务器名称:

  • 客户机应用程序的 GBASEDBTSERVER 环境变量的值可以是数据库服务器组的名称。但是,不能将数据库服务器组的名称用作数据库服务器或数据库服务器实用程序的 GBASEDBTSERVER 环境变量的值。
  • DBPATH 环境变量的值可以包含数据库服务器组的名称作为数据库服务器名称。

在 sqlhosts 文件中创建数据库服务器组 (UNIX™)

通过向 sqlhosts 文件添加条目,可以定义数据库服务器组和组成员。

要在 sqlhosts 文件中创建数据库服务器组:

  1. 添加一个条目来定义数据库服务器组:

dbservername

组的名称。该名称必须以小写字母开头,并且可以包含小写字母、数字和下划线 (_) 符号。

nettype

单词 group。

hostname

短划线 (-) 字符 (ASCII 45),用于指示此字段值为空。

servicename

短划线 (-) 字符 (ASCII 45),用于指示此字段值为空。

options

c、e 或 i 选项(根据情况而定)。

  1. 为属于组的数据库服务器添加一个或多个条目。包括 g=group 选项。

示例

以下示例显示了 sqlhosts 文件中名为 asia 的数据库服务器组定义以及 asia 组成员:

#dbservername    nettype       hostname      servicename      options
asia group – – e=asia.4
asia.1 ontlitcp node6 svc8 g=asia
asia.2 onsoctcp node0 svc1 g=asia
asia.3 onsoctcp node10 svc10 g=asia
asia.4 onsoctcp node1 svc9 g=asia

TCP/IP 连接的备用方法

以下主题描述了绕过 TCP/IP 连接的端口和 IP 地址查找的某些方法。

TCP/IP 连接的 IP 地址

对于 TCP/IP 连接(TLI 和套接字),您可以使用 hostname 字段中的实际 IP 地址来代替主机名或 hosts 文件中找到的别名。以下示例显示 hosts 文件中的样本 IP 地址和主机。

#address       hostname    alias
555.12.12.12 smoke
98.555.43.21 odyssey
12.34.56.555 knight sales

如果对该表中的 knight 使用 IP 地址,以下两个 sqlhosts 条目是等效的:

#dbservername    nettype       hostname      servicename      options
sales ontlitcp 12.34.56.789 sales_ol
#dbservername nettype hostname servicename options
sales ontlitcp knight sales_ol

使用 IP 地址在某些情况下可能加速连接时间。 但是,由于计算机通常由其主机名标识,因此在主机名字段中使用 IP 地址不便于标识与条目相关联的计算机。

UNIX: 您可以在 hosts 文件的网络地址字段中查找 IP 地址,或者您可以使用 UNIX ™ arpypmatch 命令查找 IP 地址。

TCP/IP 连接的通配符寻址

同时满足以下两个条件时,可以在 hosts 文件的 hostname 字段中使用通配符寻址:

  • 您使用的是 TCP/IP 连接。
  • 数据库服务器所在的计算机使用多块网络接口卡 (NIC)。

如果满足上述条件,您可以在数据库服务器使用的 hostname 字段中使用星号 (*) 作为通配符。当您在 hostname 字段中输入一个通配符时,数据库服务器可以在其主计算机上接受任何有效 IP 地址的连接。

每个 IP 地址都与唯一的主机名相关联。计算机使用多个 NIC 时(如下表中所示),hosts 文件必须针对每个接口卡具有一个条目。例如,使用两个 NIC 的 texas 计算机的 hosts 文件中可能包含以下条目。

#address       hostname   alias
123.45.67.81 texas1
123.45.67.82 texas2

如果客户机应用程序和数据库服务器共享 sqlhosts 信息,那么可以在 hostname 字段中同时指定通配符和主机名或 IP 地址(例如,*texas1 或 *123.45.67.81)。 客户机应用程序忽略通配符并使用主机名(或 IP 地址)来建立连接,并且数据库服务器使用通配符从任何 IP 地址接受连接。

通配符格式允许数据库服务器的侦听线程等待每块有效的网络接口卡上使用相同服务端口号的客户机连接。但是,等待多个 IP 地址的连接可能比等待特定主机名或 IP 地址的连接所需处理器时间更长。

下图显示具有两块网络接口卡的计算机 texas 上的数据库服务器。这两个客户机站点使用不同的网卡与数据库服务器通信。

图: 使用多块网络接口卡

本图在周围文本中进行了描述。

以下示例显示了 texas_srvr 数据库服务器可能的 sqlhosts 连接信息。

#dbservername    nettype       hostname      servicename      options
texas_srvr ontlitcp *texas1 pd1_on
#dbservername nettype hostname servicename options
texas_srvr ontlitcp *123.45.67.81 pd1_on
#dbservername nettype hostname servicename options
texas_srvr ontlitcp *texas2 pd1_on
#dbservername nettype hostname servicename options
texas_srvr ontlitcp *123.45.67.82 pd1_on
#dbservername nettype hostname servicename options
texas_srvr ontlitcp * pd1_on

如果连接信息与前面任意一行的内容一致,那么 texas_srvr 数据库服务器就可以接受来自其中任意一块网卡的客户机连接。数据库服务器将在 hostname 字段中查找通配符并忽略显式的主机名。

提示

为了清晰简便地维护,在主机名字段中使用通配符时,请包含主机名(即,使用 *host,而不是 *)。

客户机应用程序使用的连接信息必须包含显式的主机名或 IP 地址。iowa 上的客户机应用程序可以使用下列主机名中的任何一个:texas1、*texas1、123.45.67.81 或 *123.45.67.81。如果 hostname 字段中有通配符 (*),客户机应用程序会将其忽略。

kansas 上的客户机应用程序可以使用下列主机名中的任何一个:texas2、*texas2、123.45.67.82 或 *123.45.67.82。

TCP/IP 连接的端口号

对于 TCP/IP 网络协议,可以在服务名称字段中使用实际的 TCP 侦听端口号。

例如,如果在 services 文件中,sales 数据库服务器的端口号是 1543,那么可以在 sqlhosts 文件中写入一个条目,如下所示:

#dbservername    nettype       hostname      servicename      options
sales ontlitcp knight 1543

在有些情况下,使用实际端口号可能会节省建立连接的时间。但是,对于 hostname 字段中的 IP 地址,使用实际端口号可能不便于对连接信息的管理。

GBase 8s 对 IPv6 地址的支持

在所有平台上,GBase 8s 均可识别因特网协议 V6 (IPv6) 地址(长度为 128 位)和因特网协议 V4 (IPv4) 地址(长度为 32 位)。

自 GBase 8s V8.8 和 Client SDK 2.90.xC4 开始,数据库服务器会在启动时检查底层操作系统中是否支持 IPv6。如果支持 IPv6,那么将使用 IPv6。如果底层的操作系统不支持 IPv6,那么将使用 IPv4 地址。GBase 8s 和 Client SDK 从名称服务检索 IP 地址。

在同时带有 IPv4 和 IPv6 地址的主机上运行的 GBase 8s 可以按与在多宿主主机上运行的服务器相同的方式进行处理。可使用以下某种方法在同时带有IPv4 和 IPv6 地址的主机上配置 GBase 8s:

  • 创建别名(使用 DBSERVERALIASES 配置参数),向其中某个别名指定 IPv6 地址而向另一个别名指定 IPv4 地址。
  • 通过在 sqlhosts 文件中使用带通配符的主机名,指示 GBase 8s 在主机上配置的所有 IP 地址上进行侦听。

例如:

#dbservername    nettype       hostname      servicename      options
olserver1 onsoctcp *myhost onservice1

如果已对主机配置了 IPv6 地址,那么 SQLHOSTS 文件中的 hostname 条目将映射到某个 IPv6 地址。如果未对主机配置 IPv6 地址,那么 hostname 条目将映射到 IPv4 地址。

禁用 IPv6 支持

GBase 8s 还提供了在 IPv4 环境中操作时禁用 IPv6 支持的方法。

要对所有数据库实例和客户机应用程序禁用 IPv6 支持,请执行以下操作:

  • 创建空文件 $GBASEDBTDIR/etc/IFX_DISABLE_IPV6。

用户 gbasedbt 必须具有该文件的读许可权。该文件不可读写,也无需包含任何数据。

要对单个数据库实例或单个客户机应用程序禁用 IPv6 支持,请执行以下操作:

  • 在数据库服务器实例上或在运行应用程序的工作站上,创建名为 IFX_DISABLE_IPV6 的环境变量,并将其值设置为 yes,如下所示:
IFX_DISABLE_IPV6=yes

与连通性相关的 ONCONFIG 参数

onconfig 文件中的某些配置参数用于指定与连通性相关的信息。

重新启动数据库服务器时,重新启动过程使用在这些配置参数中设置的值。

以下配置参数与连通性相关:

  • DBSERVERNAME
  • DBSERVERALIASES
  • LIMITNUMSESSIONS
  • NETTYPE
  • NS_CACHE
  • NUMFDSERVER
  • HA_ALIAS

DBSERVERNAME 配置参数中设置的连接信息

客户机应用程序连接到数据库服务器时,必须指定该数据库服务器的名称。与指定的数据库服务器名称关联的 sqlhosts 信息描述了应用程序和数据库服务器之间的连接类型。

例如,要为数据库服务器指定名称 nyc_research,请在 onconfig文件设置 DBSERVERNAME 值:

DBSERVERNAME nyc_research

客户机应用程序将在下列某个地方指定数据库服务器的名称:

  • GBASEDBTSERVER 环境变量中
  • 在用于指定数据库环境的 SQL 语句(例如,CONNECT、DATABASE、CREATE TABLE 和 ALTER TABLE)中
  • 在 DBPATH 环境变量中

DBSERVERNAME 必须指定数据库服务器名称或某个数据库服务器别名。该名称必须以小写字母开头并且可以包含其他小写字母、数字和下划线。该名称不得包含大写字符、字段定界符(空格或制表符)或换行符。基本 ASCII 代码集的其他字符未必可靠。例如,连接符或减号可能产生问题并且冒号可能不能可靠地使用。@ 字符是保留字符,用以从服务器分隔数据库(例如,dbase@server)。

对于 onimcsoc 或 onsoctcp 协议,可更新 DBSERVERNAME 配置参数,以便在 sqlhosts 信息中包含数据库服务器别名的多个侦听线程的数量,如下所示:

DBSERVERNAME _name_-_number_of_multiple_listen_threads_

您可以将 DBSERVERALIASES 连接配置为 SSL 连接,而且也可以组合使用 SSL 和非 SSL 连接。

DBSERVERALIASES 配置参数中设置的连接信息

通过 DBSERVERALIASES 配置参数,您可以为同一数据库服务器指定额外的数据库服务器名称。

最大的别名数为 32。以下示例显示 onconfig 配置文件中的条目,这些条目将三个数据库服务器名称指定给同一个数据库服务器实例。

DBSERVERNAME          sockets_srvr
DBSERVERALIASES ipx_srvr,shm_srvr

因为每个数据库服务器名称具有对应的 sqlhosts 条目,您可以将多个连接类型与一个数据库服务器相关联。

shm_srvr         onipcshm     my_host            my_shm
sockets_srvr onsoctcp my_host port1
ipx_srvr ontlispx nw_file_server ipx_srvr

通过使用上一个示例中所示的 sqlhosts 文件,客户机应用程序可以使用以下语句连接到使用共享内存通信的数据库服务器:

CONNECT TO '@shm_srvr'

客户机应用程序可使用以下语句初始化与同一数据库服务器的 TCP/IP 套接字连接:

CONNECT TO '@sockets_srvr'

DBSERVERALIASES 必须以小写字母开头并且可以包含其他小写字母、数字和下划线。DBSERVERALIASES 不得包含大写字符、字段定界符(空格或制表符)或换行符。基本 ASCII 代码集的其他字符未必可靠。例如,连接符或减号可能产生问题并且冒号可能不能可靠地使用。@ 字符是保留字符,用以从服务器分隔数据库(例如,dbase@server)。

在前面的示例中,@shm_srvr 语句连接到该服务器上未识别的数据库;或者,也可以连接到 dbase1@shm_srvr。

对于 onimcsoconsoctcp 协议,可更新 DBSERVERALIASES 配置参数,以便在 sqlhosts 信息中包含数据库服务器别名的多个侦听线程的数量,如下所示:

DBSERVERALIASES*name*-_number_,_name_-_number_

您可以将 DBSERVERALIASES 连接配置为 SSL 连接,而且也可以组合使用 SSL 和非 SSL 连接。

LIMITNUMSESSIONS 配置参数中设置的连接信息

LIMITNUMSESSIONS 配置参数是一个可选参数,用于指定希望连接到 GBase 8s 的最大会话数。 如果指定了最大数,那么也可以指定在会话数接近最大数时是否要让 GBase 8s 向 online.log 文件打印消息。

针对服务器进行的分布式查询计数可能达到限制。

可能需要动态增加或临时关闭 LIMITNUMSESSIONS 配置参数,以便在数据库服务器即将达到限制时,允许管理实用程序运行。可么使用 onmode -wf 或 onmode -wm 来动态增加或关闭 LIMITNUMSESSIONS。

如果启用了 LIMITNUMSESSIONS 配置参数,但是由于此限制导致会话受限,那么连接到任何数据库的普通用户线程计数和 DBSA 用户线程计数都可能达到该限制。但是,即使达到了该限制之后,也允许 DBSA 用户连接到服务器。

LIMITNUMSESSIONS 配置参数不应用作遵守许可协议的方法。

示例

以下示例指定您希望连接到数据库服务器的最大会话数是 100,并且在连接的会话数接近 100 时显示警告消息:

LIMITNUMSESSIONS 100,1

NETTYPE 配置参数中设置的连接信息

NETTYPE 配置参数使您调整数据库服务器用于通信的虚拟处理器的数量和类型。 每种类型的网络连接(例如,ipcshm 或 soctcp)可以在配置文件中具有单独的 NETTYPE 条目。

建议

尽管 NETTYPE 参数不是必需参数,但是如果使用两个或更多连接类型,那么必须设置 NETTYPE。当数据库服务器持续运行了一段时间后,您可以使用 NETTYPE 配置参数来调整数据库服务器以获得更好的性能。

NS_CACHE 配置参数中设置的名称服务最大保留时间

NS_CACHE 配置参数定义以下对象中单个条目的最大保留时间:主机名/IP 地址高速缓存、服务高速缓存、用户高速缓存和组高速缓存。如果指定最大保留时间,数据库服务器可从高速缓存获取主机、服务、用户和组数据库服务器的信息。

在为特定高速缓存配置的时间之后或者重新配置该时间时,每个高速缓存条目都将到期。

网络名服务提供者(如 DNS)通常位于远程计算机上。要避免花费时间从网络名服务提供者返回信息,可使用 NS_CACHE 配置参数来指定最大保留时间,用于从某一个内部高速缓存中获取信息。GBase 8s 将在高速缓存中查找信息。如果该处没有此类信息,数据库服务器将查询操作系统以获取这些信息。

使用 GBase 8s 名称服务高速缓存机制可避免许多在操作系统中进行的查找,从而在可配置的时间内保留并复用检索到的每个信息段。

服务器从高速缓存获取信息的速度比查询操作系统更快。但是,如果将保留时间设置为 0 来禁用一个或多个这类高速缓存,那么数据库服务器将查询操作系统以获取主机、服务、用户或组信息。

作为 DBA,您可能希望在以下情况下修改 NS_CACHE 配置参数的设置:网络名服务提供程序在远程计算机上运行,或 MSC VP 在运行时的处理器使用量很大。

例如,可运行 onstat -g glo 命令,以在输出的 Individual virtual processors 部分中检查 msc VP 的使用情况。在以下输出样本中,usercpu 和 syscpu 列中显示的 msc 处理器使用量非常高。如果怀疑使用量高是因为 DNS 调用花费了过多时间,那么可使用操作系统命令来确定高使用量,然后修改 NS_CACHE 配置参数的设置。

Individual virtual processors:
vp pid class usercpu syscpu total Thread Eff
1 2036 cpu 76.95 7.14 84.09 99.08 84%
2 2149 adm 0.00 0.00 0.00 0.00 0%
3 2151 LIC 0.00 0.00 0.00 0.00 0%
4 2260 lio 0.00 0.00 0.00 0.03 0%
5 2442 pio 0.00 0.00 0.00 0.00 0%
6 2443 aio 0.00 0.01 0.01 0.11 8%
7 2444 msc 14.18 14.64 28.82 199.91 14%
8 2446 fifo 0.00 0.00 0.00 0.00 0%

您还可能希望在以下情况下指定 NS_CACHE 信息:操作系统没有名称服务 (NS) 高速缓存,或禁用了操作系统 NS 高速缓存。

示例

要将主机和服务连接的最大保留时间定义为 600 秒,并对用户和组数据库服务器连接禁用最大保留限制,请指定:

NS_CACHE host=600,service=600,user=0,group=0

NUMFDSERVERS 配置参数中设置的连接信息

对于 UNIX™ 上的网络连接,可以使用 NUMFDSERVERS 配置参数指定处理在 GBase 8s 虚拟处理器 (VP) 之间迁移的网络连接所需的最大轮询线程数。

如果 GBase 8s 的新连接和断开连接请求的比率极高,或者发现了网络共享文件 (NSF) 锁定之间存在大量争用,那么指定 NUMFDSERVERS 信息非常有用。

HA_ALIAS 配置参数中设置的连接信息

HA_ALIAS 配置参数是一个可选参数,用于定义辅助服务器的网络别名。在 onmode -d 命令中指定了辅助服务器时,将使用 HA_ALIAS 配置参数指定的网络别名。

设置数据库服务器的 HA_ALIAS 配置参数后,与其他高可用性集群节点的所有服务器间通信均通过指定的网络别名来进行。

如果高可用性集群中的主服务器发生故障,连接管理器将确定要提升为主服务器的辅助服务器。如果设置了辅助服务器的 HA_ALIAS 配置参数,那么 HA_ALIAS 网络别名用于识别新的主服务器。HA_ALIAS 配置参数只影响 RHAC 辅助服务器和 SSC 辅助服务器类型。

HA_ALIAS 配置参数的值必须是 DBSERVERNAME 或 DBSERVERALIASES 配置参数中指定的其中一个名称值。 网络别名的连接类型必须是 TCP 网络协议。

网络连接的环境变量

GBASEDBTCONTIME(连接时间)和 GBASEDBTCONRETRY(连接重试)环境变量是在客户机尝试连接到数据库服务器时会影响客户机行为的客户机环境变量。使用这些环境变量可使网络流量繁忙所引起的连接错误最小化。

如果客户机应用程序显式连接到共享内存段,那么您可能需要设置 GBASEDBTSHMBASE(共享内存库)。

可使用 GBASEDBTSERVER 环境变量来指定客户机连接到的缺省数据库服务器名称。

客户机/服务器配置的示例

下面几个部分显示多个客户机/服务器连接的正确的 sqlhosts 条目。可以假定已正确准备了网络配置文件 hosts 和 services(即使没有明确提到这些文件)。包括以下示例:

  • 使用网络连接
  • 使用多种连接类型
  • 访问多个数据库服务器

共享内存和本地回送连接的示例可以在共享内存和本地回送连接的说明中找到。

网络连接

下图显示的配置中,客户机应用程序位于主机 river 上,而数据库服务器位于主机 valley 上。

图: 网络客户机/服务器配置示例

该图显示了 river 客户机应用程序和 valley 主机应用程序的 sqlhosts 信息。有关此图的更多信息在以下文本中进行了描述。

在这两台计算机上定义了 valley_ds 数据库服务器的 sqlhosts 条目。

两个计算机在同一个 TCP/IP 网络上,但是主机 river 对于其网络编程接口使用套接字,而主机 valley 对于其网络编程接口使用 TLI。nettype 字段必须反映 sqlhosts 所在计算机使用的网络编程接口类型。在此示例中,主机 rivervalley_ds 数据库服务器的 nettype 字段是 onsoctcp,而主机 valleyvalley_ds 数据库服务器的 nettype 字段是 ontlitcp。

多种连接类型

数据库服务器的单个实例可以提供多种类型的连接。下图说明了此类配置。数据库服务器位于主机 river 上。由于共享内存速度快,所以客户机 A 通过共享内存连接连接到数据库服务器。客户机 B 必须使用网络连接,因为客户机和服务器在不同的计算机上。

当您希望数据库服务器接受多种类型的连接时,您必须进行下列操作:

  • 在 onconfig 文件中添加 DBSERVERNAME 和 DBSERVERALIASES 条目。
  • 针对每个数据库服务器/连接类型对,添加 sqlhosts 条目。

对于下图中的配置,数据库服务器有两个数据库服务器名称:river_netriver_shm。onconfig 文件包含以下条目:

DBSERVERNAME river_net
DBSERVERALIASES river_shm

图: 使用多种连接类型的 UNIX™ 客户机/服务器配置的示例

该图在周围文本中进行了描述。

客户机应用程序使用的数据库服务器名称可用于确定使用的连接类型。客户机 A 使用以下语句连接到数据库服务器:

CONNECT TO '@river_shm'

在 sqlhosts 文件中,与名称 river_shm 关联的 nettype 指定共享内存连接,因此该连接是共享内存连接。

客户机 B 可使用以下语句连接到数据库服务器:

CONNECT TO '@river_net'

在 sqlhosts 文件中,与 river_net 相关联的 nettype 值指定网络 (TCP/IP) 连接,因此客户机 B 使用网络连接。

访问多个数据库服务器

下图显示了主机 river 上两个数据库服务器的配置。当一台计算机上有多个数据库服务器处于活动状态时,称为多处驻留

图: UNIX™ 上的多个数据库服务器

在该图中,客户机应用程序和 river_shm 数据库服务器通过共享内存彼此通信。相同的客户机应用程序和名为 river_soc 的数据库服务器是通过 TCP/IP 编程接口连接的。 以下文本包含更多信息。

对于前面示例中的配置,您必须准备两个 onconfig 文件,一个用于数据库服务器 A,另一个用于数据库服务器 B。sqlhosts 文件包含这两个数据库服务器的连接信息。

数据库服务器 A 的 onconfig 文件包含以下行:

DBSERVERNAME riverA_shm

数据库服务器 B 的 onconfig 文件包含以下行:

DBSERVERNAME riverB_soc

GBase 8s MaxConnect

GBase 8s MaxConnect 是 UNIX™ 上 GBase 8s 数据库服务器环境的网络产品。GBase 8s MaxConnect 管理大量(从数百到数万)客户机/服务器连接。GBase 8s MaxConnect 可多路复用连接,这样客户机连接与数据库连接之比可达到 200:1 或更高。GBase 8s MaxConnect 将系统可伸缩性提高至数千个连接并节省了系统资源,从而缩短响应时间并降低处理器需求。GBase 8s MaxConnect 最适合用于 OLTP 数据传输,不应该用于大型多媒体数据传输。

将 GBase 8s MaxConnect 独立于 GBase 8s 数据库服务器及客户机应用程序进行安装。为了获得最佳性能,请将 GBase 8s MaxConnect 安装在 GBase 8s 客户机所连接的独立计算机上或安装在客户机应用程序服务器上。您可以在下列配置中安装 GBase 8s MaxConnect:

  • 在 GBase 8s 客户机所连接的专用服务器上
  • 在客户机应用程序服务器上
  • 在数据库服务器计算机上

多路复用连接的两个协议(ontliimconsocimc)可供 GBase 8s MaxConnect 用户使用。您可以在下列两种配置中使用 ontliimconsocimc 协议:

  • 将 GBase 8s MaxConnect 连接到数据库服务器。

在此配置中,客户机连接使用多路复用并且使用信息包聚集。

  • 直接将客户机应用程序连接到数据库服务器而不经过 GBase 8s MaxConnect。

在此配置中,客户机将不能利用连接多路复用或信息包聚集的好处。当客户机应用程序传送简单或智能大对象数据时选择此配置,因为直接连接到数据库服务器是最好的做法。

数据库服务器初始化

数据库服务器需要磁盘空间初始化和共享内存初始化。

初始化类型

数据库服务器的初始化包含两种相关活动:共享内存初始化和磁盘空间初始化。

共享内存初始化或启动服务器将确定数据库服务器共享内存的如下内容:内部表、缓冲区和共享内存通信区。共享内存将在每次启动数据库服务器时初始化。从命令行使用 oninit 实用程序来初始化数据库服务器共享内存,并使数据库服务器在线。

共享内存初始化还会在您重新启动数据库服务器时发生。

区分共享内存初始化与磁盘空间初始化的关键差异:

共享内存初始化对磁盘空间分配或布局没有影响。不会删除任何数据。

磁盘空间初始化使用存储在配置文件中的值以在磁盘上创建根数据库空间的初始块。当您初始化磁盘空间时,作为过程的一部分,数据库服务器将自动初始化共享内存。磁盘空间将在第一次启动数据库服务器时初始化。之后,它将只有在冷复原期间或在数据库服务器管理员的请求下才初始化。

警告

当您初始化磁盘空间时,您将覆盖该磁盘空间上的所有内容。如果您重新初始化现有数据库服务器的磁盘空间,那么较早数据库服务器中的所有数据都将无法访问,并且实际上会将其删除。

初始化磁盘空间

第一次启动数据库服务器或者希望除去所有数据库空间及其关联数据时,初始化根数据库空间的磁盘空间。安装数据库服务器并选择初始化数据库服务器的新实例时,数据库服务器会自动初始化。

警告

初始化数据库服务器时,将删除数据库服务器磁盘空间中的所有现有数据。

先决条件:

  • UNIX™、Linux™ 或 Mac OS X: 您必须以 rootgbasedbt 用户身份登录。

对数据库服务器已经在使用的根数据库空间进行重新初始化之前:

  • 通过执行 0 级备份,备份现有数据。
  • 通过运行 onmode -k 命令,停止数据库服务器。
  • 将 FULL_DISK_INIT 配置参数设置为 1。

要初始化数据库服务器:

UNIX、Linux 或 Mac OS X: 运行 oninit -iy 命令。

初始化完成后,可以执行 0 级复原。

初始化过程

启动数据库服务器或初始化磁盘空间时,数据库服务器会执行一组步骤。可以在消息日志中查看每个步骤的结果。

磁盘空间初始化总是包含共享内存的初始化。然而,有些通常在共享内存初始化期间发生的活动(如记录配置更改)在磁盘初始化期间是不需要的,因为这些活动与新初始化的磁盘无关。

下表显示了在两种类型的初始化期间完成的主要任务。以下各节对每个步骤进行了说明。

表 1. 初始化步骤

共享内存初始化磁盘初始化
处理配置文件。处理配置文件。
创建共享内存段。创建共享内存段。
初始化共享内存结构。初始化共享内存结构。
初始化磁盘空间。
启动所有必需的虚拟处理器。启动所有必需的虚拟处理器。
进行必要的转换。
启动®快速恢复。
启动检查点。启动检查点。
记录配置更改。
更新 oncfg_servername.servernum 文件。更新 oncfg_servername.servernum 文件。
更改到静态模式。更改到静态模式。
删除临时表空间(可选)。
设置强制的驻留(如果需要)。设置强制的驻留(如果指定)。
更改到在线模式并将控制权交还用户。更改到在线模式并将控制权交还用户。
如果 SMI 表不是最新的,那么更新这些表。创建包含 SMI 表的 sysmaster 数据库。
创建 sysutils 数据库。
创建 sysuser 数据库
创建 sysadmin 数据库
监视每个检查点的最大用户连接数。监视每个检查点的最大用户连接数。

初始化期间使用的配置文件

数据库服务器使用配置参数在初始化和重新启动期间分配共享内存段。 如果您修改了共享内存配置参数,您必须关闭并重新启动数据库服务器才能使更改生效。

ONCONFIG 环境变量、onconfig 文件和 onconfig.std 模板存储在 $GBASEDBTDIR/etc(在 UNIX™ 上)中。缺省配置文件将用作模板而不是功能性配置。

在您初始化或重新启动数据库服务器之前,始终设置 ONCONFIG 环境变量,此变量指定包含配置参数的 onconfig 文件。确保您还具有 onconfig.std 文件。 如果缺少 onconfig.std 文件,服务器将无法初始化。

初始化期间,数据库服务器将在以下文件中查找配置值:

  • 如果已设置 ONCONFIG 环境变量,那么数据库服务器将从 onconfig 文件中读取值。

如果已设置 ONCONFIG 环境变量,但数据库服务器不能访问指定的 onconfig 文件,那么服务器将返回错误消息。

  • 如果未设置 ONCONFIG 环境变量,那么数据库服务器将从 onconfig 文件中读取值。

如果在 onconfig 文件中省略了任何配置参数,那么数据库服务器将使用服务器中构建的缺省值。如果在 onconfig 文件中省略了任何配置参数,那么数据库服务器将从 $GBASEDBTDIR/etc/onconfig.std 文件中读取配置值。

重新启动进程将当前配置文件中的值与以前的值(如果有的话)相比较,以前的值存储在根数据库空间保留页面 PAGE_CONFIG 中。如果存在差异,那么当重新启动数据库服务器时,数据库服务器将使用当前 onconfig 配置文件中的值。

创建共享内存部分

数据库服务器可使用配置值来计算数据库服务器常驻共享内存的所需大小。此外,数据库服务器将计算内部值的附加配置要求。将计算和存储开销的空间要求。

要创建共享内存,数据库服务器将从操作系统中获得用于三种不同类型的内存的共享内存空间:

  • 常驻部分,用于数据缓冲区和内部表
  • 虚拟部分,用于大多数系统和用户会话内存要求
  • IPC 通信部分,用于 IPC 通信

仅当您配置 IPC 共享内存连接时,数据库服务器才分配共享内存的该部分。

接着,数据库服务器会将共享内存段连接到其虚拟地址空间然后初始化共享内存结构。

在完成了初始化并且数据库服务器已经开始运行之后,它可以根据需要创建额外的共享内存段。数据库服务器将以页大小的增量方式创建段。

初始化或重新启动共享内存

在数据库服务器连接到共享内存之后,它将清除未初始化数据的共享内存空间。接着,数据库服务器将设计共享内存头信息,并在共享内存结构中初始化数据。数据库服务器将安排逻辑日志缓冲区所需的空间,初始化这些结构,然后将形成逻辑日志缓冲区的三个单独的缓冲区链接在一起。有关这些结构的更多信息,请参阅《GBase 8s 管理员参考》中的 onstat 实用程序部分。

在数据库服务器重新映射共享内存空间之后,它将新的开始地址以及每个结构的大小注册到新的共享内存头中。

共享内存初始化期间,磁盘结构和磁盘布局将不受影响。数据库服务器将从磁盘中读取必需的地址信息(如逻辑和物理日志的位置),然后使用此信息更新共享内存中的指针。

初始化磁盘空间

该过程仅在磁盘空间初始化期间才执行,而不是在数据库服务器重新启动时执行。初始化共享内存结构之后,数据库服务器将开始初始化磁盘。数据库服务器初始化保留在磁盘的根数据库空间中的所有保留页面,并将页面 0 控制信息写入该磁盘。

FULL_DISK_INIT 配置参数指定当根路径位置(第一个块位置的第一个页面处)有页面 0 时,oninit -i 是否可在实例上运行。使用此配置参数可防止意外重新初始化现有服务器实例的磁盘。

FULL_DISK_INIT 配置参数的缺省设置为 0。如果此配置参数设置为 0,那么仅当根路径位置没有页面 0 时,oninit -i 命令才能运行。

如果根路径位置有页面 0,那么仅当 FULL_DISK_INIT 配置参数设置为 1 时,才会执行初始化。初始化之后,数据库服务器会自动将 FULL_DISK_INIT 配置参数重置为 0。

启动所有必需的虚拟处理器

数据库服务器启动其所需的所有虚拟处理器。onconfig 文件中的参数影响将要启动哪些处理器。例如,NETTYPE 参数可以影响为建立连接而启动的处理器的数量和类型。

进行必要的转换

数据库服务器将检查其内部文件。如果这些文件是来自较早版本的,那么该它会将这些文件更新为当前格式。

启动快速恢复

数据库服务器检查是否需要快速恢复,如果需要则启动快速恢复。

快速恢复不会在磁盘空间初始化期间执行,因为还没有任何要恢复的内容。

启动检查点

在快速恢复完成后,数据库服务器将执行一个检查点来验证是否所有已恢复的事务都已清空到磁盘,以便不重复执行这些事务。

作为检查点过程的一部件,数据库服务器将在消息日志中写入检查点完成的消息。

此时数据库服务器是移动到静态模式还是在线模式,取决于您如何启动初始化或数据库服务器重新启动进程。

记录配置更改

数据库将存储在配置文件中的当前值与存储在根数据库空间保留页面 PAGE_CONFIG 中的以前的值相比较。当存在差异时,数据库服务器会将消息中的两个值(旧的和新的)都记录到消息日志中。

该任务不会在磁盘空间初始化或重新启动时执行。

创建 oncfg_servername.servernum 文件

数据库服务器将创建 oncfg_servername.servernum文件,并在每次添加或删除数据库空间、Blob 空间、逻辑日志文件或块时更新该文件。无需以任何方式处理该文件,但是可以发现在 $GBASEDBTDIR/etc 目录(在 UNIX™ 上)中列出了该文件。数据库服务器在用于抢救逻辑日志的整个系统复原期间,使用 oncfg_servername.servernum 文件。

删除临时表空间

数据库服务器将在所有数据库空间中搜索临时表空间。(如果您使用 oninit 的 -p 选项来初始化数据库服务器,那么数据库服务器会跳过此步骤。)这些临时表空间(如果有的话)是用户进程所留下的表空间,这些用户进程过早终止而未能执行适当的清除。数据库服务器将删除任何临时表空间并回收磁盘空间。

该任务在数据库服务器重新启动时执行;它在磁盘空间初始化期间不执行。

设置强制驻留(如果指定)

如果 RESIDENT 配置参数的值是 -1 或是大于 0 的数,那么数据库服务器将尝试强制实施共享内存的驻留状态。如果主机系统不支持强制的驻留,那么初始化过程将继续。驻留未强制执行,所以数据库服务器将向消息日志发送错误消息。有关 RESIDENT 配置参数的更多信息,请参阅《GBase 8s 管理员参考》。

将控制权交还用户

仅当发生了初始化而非数据库服务器重新启动时,数据库服务器才会将 GBase 8s Database Server initialized - complete disk initialized 消息写入消息日志。数据库服务器还将动态分配虚拟共享内存段。

此时,控制权被交还用户。任何由初始化过程生成的错误消息都将在下列位置显示:

  • 命令行
  • 数据库服务器消息日志文件,由 MSGPATH 配置参数指定。

有关 MSGPATH 参数的更多信息,请参阅《GBase 8s 管理员参考》。

可以使用oninit -w 实用程序,迫使服务器在可配置的超时内返回到命令提示符。oninit -w 实用程序对于故障诊断初始化故障很用的。 有关 oninit 的语法和信息,请参阅《GBase 8s 管理员参考》。

创建 sysmaster 数据库并准备 SMI 表

尽管数据库服务器已将控制权交还给了用户,它还是未完成工作。数据库服务器现在检查系统监视接口(SMI)表。 如果 SMI 表不是当前表,那么数据库服务器将更新这些表。 如果 SMI 表不存在(当初始化磁盘时发生该情况),那么数据库服务器将创建这些表。当数据库服务器构建了 SMI 表之后,它将消息 sysmaster 数据库已成功构建放入消息日志中。数据库服务器还会在转换和还原期间重新创建 sysmaster 数据库。有关 SMI 表的更多信息,请参阅《GBase 8s 管理员参考》中有关 sysmaster 数据库的章节。

如果您在数据库服务器完成构建 SMI 表之前关闭了该数据库服务器,那么构建这些表的进程将停止。这种情况不会损坏数据库服务器。数据库服务器在您下次使数据库服务器在线时构建 SMI 表。但是,如果您不允许这些 SMI 表完成构建,您将无法运行对于那些表的任何查询,并且您也无法使用 ON-Bar 进行备份。

完成创建 SMI 表后,即可使用数据库服务器了。数据库服务器将运行直到您将其停止或出现可能发生的故障。

建议

不要尝试通过停止虚拟处理器或终止另一个数据库服务器进程来停止数据库服务器。

创建 sysutils 数据库

数据库服务器将在磁盘初始化、转换或还原期间删除并重新创建 sysutils 数据库。ON-Bar 将在 sysutils 数据库中存储备份与复原信息。 请稍候,直到在消息日志中显示消息 sysutils database built successfully。有关更多信息,请参阅《GBase 8s 备份与复原指南》。

创建 sysuser 数据库

sysuser 数据库用于 GBase 8s 服务器与服务器通信中的可插式认证模块 (PAM) 认证。

创建 sysadmin 数据库

sysadmin 数据库提供了 GBase 8s 中的远程管理和调度程序 API 功能部件。

监视最大用户连接数

在每个检查点上,数据库服务器都在消息日志中打印最大的用户连接数:maximum server connections number。可以监视自从上次重新启动或磁盘初始化以来已经连接到数据库服务器的用户数。

当客户重新初始化数据库服务器时,显示的数量将复位。

数据库服务器运行方式

可以通过从命令行运行 onstat 实用程序来确定当前的数据库服务器方式。onstat 头将显示该方式。

下表显示了数据库服务器的主要运行方式。

表 1. 运行方式

运行方式描述允许访问的用户
脱机方式数据库服务器未在运行。共享内存未被分配。只有管理员(用户 gbasedbt)可以从此方式更改为其他方式。
静态模式数据库服务器进程正在运行并且共享内存资源已被分配。 管理员使用此方式执行不需要执行 SQL 和 DDL 语句的维护功能。只有管理员(用户 gbasedbt)可以访问数据库服务器。 其他用户可查看数据库服务器状态信息,但他们不能访问数据库服务器。
管理员模式此方式是一种介于静态模式和在线模式之间的中间方式。 管理员使用此方式执行所有维护任务,其中包括需要执行 SQL 和 DDL 语句的任务。管理员还可以执行在在线模式中可用的所有其他功能。以下用户可在管理员模式下连接到数据库服务器:
gbasedbt 用户
● 具有 DBSA 角色的用户
如果您想要属于 DBSA 组成员的用户(除用户 gbasedbt 外)以管理员模式连接到数据库服务器,请将 ADMIN_USER_MODE_WITH_DBSA 配置参数设置为 1。
● 具有管理员模式访问权限的一个或多个用户
用户 gbasedbt 或 DBSA 可通过 onmode -j 命令、onmode -U 命令或 ADMIN_MODE_USERS 配置参数动态地授予一个或多个特定用户以管理员模式连接到数据库服务器的能力。
其他用户可查看数据库服务器状态信息,但他们不能访问数据库服务器。
在线模式这是数据库服务器的普通运行方式。任何授权用户都可以与数据库服务器连接并执行所有数据库活动。
用户gbasedbt 或用户 root 可使用命令行实用程序更改许多服务器 ONCONFIG 参数值。

此外,数据库服务器也可以处于下列方式中的一种:

  • 只读方式由数据复制环境中的辅助数据库服务器使用。应用程序可以查询处于只读方式下的辅助数据库服务器,但该应用程序不能写入只读数据库。
  • 恢复方式是过渡的。它将在数据库服务器从系统归档或系统复原中执行一个或多个快速恢复时发生。恢复将在从脱机方式更改到静态模式时发生。
  • 关闭方式是过渡的。它将在数据库服务器从在线模式转到静态模式或从在线(或静态)方式转到脱机方式时发生。当前用户可以访问系统,但不允许任何新用户访问。

当关闭方式启动后,无法将其取消。

更改数据库服务器运行方式

本节描述如何使用 oninit 和 onmode 实用程序将一种数据库服务器运行方式更改为另一种方式。它还包含有关使用 ADMIN_MODE_USERS 配置参数以指定哪些用户可以采用管理员模式连接服务器的信息。

本节描述如何使用 oninit 和 onmode 实用程序从一种数据库服务器运行方式更改到另一种方式。它还包含有关使用 ADMIN_MODE_USERS 配置参数以指定哪些用户可以采用管理员模式连接服务器的信息。

提示

更改数据库服务器的方式之后,请运行 onstat 命令以验证当前服务器状态。

允许更改方式的用户

仅适用于 UNIX™

以 root 或 gbasedbt 身份登录的用户以及 DBSA 组的成员可以更改数据库服务器的操作方式。

如果您希望属于 DBSA 组的用户以管理员模式连接到数据库服务器,请将 ADMIN_USER_MODE_WITH_DBSA 配置参数设置为 1。如果该参数设置为 0,那么访问将仅限于用户 gbasedbt。如果 $ONCONFIG 中缺少该参数,该参数值将视为 0。

用户 gbasedbt 或 DBSA 可以使用 onmode 实用程序、oninit 实用程序或 ADMIN_MODE_USERS 配置参数动态授予一个或多个特定用户以管理员模式连接数据库服务器的能力。

注意

对于 DBSA 组的成员,必须更改对 $GBASEDBTDIR/bin/oninit 的许可权以允许在标准 GBase 8s 安装中运行 public execute permission - root:gbasedbt:6755。

用于更改方式的命令行选项

表 1 包含所有方式的描述,并显示当服务器处于每种方式时哪些用户可以访问数据库服务器。这些主题包含有关用于更改方式的命令的信息,以及有关方式更改如何影响用户会话的信息。

另见 使用 ADMIN_MODE_USERS 配置参数指定管理员模式用户。

从脱机更改到静态模式

当数据库服务器从脱机方式更改到静态模式时,数据库服务器将初始化共享内存。仅管理员可以访问数据库服务器以执行不用执行 SQL 和 DDL 语句的维护功能。

操作系统操作
UNIX™运行 oninit -s。

从脱机更改到在线模式

将数据库服务器从脱机转为在线模式时,数据库服务器将初始化共享内存并且可被所有用户会话使用。

操作系统操作
UNIX™运行 oninit。

从脱机更改到管理员模式

将数据库服务器从脱机转移到管理员模式时,您将该服务器移至了仅管理员才能用于执行数据库服务器函数和维护函数(包括涉及执行 SQL 和 DDL 语句的函数)的方式中。

操作系统操作
UNIX™运行 oninit -j。

用户 gbasedbt 或 DBSA 可使用 oninit -U 命令来指定管理员模式用户的列表,如本例中所示:

oninit -U mark,ajay,carol

在 oninit -U 列表中指定的用户可以在服务器实例活动的时间段内,或在您运行 onmode -j -U 命令来更改可以连接到服务器的用户列表之前进行连接。运行具有空格的 onmode -j -U 命令而非名称可除去列表中的所有用户,如本例中所示:

oninit -U " "

另见使用 ADMIN_MODE_USERS 配置参数指定管理员模式用户。

从静态更改到在线模式

当您将数据库服务器从静态模式转到在线模式时,所有会话都将获得访问权。

如果您已经将数据库服务器从在线模式转到静态模式,并且您现在正在将数据库服务器返回到在线模式,那么较早的处理中被中断的任何用户都必须重新选择他们的数据库并且重新声明他们的游标。

操作系统操作
UNIX™运行 onmode -m。

平稳地从在线更改到静态模式

在不中断当前处理的情况下,将数据库服务器从在线模式平稳地转换成静态模式,以限制对数据库服务器的访问。

在您执行了此任务之后,数据库服务器将设置一个标志,该标志将防止新的会话获得对数据库服务器的访问权。 允许当前的会话完成处理。

启动方式更改之后,无法将其取消。在从在线模式转为静态模式的过程中,数据库服务器将被认为处于关闭方式。

操作系统操作
UNIX™运行 onmode -s 或 onmode -sy。

立即从在线更改到静态模式

将数据库服务器立即从尽快限制对数据库服务器的访问。进行中的工作可能会丢失。

会提示您确认立即关闭。如果确认,那么数据库服务器将向所有连接到共享内存的会话发送断开连接信号。如果会话没有接收到断开连接信号或者不能自动在 10 秒之内答应,那么数据库服务器会终止该会话。

数据库服务器用户将会接收到错误消息 -459(指示数据库服务器已关闭)或错误消息 -457(指示他们的会话已意外终止)。

数据库服务器将清除数据库服务器已终止的所有会话。活动的事务将回滚。

操作系统操作
UNIX™运行 onmode -u 或 onmode –uy;
使用 -y 选项,就无需确认提示。

从静态或在线更改到管理员模式

当您将数据库服务器从静态或在线模式移至管理员模式时,您就将该服务器移至了一个仅管理员可以使用的方式中。

如果以在线模式开始,数据库服务器自动断开与所有用户的连接,这些用户是使用非用户 gbasedbt 的用户标识连接的,并且这些用户将接收到错误消息。如果连接在事务期间终止,那么数据库服务器将回滚回事务。

如果您希望在没有连接其他任何用户的情况下运行 SQL 和 DDL 命令,请更改为管理员模式。

操作系统操作
UNIX™运行 onmode -j。

用户 gbasedbt 或 DBSA 可以使用 onmode -j -U 选项授予单个用户对管理员模式下数据库服务器的访问权。

例如,运行以下命令可使三个单独的用户连接到数据库服务器并具有数据库服务器的访问权,除非数据库服务器方式更改为脱机、静态或在线模式:

onmode -j -U mark,ajay,carol

连接之后,这些个别用户可运行任何 SQL 或 DDL 命令。当该服务器更改为管理员模式时,没有在 onmode -j -U 命令中标识的用户的所有会话将失去与它们的数据库服务器的连接。

在初始运行 onmode -j -U 命令之后,可以通过运行 onmode -j -U 并从命令中名称的新列表除去个别用户名,从而除去个别用户,例如,通过运行:

onmode -j -U mark,carol

运行具有空格的 onmode -j -U 命令而非名称可除去列表中的所有用户,如本例中所示:

oninit -U " "

另见使用 ADMIN_MODE_USERS 配置参数指定管理员模式用户。

从管理更改到在线模式

当您将数据库服务器从管理员模式移至在线模式时,所有用户都可以访问该数据库服务器。

操作系统操作
UNIX™运行 onmode -m。

从管理更改到静态模式

当您将数据库服务器从管理员模式移至静态模式时,您就将该服务器移至了一个仅管理员可以用于执行维护函数(这些函数不包含执行 SQL 和 DDL 语句)的方式中。

操作系统操作
UNIX™运行 onmode -s。

从任何方式立即更改到脱机方式

可以立即使数据库服务器从任何方式更改到脱机方式。

会提示您确认脱机。如果确认,那么数据库服务器将启动检查点请求并且向所有连接到共享内存的会话发送断开连接信号。如果会话没有接收到断开连接信号或者不能自动在 10 秒之内答应,那么数据库服务器会终止此会话。

数据库服务器用户将会接收到错误消息 -459(指示数据库服务器已关闭)或错误消息 -457(指示他们的会话已意外终止)。

当您对数据库服务器采取脱机方式后,请以静态、管理或在线模式重新启动数据库服务器。当您重新启动数据库服务器时,它将执行快速恢复以确保数据在逻辑上是一致的。

数据库服务器将清除已由数据库服务器终止的所有会话。活动的事务将回滚。

操作系统操作
UNIX™运行 onmode -k 或 onmode -ky。 -y 选项将消除确认立即关闭的自动提示。

如果 onmode 命令无法关闭数据库服务器,可使用 onclean 实用程序强制执行立即关闭。有关 onclean 实用程序的更多信息,请参阅《GBase 8s 管理员参考》。

使用 ADMIN_MODE_USERS 配置参数指定管理员模式用户

ADMIN_MODE_USERS 配置参数可使您指定哪个用户可以管理员模式连接数据库服务器。不同于 oninit 和 onmode 命令可使您指定管理员模式下的用户直到服务器更改为脱机、静态或在线模式,ADMIN_MODE_USERS 配置参数无限期地保存管理员模式下用户的列表。

要创建 onconfig 文件中保存的管理员模式用户列表,请指定用户的逗号分隔列表作为 ADMIN_MODE_USERS 配置参数值,例如,mark,ajay,carol。

要在会话期间覆盖 ADMIN_MODE_USERS,请使用 onmode -wf 命令,如本例中所示:

onmode -wf ADMIN_MODE_USERS=sharon,kalpana

ADMIN_MODE_USERS 配置参数的作用是添加到一列允许访问管理员模式下的服务器的人员。在 onmode 命令行中列出的人员会覆盖在 onconfig 文件中列出的人员。