返回首页

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

更新日期:2024年09月11日

gbase_autocommit
 摘要:
如果模式为
“1”

启用autocommit 模式;
如果模式为
“0”

禁止autocommit
模式。
 语法:
gs_bool gbase_autocommit(GBASE * gbase, gs_bool auto_mode);
 参数:
gbase 数据库句柄
auto_mode 值为0 或1,用来启用或禁止autocommit 模式
 返回值:

GBase 8a 程序员手册C API 篇


- 10 -

南大通用数据技术股份有限公司
如果成功,返回0,如果出现错误,返回非0 值。

智能大对象空间是由存储智能大对象的一个或多个块组成的逻辑存储单元。智能大对象由
CLOB(字符大对象)和 BLOB(二进制大对象)数据类型组成。用户定义的数据类型也
可以使用智能大对象空间。
有关数据类型的更多信息,
请参阅
《GBase 8s SQL 指南:
参考》


使用智能大对象空间的优势
与 BLOB 空间相比,智能大对象空间有下列优势:

类似于标准的 UNIX™ 文件,它们有读取、写入和搜索的属性。
程序员可以使用类似于 UNIX 函数的函数来读取、
写入和查找智能大对象。
GBase
8s 在
DataBlade API 和 GBase 8s ESQL/C 编程界面中提供该智能大对象接口。

它们是可以恢复的。
您可以记录对存储在智能大对象空间中的数据进行的所有写入操作。 如果事务期间发
生故障,可以落实或回滚更改。

它们服从事务隔离方式。
可以锁定粒度级别不同的智能大对象,而锁定持续时间将遵循事务隔离级别的规则。有
关锁定和并发的更多信息,请参阅《GBase 8s 性能指南》。

表行中的智能大对象无需在一个语句中检索。
应用程序可以使用 DataBlade API 或 GBase 8s ESQL/C 编程接口存储或检索以块计的
智能大对象。有关 DataBlade
API 函数的更多信息,请参阅《GBase
8s
DataBlade
API
Function 参考》。有关 GBase
8s
ESQL/C 函数的更多信息,请参阅《 GBase
8s
ESQL/C
程序员手册》。

智能大对象空间和 Enterprise Replication
当您为 Enterprise Replication 定义复制服务器时,您必须创建智能大对象空间。Enterprise
Replication 会将已复制的数据假脱机到智能大对象。在 CDR_QDATA_SBSPACE 配置参
数中指定智能大对象空间名称。Enterprise Replication 使用缺省的日志方式,通过这种方式
可创建智能大对象空间以用于假脱机行数据。CDR_QDATA_SBSPACE 配置参数接受多个
智能大对象空间,最多可达 32 个智能大对象空间。Enterprise Replication 可以支持日志记
录和非日志记录智能大对象空间的组合以便存储假脱机行数据。有关更多信息,请参阅
《GBase 8s Enterprise Replication 指南》。
在定义复制服务器时,可以使 Enterprise Replication 自动从存储池中配置磁盘空间,并设
置相应的配置参数。如果 CDR_QDATA_SBSPACE 或 CDR_DBSPACE 配置参数未设置
或设置为空,
那么 cdr define server 命令将自动创建必需的磁盘空间,
并将这些配置参数设
置为相应值。


GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 166 -
元数据、用户数据和保留区域
与 BLOB 空间和数据库空间一样,
当您创建智能大对象空间时,
可以为其指定一个或多个
块。然而,智能大对象空间的第一个块始终有三个区域:
元数据区域
元数据标识了智能大对象空间的关键方面以及存储在智能大对象空间中的每个智
能大对象,并且使数据库服务器能够操纵和恢复其中的智能大对象。
用户数据区域
用户数据是由用户应用程序存储在智能大对象空间中的智能大对象数据。
块最多可
有两个用户数据区域。
保留区域
当需要更多的空间时,
数据库服务器会将保留区域中的空间分配给元数据或用户数
据区域。 块最多可有两个保留区域。
有关为智能大对象空间正确分配元数据和用户数据的信息,请参阅计算智能大对象空间元
数据的大小和《GBase 8s 性能指南》。
当您将块添加到智能大对象空间时,您可以指定块是否包含元数据区域和用户数据区域或
者是否要专门为用户数据保留块。您可以在任何时候添加更多的块。如果您正在更新智能
大对象,
那么原始磁盘上对用户数据的 I/O 将比熟的块文件上的 I/O 快很多。
有关如何创
建智能大对象空间、向智能大对象空间添加块或从智能大对象空间删除块的指示信息,请
参阅管理磁盘空间。
重要: 不管数据库的日志记录设置如何,总是记录智能大对象空间元数据。

控制智能大对象数据的存储位置
您可在创建表时指定列的数据类型。对于智能大对象,可以指定 CLOB、BLOB 或用户定
义的数据类型。如下图所示,要控制智能大对象的放置,可以使用 CREAT TABLE 语句
PUT 子句中的 IN sbspace 选项。
图: 控制智能大对象的放置



在 PUT 子句中指定智能大对象空间之前,必须首先创建智能大对象空间。有关如何使用
onspaces -c -S 命令创建智能大对象空间的更多信息,请参阅向数据库空间或 BLOB 空间
添加块。
有关如何在 PUT 子句中指定智能大对象特征的更多信息,
请参阅
《GBase 8s SQL
指南:语法》 中的 CREAT TABLE 语句。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 167 -
如果未指定 PUT 子句,那么数据库服务器将在 SBSPACENAME 配置参数中指定的缺省
智能大对象空间中存储智能大对象。
有关 SBSPACENAME 的更多信息,
请参阅
《GBase 8s
管理员参考》中的配置参数主题。
智能大对象空间可以包含一个或多个块,如下图所示。当智能大对象空间包含多个块时,
不能指定数据所在的块。
您可以在任何时候添加更多的块。监视智能大对象空间块的填充度以及预期是否有必要向
智能大对象空间分配更多的块,是高优先级数据库服务器管理员任务。有关监视智能大对
象空间的更多信息,请参阅《GBase 8s 性能指南》。
图: 链接逻辑和物理存储单元的智能大对象空间


数据库服务器可使用智能大对象空间存储包含智能大对象的表列。数据库服务器使用数据
库空间可存储其余的表列。
您可以为智能大对象空间建立镜像以便在介质故障的情况下加速恢复。有关更多信息,请
参阅镜像。
有关使用 onspaces 执行以下任务的信息,请参阅管理磁盘空间。

创建智能大对象空间

向智能大对象空间添加块

更改智能大对象的存储特征

创建临时智能大对象空间

删除智能大对象空间

智能大对象空间的存储特征

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 168 -
作为数据库服务器管理员,
您可以使用这些存储特征的系统缺省值,
或者可以在用 onspaces
-c 创建智能大对象空间时在 -Df 标记中指定这些特征。
稍后,
您可以使用 onspaces -ch 选
项更改这些智能大对象空间特征。该管理员或程序员可以覆盖存储特征的这些缺省值以及
单个表的属性。
智能大对象空间的扩展数据块大小
与表中的扩展数据块类似,智能大对象空间中的扩展数据块包含了存储智能大对象数据的
邻接页的集合。
智能大对象空间中的分配单元是扩展数据块。数据库服务器根据一组启发式搜索(如写操
作中的字节数)计算智能大对象的数据块大小。例如,如果操作请求写入 30 KB,那么数
据库服务器会尝试分配一个大小为 30 KB 的扩展数据块。
重要:对于大多数应用程序来说,必须使用数据库服务器为扩展数据块的大小计算的值。
如果您知道智能大对象的大小,您可以使用下列函数之一来设置扩展数据块大小。数据库
服务器可将整个智能大对象分配为一个扩展数据块(如果块中存在该大小的扩展数据块):


DataBlade API mi_lo_specset_estbytes() 函数
有关智能大对象的 DataBlade
API 函数的更多信息,
请参阅
《GBase
8s
DataBlade
API
Function 参考》。

GBase 8s ESQL/C ifx_lo_specset_estbytes 函数
有关智能大对象的 GBase
8s
ESQL/C 函数的更多信息,请参阅《GBase
8s
ESQL/C 程
序员手册》。
有关调节扩展数据块大小的信息,请参阅《GBase 8s 性能指南》中有关配置对 I/O 利用率
的影响的章节中的智能大对象。

平均智能大对象大小
智能大对象的长度经常会变化。您可以提供智能大对象的平均大小以计算智能大对象空间
的空间。可使用 onspaces -c -Df 选项的 AVG_LO_SIZE 标记来指定此平均大小。
要指定元数据区域的大小和位置,请在 onspaces 命令中指定 -Ms 和 -Mo 标志。如果未
使用 -Ms 标志,数据库服务器将使用 AVG_LO_SIZE 的值来估计要为元数据区域分配的
空间量。有关更多信息,请参阅计算智能大对象空间元数据的大小。

缓冲方式
当您创建智能大对象空间时,缺省的缓冲方式打开,这意味着要在共享内存的常驻部分使
用缓冲池。
作为数据库管理员,您可以用 onspaces -c -Df 选项的 BUFFERING 标记来指定缓冲方式。
缺省值是“buffering=ON”,这意味着要使用缓冲池。如果您关闭缓冲,数据库服务器将在
共享内存的虚拟部分中使用专用缓冲区。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 169 -
重要: 通常,如果对智能大对象的读取和写入操作小于 8 KB,那么创建智能大对象空间时不
要指定缓冲方式。如果正读取或写入短的数据块(如 2 KB 或 4 KB),那么保留缺省值
“buffering=ON”以便获取更好的性能。
有关如何使用专用缓冲区的信息,请参阅《GBase 8s 性能指南》中有关配置对 I/O 利用率
的影响的主题中有关轻量级 I/O 操作的部分。

上次访问时间
创建智能大对象空间时,可以指定数据库服务器是否必须保存上次用 onspaces -c -Df 选项
的 ACCESSTIME 标记读取或更新的智能大对象的时间。 缺省值为
“ACCESSTIME=OFF”。数据库服务器会将此最近访问时间保留在元数据区域中。
有关程序员如何使用此最近访问时间的更多信息,
请参阅
《GBase 8s DataBlade API 程序员
指南 》和《GBase 8s ESQL/C 程序员手册》。

锁定方式
创建智能大对象空间时,可以指定数据库服务器是使用 onspaces -c -Df 选项的
LOCK_MODE 标记来锁定整个智能大对象还是智能大对象中一定范围的字节。缺省值为
“LOCK_MODE=BLOB”

意味着锁定整个智能大对象。
有关更多信息,
请参阅
《GBase 8s
性能指南》中有关锁定的章节。

日志记录
创建智能大对象空间时,可以指定是否为智能大对象启用日志记录。缺省值是不进行日志
记录。有关更多信息,请参阅记录智能大对象空间和智能大对象。
重要: 当您使用日志记录数据库时,请为智能大对象空间启用日志记录。如果发生故障需要恢
复日志,您可以使这些智能大对象与数据库中的其余智能大对象保持一致。
可使用 onspaces -c -Df 选项的 LOGGING 标记来指定日志记录状态。缺省值为
“LOGGING=off”。可以用 onspaces -c -Df 选项更改日志记录状态。可以用 SQL 语句
CREATE TABLE 或 ALTER TABLE 中的 PUT 子句覆盖此日志记录状态。有关这些
SQL 语句的更多信息,请参阅《GBase 8s SQL 指南:语法》。
程序员可以用 DataBlade API 和 GBase 8s ESQL/C 提供的函数覆盖此日志记录状态。
有关
智能大对象的 DataBlade API 函数的更多信息,请参阅《GBase 8s DataBlade API Function
参考》

有关智能大对象的 GBase 8s ESQL/C 函数的更多信息,
请参阅
《GBase 8s ESQL/C
程序员手册》。
当您为智能大对象空间打开日志记录时,智能大对象将穿过共享内存的常驻部分。虽然应
用程序可以检索多个智能大对象,但仍必须考虑可能穿过缓冲池和逻辑日志缓冲区的更大
数据大小。有关更多信息,请参阅访问智能大对象。

智能大对象空间特征的继承级别

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 170 -
智能大对象空间特征的四种继承级别是系统、智能大对象空间、列和智能大对象。您可以
使用智能大对象空间属性的系统缺省值或覆盖特定智能大对象空间、表中的列或智能大对
象的系统缺省值。下图显示了智能大对象的存储特征层次结构。
图: 存储特征层次结构


此图显示您可以用以下方法覆盖系统缺省值:

使用 onspaces -c -S 命令的 -Df 标记可覆盖特定智能大对象空间的系统缺省值。
可以稍后用 onspaces -ch 选项更改智能大对象空间的这些智能大对象空间属性。

关 -Df 标记的有效范围的更多信息,
请参阅
《GBase 8s 管理员参考》
中的 onspaces
主题。

在 CREAT TABLE 或 ALTER TABLE 语句的 PUT 子句中指定这些属性时,
可以
覆盖特定列的系统缺省值。

程序员可以使用 DataBlade API 和 GBase 8s ESQL/C 编程接口提供的函数覆盖特
定智能大对象的智能大对象空间属性的缺省值。

关于智能大对象空间的更多信息
下表列出了有关与使用和管理智能大对象空间相关的各种任务的信息源。
表 1. 查找智能大对象空间任务的信息
任务
引用
为智能大对象设置内存配置参数
管理共享内存
了解智能大对象页
智能大对象页
为智能大对象空间指定 I/O 特征
智能大对象空间的存储特征中的 onspaces 选

为智能大对象空间分配空间
创建智能大对象空间

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 171 -
任务
引用
向智能大对象空间添加块
向智能大对象空间添加块
定义或改变智能大对象的存储特征
更改智能大对象的存储特征
《GBase 8s SQL 指南:语法》 中的 CREATE
TABLE 或 ALTER TABLE 语句的 PUT 子句
监视智能大对象空间
监视智能大对象空间
《GBase 8s 性能指南》中有关表性能注意事项
的主题
为智能大对象空间设置日志记录
记录智能大对象空间和智能大对象
备份智能大对象空间
备份智能大对象空间
检查智能大对象空间的一致性
验证元数据
了解智能大对象空间的结构
《GBase 8s 管理员参考》中有关磁盘结构的主

使用智能大对象空间的 onspaces
《GBase 8s 管理员参考》中有关实用程序的主

用 CLOB 或 BLOB 数据类型创建表
《GBase 8s SQL 指南:语法》
访问应用程序中的智能大对象
《GBase 8s DataBlade API 程序员指南》
《GBase 8s ESQL/C 程序员手册》
计算元数据区域大小
改善元数据 I/O
更改存储特征
《GBase 8s 性能指南》中有关表性能的主题
了解智能大对象锁定
《GBase 8s 性能指南》中有关锁定的主题
为临时智能大对象配置智能大对象空间 《GBase 8s 性能指南》中有关配置对 I/O 活动
的影响的主题

命令行语法图使用类似于其他语法图元素的元素。
某些元素列于语法图中的表中。
创建非转换作业

GBase 8s 客户机产品安装指南
南大通用数据技术股份有限公司 - 2 -

此图中有一个名为“设置运行方式”的部分。
设置运行方式

要了解如何正确构造命令,
请从主图的左上角开始。
遵循右边的图表,
包括想要的元素。
此图中的元素区分大小写,
因为它们说明实用程序的语法。
其他类型的语法
(例如 SQL)
则不区分大小写。
“创建非转换作业”图表说明了以下步骤:
1.
输入 onpladm create job,然后输入作业的名称。
2.
或者,输入 -p,然后输入项目的名称。
3.
输入以下所需的元素:
l
-n
l
-d 和设备的名称
l
-D 和数据库的名称
l
-t 和表的名称
4.
或者,可以选择一个或多个以下元素并重复它们任意次:
l
-S 和服务器名称
l
-T 和目标服务器名称
l
运行方式。要设置运行方式,请遵循“设置运行方式”部分图表来输入
-f,或者输入 d、p 或 a,然后可选择输入 l 或 u。
5.
遵循图表直至终止符。

GBase 8s 客户机产品安装指南
南大通用数据技术股份有限公司 - 3 -