返回首页

gbase数据、南大通用产品文档:GBase8s指定存储空间和块的名称

更新日期:2024年09月11日

块名称与存储空间名称遵循相同的规则。 如下所示,为存储空间或块指定明确的路径
名:

如果要在 UNIX™ 上使用原始磁盘,那么必须使用已链接的路径名。(请参阅创
建到原始设备的符号链接 (UNIX)。)

如果要为数据库服务器磁盘空间使用文件,那么路径名为完整的路径和文件名。
在您创建存储空间或添加块时请使用这些命名规则。文件名必须具有以下特征:

唯一,且不超过 128 字节

以字母或下划线开头

仅包含字母、数字、下划线或 $ 字符
除非名称用引号括起,否则名称不区分大小写。在缺省情况下,数据库服务器将该名称中
的大写字符转换为小写。如果希望在名称中使用大写,请用引号将其括起,并将
DELIMIDENT 环境变量设置为 ON。

指定块的最大大小
在大多数平台上,最大块大小为 4 TB;但在其他平台上,最大块大小为 8 TB。
要确定平台所支持的块大小,请参阅机器说明文件。

指定块和存储空间的最大数量
您可在数据库服务器系统上指定存储空间的最大块数为 32,766 以及最大存储空间数为
32,766。
存储空间可以是数据库空间、BLOB 空间和智能大对象空间的任何组合。
考虑到对数据库服务器实例大小的所做的所有限制,实例的最大大小为 8 拍字节。

更改物理模式后备份
您必须对根数据库空间和修改过的存储空间执行 0 级备份,从而确保您可在执行以下操
作时复原数据:

添加或删除镜像

删除逻辑日志文件

更改物理日志的大小或位置

更改您的存储管理器配置

添加、移动或删除数据库空间、BLOB 空间或智能大对象空间

对数据库空间、BLOB 空间或智能大对象空间添加、移动或删除块

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 188 -
重要: 添加新的逻辑日志时,不再需要为使用新逻辑日志而对根数据库空间和修改过的数据库空间执行
0 级备份。但必须执行 0 级备份以防止 1 级和 2 级备份失败。
您必须对修改过的存储空间执行 0 级备份,以确保执行以下操作时在转换到日志记录表
类型之前可以复原未记录的数据:

当您将非日志记录数据库转换为日志记录数据库。

当您将 RAW 表转换为标准表

ifx_lo_specget_estbytes() 函数从 LO-specification 结构取得智能大对象的估计大小。


语法
mint ifx_lo_specget_estbytes(LO_spec, estbytes)
ifx_lo_create_spec_t *LO_spec;
ifx_int8_t *estbytes;
LO_spec
指向从其取得估计的大小的 LO-specification 结构的指针。
estbytes
指向 ifx_lo_specget_estbytes() 将智能大对象的估计字节数放置其内的 ifx_int8_t 结
构的指针。

用法
estbytes 值是以字节计的智能大对象的估计的最终大小。此估计是智能大
对象优化器的优化线索。
重要:在您调用 ifx_lo_specget_estbytes() 之前,您必须调用 ifx_lo_def_create_spec()
函数来初始化 LO-specification 结构。您可使用 ifx_lo_col_info() 函数来存储与
LO-specification 结构中的特定列相关联的存储特征。

返回代码
0
函数成功。
-1
函数不成功。

stcmpr() 函数比较两个以空终止的字符串。

语法
mint stcmpr(s1, s2)
char *s1, *s2;
s1
指向第一个以空终止的字符串的指针。
s2
指向第二个以空终止的字符串的指针。
重要: 在 ASCII 排序序列中,当 s1 出现在 s2 之后时,s1 大于 s2。

返回代码
=0
两个字符串相同。
<0
第一个字符串小于第二个字符串。
>0
第一个字符串大于第二个字符串。

示例


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 955 -

此样例程序在 demo 目录中的 stcmpr.ec 文件中。
/*
* stcmpr.ec *

The following program displays the results of three string comparisons using stcmpr().
*/

#include

main()
{
printf("STCMPR Sample ESQL Program running.\n\n");
printf("Executing: stcmpr(\"aaa\", \"aaa\")\n");
printf(" Result = %d", stcmpr("aaa", "aaa")); /* equal */
printf("\nExecuting: stcmpr(\"aaa\", \"aaaa\")\n");
printf(" Result = %d", stcmpr("aaa", "aaaa")); /* less */
printf("\nExecuting: stcmpr(\"bbb\", \"aaaa\")\n");
printf(" Result = %d\n", stcmpr("bbb", "aaaa")); /* greater */
printf("\nSTCMPR Sample Program over.\n\n");
}

输出

STCMPR Sample ESQL Program running.

Executing: stcmpr("aaa", "aaa")
Result = 0
Executing: stcmpr("aaa", "aaaa")
Result = -1
Executing: stcmpr("bbb", "aaaa")
Result = 1

STCMPR Sample Program over.

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 956 -