返回首页

gbase数据、南大通用产品文档:GBase8s管理智能大对象空间

更新日期:2024年09月11日

本节描述如何创建标准的或临时的智能大对象空间、监视元数据或用户数据区域、向智能
大对象空间添加块以及更改智能大对象的存储特征。
有关监视智能大对象空间的信息,请参阅监视存储空间。

创建智能大对象空间
使用 onspaces 实用程序创建智能大对象空间。
使用 onspaces 实用程序或 Server Administrator (ISA) 可创建智能大对象空间。
要使用 onspaces 创建智能大对象空间,请执行以下操作:

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 211 -
1. 要在 UNIX™ 上创建智能大对象空间,必须以用户 gbasedbt 或 root 身份登录。
2. 请确保数据库服务器处于联机、管理或静默方式,或者处于快速恢复方式的清除阶
段。
3. 使用 onspaces -c -S 选项创建智能大对象空间。
a.
使用 -p 选项指定路径名、使用 -o 选项指定偏移量,以及使用 -s 选
项指定智能大对象空间大小。
b.
如果要对智能大对象空间制作镜像,请使用 -m 选项指定镜像路径和
偏移量。
c.
如果您希望使用智能大对象空间的缺省存储特征,
那么省略 -Df 选项。

如果您希望指定不同的存储特征,请使用 -Df 选项。有关更多信息,请参阅
智能大对象空间的存储特征。
d.
智能大对象空间中的第一个块必须具有元数据区域。
您可以为智能大对象空间指定元数据区域,或让数据库服务器计算元数据区域
的大小。有关更多信息,请参阅计算智能大对象空间元数据的大小。
4. 在创建智能大对象空间之后,必须对根数据库空间和新智能大对象空间执行 0 级
备份。
5. 要在该智能大对象空间中开始存储智能大对象,
请在 SBSPACENAME 配置参数中
指定空间名称。
6. 使用 onstat -d、onstat -g smb s 以及 oncheck -cs、-cS、-ps 或 -pS 来显示有关智能
大对象空间的信息。
有关更多信息,请参阅监视智能大对象空间。
这显示了如何创建 20 兆字节的镜像智能大对象空间 sbsp4。为主块和镜像块均指定 500
KB 的偏移量,还指定偏移量为 200 KB 且大小为 150 KB 的元数据。AVG_LO_SIZE -Df
标记指定 32 KB 的智能大对象平均期望大小。
onspaces -c -S sbsp4 -p /dev/rawdev1 -o 500 -s 20480 -m /dev/rawdev2 500
-Ms 150 -Mo 200 -Df "AVG_LO_SIZE=32"
有关创建智能大对象空间和智能大对象缺省选项的信息,请参阅《GBase 8s 管理员参考》
中有关 onspaces 实用程序的信息。有关创建智能大对象的信息,请参阅《GBase 8s
DataBlade API 程序员指南》和《GBase 8s ESQL/C 程序员手册》。
要使用 ISA 创建智能大对象空间,请执行以下操作:
1. 使用 ISA 创建智能大对象空间。有关更多信息,请参阅 ISA 联机帮助。
2. 备份新智能大对象空间和根数据库空间。

计算智能大对象空间元数据的大小
智能大对象空间的第一个块必须有元数据区域。
在向智能大对象空间添加智能大对象和块
时,元数据区域会增大。另外,数据库服务器保留 40% 的用户区域,在元数据区域空间
耗尽的情况下使用。
为智能大对象空间正确估算元数据区域以确保智能大对象空间不会耗尽元数据空间,这一
点很重要。您可以使用以下方法之一:

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

让数据库服务器为新智能大对象空间块计算元数据区域的大小。

明确指定元数据区域的大小。
有关估计智能大对象空间和元数据区域的大小的指示信息,请参阅《GBase 8s 性能指南》
中的表性能注意事项章节。另见监视元数据和用户数据区域。

向智能大对象空间添加块
可以将块添加到智能大对象空间或临时智能大对象空间。
您可以为块指定元数据区域、让数据库服务器计算元数据区域或者将块仅用于用户数据。
要使用 onspaces 将块添加到智能大对象空间,请执行以下操作:
1. 请确保数据库服务器处于联机、管理或静默方式,或者处于快速恢复方式的清除阶
段。
2. 使用 onspaces -a 选项创建智能大对象空间块。
a.
使用 -p 选项指定路径名、使用 -o 选项指定偏移量,以及使用 -s 选
项指定块大小。
b.
如果您希望对块制作镜像,请使用 -m 选项指定镜像路径和偏移量。
c.
要指定元数据空间的大小和偏移量,请使用 -Mo 和 -Ms 选项。
数据库服务器在新块上分配指定量的元数据区域、
d.
要让数据库服务器为新块计算元数据大小,那么省略 -Mo 和 -Ms 选
项。
数据库服务器按用户数据区域大小划分智能大对象的估计平均大小。
e.
要将块仅用于用户数据,请指定 -U 选项。
如果您使用 -U 选项,那么数据库服务器不会在该块中分配元数据空间。取而
代之,智能大对象空间使用一个其他块中的元数据区域。
3. 在将块添加到智能大对象空间后,数据库服务器将编写 CHRESERV 和
CHKADJUP 日志记录。
4. 对根数据库空间和智能大对象空间执行 0 级备份。
5. 使用 onstat -d 和 oncheck -pe 可监视智能大对象空间块中的可用空间量。
此示例向 sbsp4 添加 10 兆字节的镜像块。
对主块和镜像块都指定了 200 KB 的偏移量。
如果您不添加镜像块,那么可省略 -m 选项。-U 选项指定新块仅包含用户数据。
onspaces -a sbsp4 -p /dev/rawdev1 -o 200 -s 10240 -m /dev/rawdev2 200 -U
还可以定义当应用程序需要更多存储空间时,GBase 8s 可用于自动扩展块大小的信息。如
果有可扩展块,那么无需添加新块或耗费时间来尝试确定哪种存储空间(数据库空间、临
时数据库空间、智能大对象空间、临时智能大对象空间或 BLOB 空间)将耗尽空间,以及
何时将耗尽空间。
当启用 CHUNK_OVERLAP_PROTECTION 配置参数时,数据库服务器将确保新块不会与
其他块重叠。如果服务器发现块重叠,新块添加操作将失败。

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

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 213 -
使用 onspaces -ch 命令为智能大对象空间更改以下缺省存储特征:

扩展数据块大小

平均智能大对象大小

缓冲方式

上次访问时间

锁定方式

日志记录
有关更多信息,请参阅智能大对象空间的存储特征和《GBase 8s 性能指南》中有关表性能
注意事项主题中的管理智能大对象空间的部分。

创建临时智能大对象空间
有关确定智能大对象存储位置的背景信息和规则,请参阅临时智能大对象空间。您可将临
时智能大对象存储在标准的或临时的智能大对象空间中。可以在临时智能大对象空间中添
加或删除块。
要创建具有临时智能大对象的临时智能大对象空间,请执行以下操作:
1. 为临时智能大对象空间分配空间。
有关详细信息,请参阅分配磁盘空间。
有关 SBSPACETEMP 的信息,请参阅《GBase 8s 管理员参考》中有关配置参数
的主题。
2. 如以下示例所示,创建临时智能大对象空间:
onspaces -c -S tempsbsp -t -p ./tempsbsp -o 0 -s 1000
3. 您可任意指定以下 onspaces 选项:
a.
指定元数据区域和偏移量(-Ms 和 -Mo)。
b.
指定存储特征 (-Df)。
无法为临时智能大对象空间打开日志记录。
4. 将 SBSPACETEMP 配置参数设置为缺省临时智能大对象空间存储区域的名称。
重新启动数据库服务器。
5. 使用 onstat -d 显示临时智能大对象空间。
有关 onstat
-d 输出示例的信息,
请参阅
《GBase
8s 管理员参考》
中的 onstat 实
用程序。
6. 在创建临时智能大对象时指定 LO_CREATE_TEMP 标志。
使用 DataBlade API:
mi_lo_specset_flags(lo_spec,LO_CREATE_TEMP);
使用 GBase 8s ESQL/C:
ifx_lo_specset_flags(lo_spec,LO_CREATE_TEMP);

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 214 -
有关创建智能大对象的信息,请参阅《GBase 8s DataBlade API 程序员指南》和《GBase 8s
ESQL/C 程序员手册》。

SQLNumParams 返回 SQL 语句中参数的数量。

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 232 -

下表描述了SQLNumParams 的 SQLSTATE 和错误值。
SQLSTATE
错误值
错误消息
01000
-11001
General warning
S1000
-11060
General error
S1001
-11061
Memory-allocation failure
S1008
-11065
Operation canceled
S1010
-11067
Function-sequence error
S1T00
-11094
Time-out expired

语法

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 580
DENSE_RANK(
)
over([PARTITION
BY
col_name1,col_name2,…]
ORDER
BY
col_name1
[ASC/DESC],
col_name2 [ASC/DESC],…)
功能描述
基本功能同rank 类似,
区别是如果两行得到同样的排序,
则后面的序数不跳跃。例
如,两行序数为1,序列将给组中的下一行分配值2。
仅Express 引擎支持。
使用说明和使用约束同RANK( ) OVER( )。
示例
示例1:rank,DENSE_RANK() OVER (partition by i order by j desc)
gbase> DROP TABLE IF EXISTS t1;
Query OK, 0 rows affected

gbase> CREATE TABLE t1(i int, j int);
Query OK, 0 rows affected

gbase> INSERT INTO t1 VALUES(2,1),(2,3),(2,3),(2,5),(3,2),(3,2),(3,2),(3,4),(3,1),(3,5);
Query OK, 10 rows affected
Records: 10 Duplicates: 0 Warnings: 0

gbase> SELECT *,RANK() OVER(PARTITION BY i ORDER BY j DESC) AS
rank,DENSE_RANK() OVER (partition by i order by j desc) AS dense_rank FROM t1;
+------+------+------+------------+
| i | j | rank | dense_rank |
+------+------+------+------------+
| 2 | 5 | 1 | 1 |
| 2 | 3 | 2 | 2 |
| 2 | 3 | 2 | 2 |
| 2 | 1 | 4 | 3 |
| 3 | 5 | 1 | 1 |
| 3 | 4 | 2 | 2 |
| 3 | 2 | 3 | 3 |
| 3 | 2 | 3 | 3 |
| 3 | 2 | 3 | 3 |
| 3 | 1 | 6 | 4 |
+------+------+------+------------+
10 rows in set

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 581