返回首页

gbase数据、南大通用产品文档:GBase8s逻辑卷管理器

更新日期:2024年09月11日

可以使用逻辑卷管理器 (LVM) 实用程序通过用户定义的逻辑卷来管理磁盘空间。
许多计算机制造商提供带专有 LVM 的计算机。可使用数据库服务器在由大多数专有
LVM 管理的磁盘上存储和检索数据。
本节的剩余部分将对逻辑卷管理器的优势和劣势进行
说明。
大多数 LVM 可管理多个千兆字节的磁盘空间。
数据库服务器块限制到 4 TB 大小,
且此
大小只能在正被分配的块偏移量为零时获取。因此,必须限制所有要分配为块的卷的大小
(每个块 4 TB)。
由于可使用 LVM 将磁盘驱动器分区成多个卷,因此可以控制将数据放置在给定磁盘的哪
个位置。可以通过定义由磁盘驱动器的最中间的柱面组成的卷并在该卷种放置使用率高的
表来提高性能。(从技术上讲,您不能将表直接放置在卷中。您必须先将块分配为卷,然
后将块指定到数据库空间,最后将表放置在该数据库空间中。有关更多信息,请参阅控制
简单大对象数据的存储位置。
提示: 如果选择使用大磁盘驱动器,那么可以将块指定给一个驱动器并且不必将该磁盘分区。


GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 192 -
还可以通过使用逻辑卷管理器定义在多个磁盘上展开的卷并随后将表放置到该卷中来提高
性能。
许多逻辑卷管理器还允许标准操作系统格式实用程序所不允许的灵活性程度。其中一个特
征是能够在您定义了逻辑卷后重新将其定位。这样,与操作系统格式实用程序相比,初次
获取磁盘空间布局就不那么重要了。
LVM 经常提供操作系统级别的镜像工具。有关更多信息,请参阅 镜像备用方法。


GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 81 -
当调用 SQLExecute 或 SQLExecDirect 时,
GBase 8s ODBC Driver 从应用程序中的存储位
置检索使用 SQLBindParameter 绑定的参数的数据。
对于处于执行的数据参数,请调用 SQLPutData 来发送参数数据。如有必要,GBase 8s
ODBC Driver 将数据由 SQLBindParameter 中 ValueType 参数指定的数据类型转换为
SQLBindParameter 中 fSqlType 参数指定的数据类型。最终,GBase 8s ODBC Driver 将数
据发送至数据源。
如果在 SQLBindParameter 中指定的 rgbValue 和 pcbValue 参数都是空指针,则该函数返
回 SQLSTATE S1009(无效的参数值)。要指定空 SQL 数据值,请将 SQLBindParameter
的 pcbValue参数指向的值,或将 cbValue 参数的值设置为 SQL_NULL_DATA。要指定
rgbValue 中的值为空终止字符串,请将这些值设置为 SQL_NTS。
在表中使用下列术语:
数据的长度
无论数据在发送到应用程序之前是否被截断,可用于发送至数据源的 SQL 数据的
字节数。对于字符串数据,这不包括空终止字节。
列长度和显示大小
定义了精度、小数位数、长度和显示大小 中的每个 SQL 数据。
位数
表示数值的字符数,包括负号、小数点和指数(如果需要的话)。
斜体词语
表示 GBase 8s ODBC Driver SQL 语法的元素。
C 至 SQL:二进制
二进制 GBase 8s ODBC Driver C 数据类型为 SQL_C_BINARY。
下表展示可将二进制 C 数据转换为哪些 GBase 8s ODBC Driver SQL 数据类型。

“测试”
列中,SQL 数据长度是在数据源上存储该数据需要的字节数。此长度可能不同于列长度,
如同 精度、小数位数、长度和显示大小 中定义的那样。
可将 C 数据转换为哪些 GBase 8s ODBC Driver SQL 数据类型。
fSqlType
测试
SQLSTATE
SQL_BIGINT
数据的长度 = SQL 数据长度。
不适用
数据的长度 ≠ SQL 数据长度。
22003
SQL_BIT
数据的长度 = SQL 数据长度。
不适用
数据的长度 ≠ SQL 数据长度。
22003
SQL_CHAR
SQL_LONGVARCHAR
SQL_VARCHAR
数据的长度 ≠ 列长度。
不适用
数据的长度 > 列长度。
01004
SQL_DATE
SQL_TIMESTAMP
数据的长度 = SQL 数据长度。
不适用
数据的长度 ≠ SQL 数据长度。
22003
SQL_DECIMAL
数据的长度 = SQL 数据长度。
不适用

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 82 -
fSqlType
测试
SQLSTATE
SQL_DOUBLE
SQL_INTEGER
SQL_REAL
SQL_SMALLINT
数据的长度 ≠ SQL 数据长度。
22003
SQL_LONGVARBINARY
数据的长度 ≠ 列长度。
不适用
数据的长度 > 列长度。
01004

C 至 SQL:位
位 GBase 8s ODBC Driver C 数据类型为 SQL_C_BIT。
下表展示可将位 C 数据转换为哪些 GBase 8s ODBC Driver SQL 数据类型。
fSqlType
测试
SQLSTATE
SQL_BIGINT
SQL_DECIMAL
SQL_DOUBLE
SQL_INTEGER
SQL_REAL
SQL_SMALLINT

不适用
SQL_BIT

不适用
SQL_CHAR
SQL_LONGVARCHAR
SQL_VARCHAR

不适用
GBase 8s ODBC Driver 会忽略 SQLBindParameter 的 pcbValue 参数指向的值,以及从布
尔 C 数据类型转换数据时 SQLPutData 的 cbValue 参数的值。GBase 8s ODBC Driver 使
用 rgbValue 的大小来表示布尔 C 数据类型的大小。

C 至 SQL:字符
字符 GBase 8s ODBC Driver C 数据类型为 SQL_C_CHAR。
下表展示可将 C 字符数据转换为哪些 GBase 8s ODBC Driver SQL 数据类型。
可将 C 字符数据转换成的 GBase 8s ODBC Driver SQL 数据类型。
fSqlType
测试
SQLSTATE
SQL_BIGINT
无截断转换的数据。
不适用
截断小数为的转换的数据。
01004
数据转换会导致所有位的丢失(与小数位
相反)。
22003
数据值不是数值-文字。
22005

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 83 -
fSqlType
测试
SQLSTATE
SQL_BIT
数据为 0 或 1。
不适用
数据大于 0,小于 2,且不等于 1。
01004
数据小于 0,或大于或等于 2。
22003
数据不是数值-文字。
22005
SQL_CHAR
SQL_LONGVARCHAR
SQL_VARCHAR
数据的长度 ≤ 列长度。
不适用
数据的长度 > 列长度。
01004
SQL_DATE
数据值是有效的 GBase 8s ODBC 驱动程
序日期-文字。
不适用
数据值是有效的 GBase 8s ODBC 驱动程
序时间戳-文字;时间部分为零。
不适用
数据值是有效的 GBase 8s ODBC 驱动程
序时间戳-文字;时间部分非零。GBase 8s
ODBC 驱动程序截断时间戳的时间部分。

01004
数据值不是有效的 GBase 8s ODBC 驱动
程序日期-文字 或 GBase 8s ODBC 驱动
程序时间戳-文字。
22008
SQL_DECIMAL
SQL_INTEGER
SQL_SMALLINT
未经截断转换的数据。
不适用
截断小数位转换的数据。
01004
数据的转换会导致所有位的丢失(与小数
为相反)。
22003
数据值不是数值-文字。
22005
SQL_DOUBLE
SQL_REAL
数据在正在将数值转换为其的数据类型的
范围之内。
不适用
数据在正在将数值转换为其的数据类型的
范围之外。
22003
数据值不是数值-文字。
22005
SQL_LONGVARBINARY
(数据的长度) / 2 ≤ 列长度。
不适用
(数据的长度) / 2 > 列长度。
01004
数据值不是十六进制值。
22005
SQL_TIMESTAMP
数据值是有效的 GBase 8s ODBC 驱动程
序时间戳-文字;不截断小数秒部分。
不适用
数据值是有效的 GBase 8s ODBC 驱动程
序时间戳-文字;截断小数秒部分。
01004

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 84 -
fSqlType
测试
SQLSTATE
数据值是有效的 GBase 8s ODBC 驱动程
序日期-文字。GBase 8s ODBC 驱动程序
将时间戳的时间部分设置为零。
不适用
数据值是有效的 GBase 8s ODBC 驱动程
序时间-文字。GBase 8s ODBC 驱动程序
将时间戳的日期部分设置为当前日期。
不适用
数据值不是有效的 GBase 8s ODBC 驱动
程序日期-文字、GBase 8s ODBC 驱动程
序时间-文字 或 GBase 8s ODBC 驱动程
序时间戳-文字。
22008
当 GBase 8s ODBC Driver 将字符 C 时间转换为数值、日期或时间戳 SQL 数据时,它忽
略开头和结尾的空格。当 GBase 8s ODBC Driver 将字符 C 数据转换为二进制 SQL 数据
时,它将每一两字节字符数据转换为一字节二进制数据。每一两字节字符数据表示一个十
六进制形式的数值。例如,GBase 8s ODBC Driver 将 "01" 转换为二进制 00000001,将
"FF" 转换为二进制 11111111。
GBase 8s ODBC Driver 始终将十六进制数字对转换为单独的字节,并忽略空终止字节。由
于此转换,如果字符串的长度是奇数,则不转换该字符串的最后一个字节(不包括空终止
字节,如果有的话)。

C 至 SQL:日期
日期 GBase 8s ODBC Driver C 数据类型为 SQL_C_DATE。
下表展示可将日期 C 数据转换为哪些 GBase 8s ODBC Driver SQL 数据类型。
可将日期 C 数据转换成的 GBase 8s ODBC Driver SQL 数据类型。
fSqlType
测试
SQLSTATE
SQL_CHAR
SQL_LONGVARCHAR
SQL_VARCHAR
列长度 ≥ 10。
不适用
列长度 < 10。
22003
数据值不是有效的日期。
22008
SQL_DATE
数据值是有效的日期。
不适用
数据值不是有效的日期。
22008
SQL_TIMESTAMP
数据值是有效的日期。
GBase 8s ODBC 驱
动程序将时间戳的时间部分设置为零。
不适用
数据值不是有效的日期。
22008
当 GBase 8s ODBC Driver 将日期 C 数据转换为字符 SQL 数据时,生成的字符串采用
yyyy-mm-dd 的格式。

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 85 -
当它将数据由日期 C 数据类型转换时,
GBase 8s ODBC Driver 忽略 SQLBindParameter 的
pcbValue 参数指向的值,以及 SQLPutData 的 cbValue 参数的值。对于该日期 C 数据类
型的大小,GBase 8s ODBC Driver 使用 rgbValue 的大小。

C 至 SQL:数值
总共有十种 GBase 8s ODBC Driver C 数据类型。
数值 GBase 8s ODBC Driver C 数据类型是:

SQL_C_DOUBLE

SQL_C_FLOAT

SQL_C_LONG

SQL_C_SHORT

SQL_C_SLONG

SQL_C_STINYINT

SQL_C_TINYINT

SQL_C_ULONG

SQL_C_USHORT

SQL_C_UTINYINT
下表展示可将数值 C 数据转换为哪些 GBase 8s ODBC Driver SQL 数据类型。
可将数值 C 数据转换成的 GBase 8s ODBC Driver SQL 数据类型。
fSqlType
测试
SQLSTATE
SQL_BIGINT
未截断的转换的数据。
不适用
截断小数位的转换的数据。
01004
数据的转换会导致所有位的丢失(与小数
位相反)。
22003
SQL_BIT
数据为 0 或 1。
不适用
数据大于 0,小于 2,且不等于 1。
01004
数据小于 0 或大于或等于 2。
22003
SQL_CHAR
SQL_LONGVARCHAR
SQL_VARCHAR
位数 ≤ 列长度。
不适用
所有位数(与小数位相反)≤ 列长度。
01004
所有位数(与小数位相反)> 列长度。
22003
SQL_DECIMAL
SQL_INTEGER
SQL_SMALLINT
未截断的转换的数据
不适用
截断小数位的转换的数据。
01004
数据的转换会导致所有位的丢失(与小数
位相反)。
22003

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 86 -
fSqlType
测试
SQLSTATE
SQL_DOUBLE
SQL_REAL
数据在正在将数值转换为其的数据类型的
范围之内。
不适用
数据在正在将数值转换为其的数据类型的
范围之外。
22003
当它从数值 C 数据类型转换数据时,GBase 8s ODBC Driver 忽略 SQLBindParameter 的
pcbValue 参数指向的值,以及 SQLPutData 的 cbValue 参数的值。对于数值 C 数据类型
的大小,GBase 8s ODBC Driver 使用 rgbValue 的大小。

C 至 SQL:时间戳
时间戳 GBase 8s ODBC Driver C 数据类型为 SQL_C_TIMESTAMP。
下表展示可将时间戳 C 数据转换为哪些 GBase 8s ODBC Driver SQL 数据类型。
可将时间戳 C 数据转换成的 GBase 8s ODBC Driver SQL 数据类型。
fSqlType
测试
SQLSTATE
SQL_CHAR
SQL_LONGVARCHAR
SQL_VARCHAR
列长度 ≥ 显示大小。
不适用
19 ≤ 列长度 < 显示大小。
GBase 8s ODBC Driver 截断时间戳的小数
秒。
01004
列长度 < 19。
22003
数据值不是有效的日期。
22008
SQL_DATE
时刻域为零。
不适用
时刻域非零。
GBase 8s ODBC Driver 截断时间戳结构的
时刻域。
01004
数据值不包含有效的日期。
22008
SQL_TIMESTAMP
不截断小数秒域。
不适用
截断小数秒域。
GBase 8s ODBC Driver 截断时间戳结构的
小数秒域。
01004
数据值不是有效的时间戳。
22008
当 GBase 8s ODBC Driver 将时间戳 C 数据转换为字符 SQL 数据时,生成的字符串采用
yyyy-mm-dd hh:mm:ss[.f...] 的格式。

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 87 -
当它由时间戳 C 数据类型转换数据时,
GBase 8s ODBC Driver 忽略 SQLBindParameter 的
pcbValue 参数指向的值,以及 SQLPutData 的 cbValue 参数的值。对于该时间戳 C 数据
类型的大小,GBase 8s ODBC Driver 使用 rgbValue 的大小。

C 至 SQL 数据转换示例
这些示例展示 GBase 8s ODBC Driver 如何将 C 数据转换为 SQL 数据。
下表说明 GBase 8s ODBC Driver 如何将 C 数据转换为 SQL 数据。"\0" 表示一个空终止
字节。仅当该数据的长度为 SQL_NTS 时,才需要空终止字节。对于 SQL_C_DATE,在
“C 数据值”列中的数值是存储在 DATE_STRUCT 结构的字段中的数值。对于
SQL_C_TIMESTAMP,在“C 数据值”列中的数值是存储在 TIMESTAMP_STRUCT 结
构的字段中的数值。
C 数据类型
C 数据值
SQL 数据类型
列长度
SQL 数据

SQLSTATE
SQL_C_CHAR
tigers\0
SQL_CHAR
6
tigers
不适用
SQL_C_CHAR
tigers\0
SQL_CHAR
5
tiger
01004
SQL_C_CHAR

您可以使用卸载应用程序以 GUI 方式、控制台方式或静默方式在 UNIX™ 和
Linux™ 上卸载 GBase 8s 客户机产品。具体选择哪个方式取决于您的目标和系
统环境。
重要:

不要通过手动删除文件来除去任何 GBase 8s 产品。

如果 Client SDK 与 GBase 8s 数据库服务器安装在同一个目录中:
 卸载 Client SDK 之前,必须先卸载 GBase 8s。
 不要除去 Global Language Support (GLS),因为这两个产品在此功能部件上
具有依赖关系。
以控制台方式(缺省方式)卸载 Client SDK 或 GBase 8s Connect。
您必须以 root 用户身份登录才能对基于 root 用户的安装执行此任务。
对于非 root 用户安装,
安装所有者或 root 用户都可以除去该产品。
如果您要以 root
用户身份除去该产品,请在卸载前先验证安装未在使用中也不在生产环境中。
要以控制台方式卸载客户机产品:
1.
以 root 用户身份从 $GBASEDBTDIR 运行以下某条命令:
o
uninstall/uninstall_csdk/uninstallcsdk
o
uninstall/uninstall_connect/uninstallconnect
您可以对命令指定 -i console 选项,但不要求传递此选项。
2.
按照提示完成卸载。
以 GUI 方式卸载 Client SDK 或 GBase 8s Connect
您必须以 root 用户身份登录才能对基于 root 用户的安装执行此任务。

GBase 8s 客户机产品安装指南
南大通用数据技术股份有限公司 - 40 -
对于非 root 用户安装,
安装所有者或 root 用户都可以除去该产品。
如果您要以 root
用户身份除去该产品,请在卸载前先验证安装未在使用中也不在生产环境中。
要以 GUI 方式卸载客户机产品:
1.
以 root 用户身份从 $GBASEDBTDIR 运行以下某条命令:
o
uninstall/uninstall_csdk/uninstallclientsdk -i gui
o
uninstall/uninstall_connect/uninstallconnect -i gui
您可以使用选项 -i swing 代替选项 -i gui。
2.
按照提示完成卸载。
以静默方式卸载 Client SDK 或 GBase 8s Connect
您必须以 root 用户身份登录。
Client SDK 和 GBase 8s Connect 的静默卸载不需要响应文件。只有在要定制卸载时
才需要响应文件。
创建用于客户机产品静默卸载的响应文件的唯一方式是在要除去产品
的第一个目录中记录产品的 GUI 或控制台卸载。不能通过修改模板
bundle.properties 文件来创建响应文件。
要以静默方式卸载客户机产品:
1.
可选: 如果要创建响应文件,请选择要使用定制设置(可复用于相同产品在其
他计算机上的卸载)进行卸载的产品安装。
2.
可选: 以 GUI 方式或控制台方式启动 Client SDK 或 GBase 8s Connect 产
品卸载应用程序,并在命令行上指定 -i -r path_name 选项,将 path_name 替换
为您要记录的响应文件的完整路径。
例如,如果要以控制台方式卸载 GBase 8s Connect 并在位于 C:/gbasedbt/uninstall.ini
的响应文件中记录卸载,将运行:
$GBASEDBTDIR/uninstall/uninstall_connect/uninstallconnect -i -r
uninstall.ini

GBase 8s 客户机产品安装指南
南大通用数据技术股份有限公司 - 41 -
如果要卸载 Client SDK,请使用 uninstall/uninstall_csdk/uninstallclientsdk 命令。
如果您希望以 GUI 方式执行卸载,
可以在同一个命令行中将 -i
-r
path_name 选项与 -gui
选项一起使用。
3.
可选: 将响应文件复制到要卸载相同客户机程序的计算机。
4.
为产品运行带 -i
silent 选项的卸载命令。如果使用响应文件,请在 -f 选项
后指明响应文件的相对或绝对路径。
注意: 如果不使用响应文件,请不要在以下示例中传递 -f path_name 参数。
o
uninstall/uninstall_csdk/uninstallclientsdk -i silent -f
path_name,用于除去或更改 Client SDK 安装
o
uninstall/uninstall_connect/uninstallconnect -i silent -f
path_name,用于除去或更改 GBase 8s Connect 安装
5.
为要部署相同卸载设置的每个位置重复步骤 3 和步骤 4。