返回首页

gbase数据、南大通用产品文档:GBase8a表功能定义

更新日期:2024年09月11日

表5- 313 表功能信息说明:




DISK_USAGE_INFO
本节点数据库磁盘空间使用统计
CLUTER_DISK_USAGE_INFO
集群内所有节点数据库磁盘空间使用统计
CACHE_USAGE_INFO
本节点数据库cache 使用统计信息
CACHE_CELL_STATUS_INFO
数据库cache 的dc 的统计信息
HEAP_USAGE_INFO
数据库heap 使用统计
SESSION_MEMORY_USAGE_I
NFO
session 级别的内存统计
MEMORY_USAGE_INFO
内存部分总览信息
TABLES
表的统计信息
CLUSTER_MONIT_INFO
MONIT_INFO

当高可用性集群中的任何服务器变为不可用时,与该服务器的任何客户机连接都应重定向
到可用的服务器。处理连接重定向的最佳方法是使用连接管理器将客户机连接自动重新连
接到在服务级别协议 (SLA) 中指定的服务器。或者,可以使用环境变量或连接信息来控制
连接重定向。
如果不使用连接管理器,那么可以通过将应用程序配置为连接到服务器所属的服务器组,
自动将客户机重定向到集群中其他数据库服务器。 创建与服务器组的连接时,缺省情况下
将建立与组中当前主服务器的连接。如果因为某个服务器发生故障而导致复制失败,那么
将建立与联机服务器的连接(以标准方式或不带辅助服务器的主服务器方式)。您还可以
从应用程序内自动执行此操作。 在 GBase 8s Client Software Development Kit (Client SDK)

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 478 -
中包含的某些客户机连接驱动程序有特定机制以用于使重定向自动化。有关详细信息,请
参阅《GBase 8s Client Software Development Kit (Client SDK)》文档。
当您设计客户机应用程序时,您必须对重定向策略作出一些决策。您尤其必须决定是否在
应用程序内处理重定向以及要使用哪种重定向机制。三种不同的重定向机制如下所示:

用 DBPATH 环境变量进行自动重定向

管理员用连接信息控制重定向

用户用 GBASEDBTSERVER环境变量控制重定向
您所用的机制决定您可在应用程序中使用的 CONNECT 语法。
使用 DBPATH 环境变量自动重定向客户机
可以在应用程序中使用 DBPATH 环境变量来重定向连接。

管理员必须执行的操作
管理员不会执行任何操作来重定向客户机,但他们可能需要照管数据库服务器的类型。

用户的任务
如果您的应用程序包含测试连接是否已失败的代码,并发出重新连接语句(如有必要),
那么重定向得以自动处理。用户没有任何职责。
如果您的应用程序不包含这样的代码,那么正在运行客户机的用户必须退出并重新启动所
有应用程序。
DBPATH 重定向方法的工作原理
当应用程序没有在 CONNECT 语句中明确指定数据库服务器,以
及 GBASEDBTSERVER 环境变量指定的数据库服务器不可用时,客户机将使
用 DBPATH 环境变量来定位数据库(和数据库服务器)。
如果复制对中的一台数据库服务器不可用,那么使用该数据库服务器的应用程序将
其 DBPATH 环境变量设置为复制对中的另一数据库服务器时,
这些应用程序无需重新设置
其 GBASEDBTSERVER 环境变量。它们的 GBASEDBTSERVER 环境变量必须始终包含其
经常使用的数据库服务器的名称,
并且它们的 DBPATH 环境变量必须始终包含对中备用数
据库服务器的名称。
例如,如果应用程序通常使用名为 cliff_ol 的数据库服务器,并且在复制对中与 cliff_ol 成
对的数据库服务器名为 beach_ol,那么那些应用程序的环境变量将如下所示:
GBASEDBTSERVER cliff_ol
DBPATH //beach_ol

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 479 -
因为当应用程序发出 CONNECT 语句时 DBPATH 环境变量是只读变量(如果需要),所
以应用程序必须重新启动才能执行重定向。
应用程序可以包含测试连接是否已失败的代码,如果包含,那么尝试重新连接。如果应用
程序有该代码,就无需重新启动。
您可以对该重定向方法使用 CONNECT TO 数据库语句。为使该方法可起作用,您不能使
用任一以下语句:

CONNECT TO DEFAULT

CONNECT TO database@dbserver

CONNECT TO @dbserver
该限制的原因是如果 CONNECT 语句指定了数据库服务器,
应用程序就不使用 DBPATH。
有关 DBPATH 的更多信息,请参阅《GBase 8s SQL 指南:参考》。
使用连接信息重定向客户机
通过使用 sqlhosts 信息,可以将客户机连接重定向到新的主服务器。
连接信息重定向方法依赖于这样的事实,即当应用程序连接到数据库服务器,它就使用连
接信息找到数据库服务器。
如果复制对中的一个数据库服务器不可用,管理员可在连接信息中更改不可用数据库服务
器的定义。按更改客户机连接信息中所述,不可用数据库服务器的字段(dbservername 字
段除外)均更改为指向复制对中余下的数据库服务器。
因为当发出 CONNECT 语句时读取了连接信息,
所以应用程序可能需要重新启动才能执行
重定向。应用程序可以包含用于测试连接是否已失败的代码,也可以包含用于发出重新连
接语句的代码(如有必要)。如果连接已失败,将自动进行重定向,并且您无需重新启动
应用程序即可进行重定向。
应用程序可使用以下连接语句来支持该重定向方法:

CONNECT TO database@dbserver

CONNECT TO @dbserver
如果 GBASEDBTSERVER 环境变量始终保持设置为同一数据库服务器名称并且
DBPATH 环境变量未设置,那么应用程序也可使用以下连接语句:

CONNECT TO DEFAULT

CONNECT TO database
在 UNIX™ 上,GBASEDBTSQLHOSTS 环境变量在 $GBASEDBTDIR/etc/sqlhosts 中指定
连接信息的完整路径名和文件名。有关 GBASEDBTSQLHOSTS 的更多信息,请参阅
《GBase 8s SQL 指南:参考》。
更改客户机连接信息
要使用连接信息来重定向客户机,您必须为客户机更改连接信息并更改其他连接文件(如
有必要)。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 480 -
要更改有关客户机的连接信息,请执行以下操作:
1. 在 sqlhosts 文件或注册表中,注释掉发生故障的数据库服务器的条目。
2. 在 servername 字段中添加指定故障数据库服务器的 dbservername 的条目,并
在 nettype、hostname 和 servicename 字段中添加客户机要重定向的目标数据库服务
器的信息。
3. 如果发生故障,那么在 sqlhosts 文件或注册表中使用以下选项将应用程序重定向至
其他数据库服务器:
a. 连接重定向选项
b. 组末尾选项
c. 组选项
4. 根据需要,在 /etc/hosts 文件(在 UNIX™ 上)中添加 hostname 条目,以指定正在
运行作为客户机重定向目标的数据库服务器的计算机。
5. 根据需要,在 /etc/services 文件(在 UNIX 上)添加 servicename 条目,以指定正
在运行作为客户机重定向目标的数据库服务器的计算机。
下图显示可以如何修改连接值以重定向客户机。
无需在正运行数据库服务器的任一计算机上更改连接信息中的条目。
图: cliff_ol 数据库服务器发生故障前后的连接值

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 481 -

连接到数据库服务器
在管理员更改连接信息和其他连接文件
(如果需要)
后,
客户机在发出其下一个 CONNECT
语句时会连接至管理员要将客户机重定向到的目标数据库服务器。
如果您的应用程序包含测试连接是否已失败的代码,并发出重新连接语句(如有必要),
那么重定向得以自动处理。用户没有任何职责。如果您的应用程序不包含这样的代码,那
么正在运行客户机的用户必须退出并重新启动所有应用程序。
服务器组的自动重定向
可以使用 sqlhosts 文件中的组选项来指定应用程序连接到的服务器组而不是单个数据库服
务器。要使连接重定向自动化,请将主服务器和辅助服务器的数据库服务器定义均添加到
服务器组定义。缺省情况下,建立了到 HDR 服务器组的连接请求时,会将该连接路由到
主服务器。如果主服务器不可用,那么连接请求将路由到故障转移处理之后提升为主服务
器的辅助服务器。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 482 -
例如,
以下 sqlhosts 条目提供了 HDR 服务器组 g_hdr,
以及主服务器定义 hdr_prim 和辅助
服务器定义 hdr_sec。
#dbservername nettype hostname servicename options
g_hdr group - - i=1
hdr_prim ontlitcp machine1pri port1 g=g_hdr
hdr_sec ontlitcp machine1sec port1 g=g_hdr
应用程序可使用以下连接语句来支持该重定向方法:

CONNECT TO database@dbserver_group

CONNECT TO @dbserver_group
如果您的应用程序包含测试连接是否已失败的代码,并发出重新连接语句(如有必要),
那么重定向得以自动处理。用户没有任何职责。如果您的应用程序不包含这样的代码,那
么正在运行客户机的用户必须退出并重新启动所有应用程序。
使用 GBASEDBTSERVER 环境变量重定向客户机
应用程序未在 CONNECT 语句中显式指定数据库服务器时,可以使
用 GBASEDBTSERVER 环境变量重定向方法,以便客户机连接至 GBASEDBTSERVER 环
境变量指定的数据库服务器。
如果集群中的某个数据库服务器不可用,那么使用该数据库服务器的应用程序可将
其 GBASEDBTSERVER 环境变量重置为集群中的另一数据库服务器以访问相同数据。
应用程序仅当它们启动时才读取 GBASEDBTSERVER 环境变量的值。
因此,
必须重新启动
应用程序以识别环境变量中的更改。
要支持该重定向方法,您可以使用以下连接语句:

CONNECT TO DEFAULT

CONNECT TO database
您不能为该方法使用 CONNECT TO database@dbserver 或 CONNECT TO @dbserver 语句。
当数据库服务器已明确命名,CONNECT 语句不使用 GBASEDBTSERVER 环境变量来查
找数据库服务器。
管理员不会执行任何操作来重定向客户机,但他们可能需要更改数据库服务器的类型。
正在运行客户机应用程序的用户在决定用 GBASEDBTSERVER 环境变量重定向客户机时
必须执行以下三个步骤。
要使用 GBASEDBTSERVER 环境变量重定向客户机,请执行以下操作:
1. 退出应用程序。
2. 将 GBASEDBTSERVER 环境变量更改为保存复制对中另一数据库服务器的名称。
3. 重新启动应用程序。
使用应用程序代码重定向客户机

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 483 -
如果使用 DBPATH 环境变量或连接信息来重定向连接,那么可以在客户机中包含一个例
程,用于在客户机遇到集群故障时处理错误。该例程可以调用包含循环(该循环重复尝试
连接到集群中的另一个数据库服务器)的其他函数。该例程重定向客户机但不需要用户退
出应用程序并重新启动程序。
以下示例显示的是在使用 DBPATH 重定向机制的客户机应用程序中,
在尝试重新连接时会
循环的函数。在它建立了连接后,它还会测试数据库服务器的类型以确保服务器不是辅助
数据库服务器。如果数据库服务器仍为辅助类型,那么它调用另一函数来提醒用户(或数
据库服务器管理员)数据库服务器无法接受更新。
/* The routine assumes that the GBASEDBTSERVER environment
* variable is set to the database server that the client
* normally uses and that the DBPATH environment variable
* is set to the other database server in the pair.
*/

#define SLEEPTIME 15
#define MAXTRIES 10

main()
{
int connected = 0;
int tries;
for (tries = 0;tries < MAXTRIES && connected == 0;tries++)
{
EXEC SQL CONNECT TO "superstores";
if (strcmp(SQLSTATE,"00000"))
{
if (sqlca.sqlwarn.sqlwarn6 != 'W')
{
notify_admin();
if (tries < MAXTRIES - 1)
sleep(SLEEPTIME);
}
else connected =1;
}
}
return ((tries == MAXTRIES)? -1:0);
}

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 484 -
本示例假设 DBPATH 重定向机制并使用支持 DBPATH 重定向方法的 CONNECT 语句格
式。 如果您使用连接信息来重定向,您可以有不同的连接语句,如下所示:
EXEC SQL CONNECT TO "superstores@cliff_ol";
在本示例中,superstores@cliff_ol 是客户机计算机识别的数据库服务器上的数据库。 要进
行重定向,管理员必须更改连接信息,以使该名称指向不同的数据库服务器。 可能需要调
整客户机在尝试连接前等待的时间量或函数定义的尝试次数。为数据库服务器上的管理操
作提供足够时间(以更改连接信息或将辅助数据库服务器的类型更改为标准类型)。
比较重定向方法
不同的重定向方法具有不同的需求。
以下各表总结了重定向机制之间的不同之处。
表 1. DBPATH 连接的重定向方法
DBPATH
自动重定向
用户重定向
何时重定向客户机?
当客户机下次尝试连接指
定数据库时
当客户机下次尝试连接指
定数据库时
客户机是否需要重新启动以进
行重定向?


重定向的范围是哪些?
重定向个别客户机
重定向个别客户机
需要对环境变量进行更改吗?


表 2. 连接信息的重定向方法
连接信息
自动重定向
用户重定向
何时重定向客户
机?
在管理员更改连接信息后,
当客户
机下次尝试建立与数据库服务器
的连接时
在管理员更改连接信息后,
当客户
机下次尝试建立与数据库服务器
的连接时
客户机是否需要重
新启动以进行重定
向?


重定向的范围是哪
些?
重定向所有使用给定数据库服务
器的客户机
重定向个别客户机
需要对环境变量进



GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 485 -
行更改吗?
表 3. GBASEDBTDIR 连接的重定向方法
GBASEDBTDIR
用户重定向
何时重定向客户机?
当客户机重新启动并读取 GBASEDBTSERVER 环境变
量的新值时
客户机是否需要重新启动以进行
重定向?

重定向的范围是哪些?
重定向个别客户机
需要对环境变量进行更改吗?

表 4. “连接管理器”连接的重定向方法
连接管理器
用户重定向
何时重定向客户机?
当获得已配置的服务级别协议时。
客户机是否需要重新启动以进行重定向?

重定向的范围是哪些?
重定向个别客户机
需要对环境变量进行更改吗?

gbase_row_seek .............................. 41



GBase 8a 程序员手册C API 篇
南大通用数据技术股份有限公司

III