返回首页

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

更新日期:2024年09月11日

数据库空间是一种可包含 1 到 32766 个块的逻辑单元。放置数据库、表、逻辑日志文件
以及数据库空间中的物理日志。
控制简单大对象数据的存储位置
数据库服务器管理员的关键职责是控制数据库服务器存储数据的位置。通过在最快的磁盘
驱动器上存储访问频率很高的表或关键数据库空间(根数据库空间、物理日志和逻辑日
志),可以提高性能。通过将关键数据存储在单独的物理设备上,您可以确保当包含非关
键数据的磁盘中有一个发生故障时,该故障只会影响该磁盘上的数据可用性。
如下图所示,要控制数据库或表的放置,可使用 CREAT DATABASE 或 CREAT TABLE
语句的 IN dbspace 选项。
图: 使用 CREATE TABLE... IN 语句控制表的放置



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

在数据库空间中创建数据库或表之前,您必须先创建数据库空间。
数据库空间可以包含一个或多个块,如下图所示。您可以在任何时候添加更多的块。监视
数据库空间块的填充度以及预期是否有必要向数据库空间分配更多的块,是高优先级的数
据库服务器管理员任务。当数据库空间包含多个块时,不能指定数据所在的块。
图: 链接逻辑和物理存储单元的数据库空间


数据库服务器使用数据库空间来存储数据库和表。
创建标准或临时数据库空间时,可指定该数据库空间的页大小。您不能指定BLOB 空间、
智能大对象空间或外部空间的页大小。如果不指定页大小,那么根数据库空间的大小将为
缺省页大小。有关更多信息,请参阅创建具有非缺省页大小的数据库空间。
创建标准数据库空间时,可在数据库空间中指定表空间 tblspace 的第一个和下一个扩展
数据块大小。如果要在必须将表空间 tblspace 扩展数据块放入非主块中时减少表空间
tblspace 扩展数据块的数量并减少这些情况发生的频率,请执行此操作。 有关更多信
息,请参阅为表空间 tblspace 指定第一个和下一个扩展数据块大小。
您可以为镜像数据库空间中的每个块建立镜像。一旦数据库服务器分配了镜像块,它会立
刻将该镜像块中的所有空间都标记为已满。请参阅监视磁盘使用量。
有关使用 Server Administrator 或 onspaces 执行以下任务的信息,请参阅管理磁盘空间。

创建数据库空间

向数据库空间添加块

重命名数据库空间

删除块

删除数据库空间、BLOB 空间或智能大对象空间
根数据库空间

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 156 -
根数据库空间是数据库服务器创建的初始数据库空间。根数据库空间是特殊的,因为它包
含了保留页和内部表,它们将描述和跟踪所有物理和逻辑存储单元。(有关这些主题的更
多信息,请参阅表以及《GBase 8s 管理员参考》中有关磁盘结构和存储的章节。)根数
据库空间的初始块及其镜像是唯一在磁盘空间初始化期间创建的块。可在磁盘空间设置后
将其他块添加到根数据库空间。
onconfig 配置文件中的以下磁盘配置参数引用根数据库空间的第一个(初始)块:

ROOTPATH

ROOTOFFSET

ROOTNAME

MIRRORPATH

MIRROROFFSET

TBLTBLFIRST

TBLTBLNEXT
根数据库空间也是由 CREAT DATABASE 语句创建的任何数据库的缺省数据库空间位
置。
根数据库空间是由数据库服务器为执行所请求的数据管理而创建的所有临时表的缺省位
置。
请参阅根数据库空间的大小以获取有关应为根数据库空间分配多少空间的信息。还可以在
设置数据库服务器磁盘空间后将额外的块添加到根数据库空间。
临时数据库空间
临时数据库空间是专门为临时表的存储而保留的数据库空间。您不能为临时数据库空间建
立镜像。
数据库服务器不会删除临时数据库空间,除非明确指示应这么做。临时数据库空间是临时
的指的只是数据库服务器在其不正常关闭时不保留任何数据库空间内容。
无论何时设置数据库服务器,所有临时数据库空间都将设置。数据库服务器会清除可能从
数据库服务器上次关闭后留下的任何表。
数据库服务器不会为临时数据库空间执行逻辑或物理日志记录。由于没有用物理方式记录
临时数据库空间,因此只有较少的检查点和 I/O 操作出现,以此提高了性能。
对于标准数据库空间中的临时表,数据库服务器会记录表的创建、扩展数据块的分配以及
表的删除。相反,数据库服务器不会记录存储在临时数据库空间中的表。临时数据库空间
中禁止使用逻辑日志可减少在逻辑恢复期间要前滚的日志记录数,从而提高关键停机时间
内的性能。
使用临时数据库空间存储临时表还会减少存储空间备份的大小,因为数据库服务器不会备
份临时数据库空间。
数据库服务器使用临时磁盘空间来存储备份期间被覆盖以及内存中发生查询处理而溢出的
之前数据映像。请确保正确设置 DBSPACETEMP 环境变量或参数,以便指定的数据库空

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 157 -
间具有足够空间,能满足您的需求。如果指定的数据库空间中空间不足,备份将失败,并
且将使用根数据库空间,或者在填满根数据库空间之后,备份将失败。
如果您有多个临时数据库并且在临时表中执行了 SELECT 语句,那么查询结果将以循环
顺序插入。
有关如何创建临时数据库空间的详细指示信息,请参阅创建临时数据库空间。
重要: 当数据库服务器作为辅助数据库服务器运行时,它需要临时数据库空间存储由只
读查询生成的任何内部临时表。

若缩容后该节点不再需要可以彻底从集群中移除该节点并卸载该节点,
也可以一直
作为freenode 待以后使用。

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
273
从集群中彻底移除并卸载缩容掉的节点步骤如下:
操作步骤
步骤1:确定gcRm_vc1.xml 文件内容为待卸载节点IP:
$ cat gcRm_vc1.xml






步骤2:将待卸载IP 从集群中移除
$ gcadmin rmnodes gcRm_vc1.xml
gcadmin remove nodes ...
flush statemachine success
gcadmin rmnodes from cluster success
步骤3:修改卸载配置文件demoUn.options
1)
拷贝demo.options 文件为demoUn.options,修改demoUn.options 如下;
2)
设置dataHost 参数为要卸载的节点的IP;
3)
注释coordinateHost 和coordinateHostNodeID 参数;
4)
修改existCoordinateHost 参数为缩容后保留的Coordinator 节点的IP;
5)
修改existDataHost 参数为缩容后保留的所有data 节点的IP。
$ cat demoUn.options
installPrefix= /opt
#coordinateHost =
#coordinateHostNodeID =
dataHost = 172.168.83.16
existCoordinateHost =172.168.83.11,172.168.83.12,172.168.83.13,172.168.83.15
existDataHost
=172.168.83.11,172.168.83.12,172.168.83.13,172.168.83.14,172.168.83.15
existGcwareHost=172.168.83.11,172.168.83.12,172.168.83.13,172.168.83.15
#gcwareHost =
#gcwareHostNodeID =
dbaUser = gbase
dbaGroup = gbase
dbaPwd = 'gbasedba'
rootPwd = '111111'
#rootPwdFile = rootPwd.json
#characterSet = utf8
#sshPort = 10022
步骤4:到所有需要卸载的数据节点上去停止集群服务

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
274
$ gcluster_services all stop
步骤5:执行卸载。
$ ./unInstall.py --silent=demoUn.options
These GCluster nodes will be uninstalled.
CoordinateHost:
DataHost:

您可以添加注释以阐明特定 SQL 语句的作用和影响。您还可以在程序开发期间
使用注释符号以禁用个别语句,而无需从源代码中删除它们。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 11
您的注释可帮助您或其他人理解程序、SPL 例程或命令文件中的语句角色。本手
册中的代码示例有时包括阐明代码中的 SQL 语句角色的注释,但如果在写程序
时经常使用注释,那么您自己的 SQL 程序将更容易阅读和维护。
下表显示了可在代码中输入的 SQL 注释指示符。这里列中的 Y 表示您可以将此
符号与列标题中标识的产品或数据库类型一起使用。列中的 N 表示不能将此符号
与指出的产品或指出的 ANSI 一致性状态的数据库一起使用。
注释符号
ESQL/C
SPL
例程
DB-Access
符合
ANSI
的数据

数据库
不符合
ANSI
描述
双连字符(-
-)
Y
Y
Y
Y
Y
在单独一行
中,双连字符
放在注释的前
面。要对多行
做出注释,请
将双连字符放
在每个注释行
的开头。
花括号
( { . . . }
)
N
Y
Y
Y
Y
花括号将注释
括起来。{放
在注释的前
面}放在注释
后面。花括号
可以定界单行
或多行注释,
但不能嵌套注
释。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 12
注释符号
ESQL/C
SPL
例程
DB-Access
符合
ANSI
的数据

数据库
不符合
ANSI
描述
斜杠和星号
/* . . . */
Y
Y
Y
Y
Y
C 语言样式的
斜杠和星号
( /* */ )成
对定界符将注
释括在其中。
/* 放在注释
前面,*/放在
注释后面。这
些符号可以定
界单行或多行
注释,但不能
嵌套注释。
数据库服务器忽略注释中的字符。
优化程序伪指令 这一部分描述了上下文,在该上下文中注释内的信息可以影响
GBase 8s 的查询计划。
如果您使用的产品支持所有这些注释符号,则您选择的注释符号取决于对
ANSI/ISO 一致性的需求:

双连字符( -- )符合 SQL 的 ANSI/ISO 标准。

花括号( { } )是 ANSI/ISO 标准 的 GBase 8s 扩展。

C 语言样式的斜杠和星号( /* . . . */ )符合 SQL-99 标准。
只要符合 ANSI/ISO 一致性,您对注释符号的选择纯属个人偏好。
在 DB-Access 中,当您使用 SQL 编辑器输入 SQL 语句和当您使用 SQL 编辑
器或系统编辑器创建 SQL 命令文件时,可以使用这些注释符号中的任何符号。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 13
SQL 命令文件是包含一条或多条 SQL 语句的操作系统文件。命令文件也称为命
令脚本。关于命令文件的更多信息,请参阅 GBase 8s SQL 教程指南 中命令脚本
的讨论。关于如何在 DB-Access 中使用 SQL 编辑器或系统编辑器创建和修改命
令文件的信息,请参阅 GBase 8s DB-Access 用户指南 。
您可以在 SPL 例程的任意一行中使用任意一种注释符号。请参阅 GBase 8s SQL
教程指南 中关于如何注释和记录 SPL 例程的讨论。
在 GBase 8s ESQL/C 中,以连字符(--)开始的注释可以延伸到同一行的末尾。
关于 GBase 8s ESQL/C 程序中特定于语言的注释符号的信息,请参阅 GBase 8s
ESQL/C 程序员手册 。
SQL 注释符号示例
这些示例说明了使用 SQL 注释指示符的不同方式。
以下示例使用了每一种注释符号,包括双连字符(--)、花括号({ })、C 语言
样式(/* . . . */)的注释符号在 SQL 语句后注释。该注释与语句显示在同一
行。
SELECT * FROM customer; -- Selects all columns and rows
SELECT * FROM customer; {Selects all columns and rows}
SELECT * FROM customer; /*Selects all columns and rows*/
以下三个示例与前面的示例使用了相同的 SQL 语句和相同的注释,但注释自成一
行:
SELECT * FROM customer;
-- Selects all columns and rows
SELECT * FROM customer;
{Selects all columns and rows}
SELECT * FROM customer;
/*Selects all columns and rows*/
以下示例中,用户输入与前面的示例中相同的 SQL 语句,但现在输入一条多行注
释(或者对于双连字符有两条注释):
SELECT * FROM customer;
-- Selects all columns and rows

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 14
-- from the customer table

SELECT * FROM customer;
{Selects all columns and rows
from the customer table}

SELECT * FROM customer;
/*Selects all columns and rows
from the customer table*/
一条 SQL 语句中出现任意三种样式的注释:
SELECT * -- Selects all columns and rows
FROM customer; -- from the customer table

SELECT * {Selects all columns and rows}
FROM customer; {from the customer table}

SELECT * /*Selects all columns and rows*/
FROM customer; /*from the customer table*/
如果您使用花括号或 C 语言样式的注释被成对的开始和结束符号定界,那么结束
注释符号必须与开始注释符号的样式相同。
SQL 注释中的非 ASCII 字符
如果数据库语言环境支持非 ASCII 字符(包括多字节字符),则可以在 SQL 注
释中输入非 ASCII 字符。关于 SQL 注释 GLS 方面的进一步信息,请参阅
GBase 8s GLS 用户指南。