返回首页

gbase数据、南大通用产品文档:GBase8s

更新日期:2024年09月11日

IN parameter has not been set
使用 CallableStatement 接口定义指定的函数具有一个未设置的 IN 参数。
如果您想要设置一个 NULL IN 参数,
则调用 setMaxRows() 或 IfxSetNull() 方法。
否则,

用从 PreparedStatement 接口继承的任一集合方法。

CREATE TABLE 语句建表时指定全文索引列
语法格式
在用户创建表时,可以同时创建全文索引,
需要使用FULLTEXT 关键字进行创建。
CREATE TABLE table_name (
column defination… ,
fulltext [index] index_name (column_name)
[INDEX_DATA_PATH='path']);
表5- 34 参数说明

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
913
参数名称


table_name
表名。
index_name
索引名(索引名表级唯一,索引名将不区分大小写)。
column_name
索引列列名,支持CHAR、VARCHAR 或TEXT 类型。
INDEX_DATA_PATH
可选项,设置索引数据路径标志。如不填写,则索引数据保存





$GBASE_BASE/userdata/gbase/dbname/metadata/tbname_n*.GED
下: *.FTD、*.fti
path
索引数据存放路径,此路径应为实际已存在的路径。
注意
执行用户需要对path 指定的存放索引数据的目录具有读写权限。
示例
示例1:不指定索引数据存放路径时,存放在默认路径中。
gbase> DROP TABLE IF EXISTS sms;
Query OK, 0 rows affected
gbase> CREATE TABLE sms (MB_No char(11),MB_Text varchar(1000)
DEFAULT NULL, FULLTEXT idx_t (MB_Text));
Query OK, 0 rows affected
示例2:为索引数据指定存放路径。步骤如下(以使用gbase 用户登录数据库为
例)。
步骤1:
gbase 用户对存放索引数据的目录有读写权限,
可以使用root 用户执行如
下命令为gbase 用户赋权:
# chown gbase:gbase /home
步骤2:在每个节点上都要创建存放索引数据的文件夹。
# su - gbase
$ mkdir -p /home/fti
步骤3:将索引数据存放在/home/fti/路径下。
gbase> CREATE TABLE text1 (col1 varchar(100), FULLTEXT INDEX
fti_col1 (col1) INDEX_DATA_PATH='/home/fti/');
Query OK, 0 rows affected

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
914
示例3:指定的索引数据路径不存在,系统报告错误信息。
gbase> CREATE TABLE text1 (col1 varchar(100), FULLTEXT INDEX
fti_col1 (col1) INDEX_DATA_PATH='/index/dat/');
ERROR 1733 (HY000): (GBA-01EX-700) Gbase general error: Empty or invalid
index path

事务管理器支持两阶段落实和回滚。例如,如果数据库是 GBase 8s,记帐系统是 Oracle,
而汇款系统是 Sybase,那么可以使用事务管理器在不同数据库之间通信。 您还可以使用
事务管理器通过使用分布式事务而非 Enterprise Replication 或高可用性数据复制,确保
GBase 8s 或非 GBase 8s 数据库之间的数据一致性。
TP/XA 库(带事务管理器)
全局事务是一种在查询中涉及多个数据库服务器的分布式查询。
全局事务环境具有以下部
件:

客户机应用程序

资源管理器(GBase 8s 数据库服务器)

事务管理器(供应商软件)
TP/XA 是一个函数库,使数据库服务器可充当 X/Open DTP 环境中的资源管理器。将
TP/XA 库作为 GBase 8s ESQL/C 的一部分安装可启用第三方事务管理器和数据库服务器
之间的通信。X/Open 环境支持大型的高性能 OLTP 应用程序。
当您的数据库具有以下特征时,请使用 TP/XA:

数据分发在多供应商数据库中

事务包括 GBase 8s 和非 GBase 8s 数据
Microsoft Transaction Server (MTS/XA)

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 495 -
数据库服务器支持 Microsoft™ Transaction Server (MTS/XA) 在 XA 环境中充当事务管理
器。 要使用 MTS/XA,请安装 GBase 8s Client Software Development Kit、最新版本的
GBase 8s ODBC Driver 以及 MTS/XA。
有关更多信息,
请联系 GBase 8s 技术支持,
并参
阅 GBase 8s 客户机产品安装指南 和 MTS/XA 文档。
GBase 8s 事务对符合 XA 的外部数据源的支持
GBase 8s 事务管理器 GBase 8s 的主体部分,而不是单独模块,用于识别符合 XA 的外部
数据源。这些数据源可参与两阶段落实事务。
对于参与特殊事务事件(例如,准备、落实或回滚)的分布式事务每个符合 XA 的外部数
据源,事务管理器都会对其运行支持例程。该交互符合 X/Open 接口标准。
符合 XA 的外部数据源的事务支持(也称为资源管理器)使您能够执行以下操作:

创建符合 XA 的外部数据源类型及其实例。

创建或修改用户定义的例程 (UDR)、虚拟表接口或虚拟索引接口以启用符合 XA
的数据源来为来自符合 XA 的数据源的外部数据提供数据访问机制。
MQ DataBlade 模块 是提供此类型外部数据访问的一组 UDR 的示例。

将符合 XA 的外部数据源注册到 GBase 8s。

注销符合 XA 的外部数据源。

在同一个全局事务中使用多个符合 XA 的外部数据源。
事务与符合 XA 的外部数据源的协调仅在以 GBase 8s 登录的数据库和符合 ANSI 标准的
数据库中受支持,因为这些数据库都支持事务。事务与符合 XA 的外部数据源的协调在未
登录的数据库中不受支持。
可使用以下 DDL 语句,它们是用于管理 XA 数据源类型和数据源的 SQL 语句的扩展:
语句
描述
CREATE XADATASOURCE TYPE 创建符合 XA 的外部数据源类型
CREATE XADATASOURCE
创建符合 XA 的外部数据源实例
DROP XADATASOURCE
删除符合 XA 的外部数据源实例
DROP XADATASOURCE TYPE
删除符合 XA 的外部数据源类型
有关这些语句的更多信息,请参阅《GBase 8s SQL 指南:语法》 。
GBase 8s 和符合 XA 的外部数据源之间的交互通过一组用户定义且支持 XA 的例程(例
如,
xa_open、
xa_end、
xa_commit 和 xa_prepare)
执行。
可在使用 CREATE XADATASOURCE
TYPE 语句之前创建这些支持例程。有关更多信息,请参阅 《GBase 8s DataBlade API 程
序员指南》。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 496 -
在创建了符合 XA 的外部数据源之后,可使用 mi_xa_register_xadatasource()(或 ax_reg())
和 mi_xa_unregister_xadatasource()(或ax_unreg())函数将该数据源注册到当前事务和注销
该数据源。在分布式环境中,必须在本地协调者服务器上注册数据源。注册是瞬态的,持
续时间仅仅是该事务的持续时间。有关这些函数的更多信息,请参阅《GBase 8s DataBlade
API Function 参考》 和《GBase 8s DataBlade API 程序员指南》。
使用以下 onstat 选项可显示有关包含符合 XA 的数据源的事务的信息:
onstat 选项
此命令显示的符合 XA 的数据源信息
onstat -x
显示有关事务中的 XA 参与者的信息。
onstat -G
显示有关全局事务中的 XA 参与者的信息。
onstat -g
ses session id
显示会话信息,包括有关参与事务的 XA 数据源的信息。
GBase 8s MQ DataBlade 模块 提供 XA 数据源的外部数据访问机制。有关此 DataBlade 模
块的信息,请参阅《GBase 8s Database Extensions 用户指南》。
高可用性集群中的 XA
X/Open 分布式事务处理 (DTP) 模型允许高可用性集群中的可更新辅助服务器在分布式事
务中充当资源管理器。
任何 XA 全局事务中的参与者有三种:

应用程序 (AP):定义事务界限,并指定构成事务分支的操作。

资源管理器 (RM):提供对资源(如数据库)的访问。

事务管理器 (TM):为事务分支指定标识 (XID),监视事务进度,以及协调事务分
支以完成操作和实现故障恢复。
在高可用性集群中,会话可以从集群中的任何服务器创建事务分支或附加到事务分支。例
如,可从 server_2 附加已从 server_1 分离的事务分支。应用程序可在不跟踪启动事务的
服务器的情况下,使用连接管理器连接到集群。事务管理器也可以使用连接管理器连接到
集群,以完成 XA 事务,方法是对松散和紧密耦合的事务均执行落实、回滚或忽视(请参
阅松耦合与紧耦合方式)。
所有从辅助服务器启动的全局事务分支都将使用现有代理接口重定向到主服务器。
主服务
器启动和维护所有事务分支,并执行与分支关联的所有请求工作。
在可更新辅助服务器上启动了 XA 事务时,主服务器上也将启动相应的 XA 事务。主服
务器上的 XA 事务执行 XA 事务的整个生命周期(启动、结束、准备以及落实或回滚)。

辅助服务器上的 XA 事务用于支持未重定向到主服务器的查询。
发出对 xa_end() 函数的调
用时,
系统将释放 XA 事务,
并将用户会话从 XA 事务分离。
所有 XA 事务请求和 XA 事
务内发出的所有写操作都将重定向到主服务器。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 497 -
以下功能特定于GBase 8s XA 实施:

所有 XA 接口请求在可更新的辅助服务器上均可用(请参阅辅助服务器上的数据
库更新)。

支持从可更新的辅助服务器启动、准备以及落实或回滚 XA 事务。

支持 xa_recover() 函数,该函数用于从资源管理器获取已就绪事务分支的列表。

支持在高可用性集群服务器中执行 XA 事务分支迁移。集群中的任何服务器均可
附加到 XA 事务分支,而不考虑事务分支是否源自该服务器。

XA 客户机和事务管理器可使用连接管理器连接到任何高可用性集群服务器(请参
阅连接管理)。

支持将 XA 请求从辅助服务器重定向到主服务器。

支持对 XA 事务执行事务挽救(请参阅在集群故障转移期间完成事务)。

如果运行已重定向的 XA 事务的辅助服务器出现故障,将回滚事务。

支持在 XA 环境内运行,但位于 XA 事务外的 SQL 事务。
在辅助服务器上运行的 XA 事务有以下限制:

不支持从其他用户会话(在相同或不同辅助服务器上)恢复暂挂的全局事务分支。


用户会话不能附加到与另一个辅助服务器上的其他用户会话关联的全局事务分支。


XA 事务与辅助服务器上的其他数据具有相同的限制。请参阅辅助服务器上的数据
库更新。

XA 事务不能在只读辅助服务器上启动。 如果应用程序尝试在只读辅助服务器上
创建新的 XA 事务,将收到 XA 错误代码 XAER_RMERR。此外,在只读辅助服
务器上运行 xa_prepare()、xa_commit() 或 xa_rollback() 将返回错误代码
XA_NOTA (-4)。

只读辅助服务器上支持以下 XA API:

xa_open()

xa_close()
重要: 如果要将 .NET Framework 用于 Microsoft™ Transaction Server 以管理高可用性集群中
的 XA 事务,那么必须使用 TransactionScope 类而非 ServiceConfig 类。TransactionScope 类
可用于 .NET Framework 3.5。
松耦合与紧耦合方式
数据库服务器支持松耦合及紧耦合方式的 XA 全局事务:

松耦合方式表示不同的数据库服务器可协调事务,但不可共享资源。 来自事务的
所有分支的记录分别作为独立事务显示在逻辑日志中。

紧耦合方式表示不同的数据库服务器可协调事务并且共享诸如锁定和日志记录这

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 498 -
些资源。 来自事务的所有分支的记录作为同一事务显示在逻辑日志中。
BEA Systems 提供的 Tuxedo 事务管理器支持松耦合方式。