返回首页

gbase数据、南大通用产品文档:GBase8a关于skipnetworking 问题

更新日期:2024年09月11日

我想在一个小程序或应用程序中使用GBase JDBC,
但是得到一个类似如下的异常:

SQLException: Cannot connect to GBase server on host:5258.
Is there a GBase server running on the machine/port you
are trying to connect to?
(java.security.AccessControlException)
SQLState: 08t01
VendorError: 0
回答:

GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1128
或许是因为用户正在运行Applet ,用户的GBase server 安装时设置了
“--skip-networking”选项,或者是由于GBase server 运行在防火墙之后。
Applet 仅能使网络连接返回运行Web 服务器的机器,该Web 服务器提供了用于
Applet 的.class 文件。
这意味着,
要想使其工作,
GBase 必须运行在相同的机器上
(或
必须使某类端口重定向)。这也意味着,你无法通过你的本地文件系统来测试Java
程序,你必须将它们放在Web 服务器上。
由于Java 不支持Unix Domain 套接字,
GBase JDBC 只能使用TCP/IP 与GBase 通
信。如果GBase 启动时带有“--skip-networking”标志,或有防火墙,与GBase 的
TCP/IP 通信可能会受到影响。
如果GBase 启动时设置了“--skip-networking”选项,用户可以在文件 /etc/gs.cnf 中
把它注释掉。如果用户的GBase server 在防火墙后,那么用户需要修改防火墙配置
使得允许运行用户的Java 代码的主机在GBase 侦听的端口(缺省为5258)上给
GBase server 进行连接。

数据库对象尺寸函数
数据库对象尺寸函数计算数据库对象使用的实际磁盘空间。

pg_column_size(any)
描述:存储一个指定的数值需要的字节数(可能压缩过)

返回值类型:int
备注:pg_column_size 显示用于存储某个独立数据值的空间。
gbase=# SELECT pg_column_size(1);
pg_column_size
----------------
4
(1 row)

pg_database_size(oid)
描述:指定OID 代表的数据库使用的磁盘空间。
返回值类型:bigint

pg_database_size(name)
描述:指定名称的数据库使用的磁盘空间。
返回值类型:bigint
备注:pg_database_size 接受一个数据库的OID 或者名称,然后返回该对象使用的全部
磁盘空间。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
450
示例:
gbase=# SELECT pg_database_size('postgres');
pg_database_size
------------------
30840684
(1 row)

pg_relation_size(oid)
描述:指定OID 代表的表或者索引所使用的磁盘空间。
返回值类型:bigint

get_db_source_datasize()
描述:估算当前数据库非压缩态的数据总容量。
返回值类型:bigint
备注:
(1)调用该函数前需要做analyze;
(2)通过估算列存的压缩率计算非压缩态的
数据总容量。
示例:
gbase=# analyze;
ANALYZE
gbase=# select get_db_source_datasize();
get_db_source_datasize
------------------------
31029100
(1 row)

pg_relation_size(text)
描述:指定名称的表或者索引使用的磁盘空间。表名称可以用模式名修饰。
返回值类型:bigint

pg_relation_size(relation regclass, fork text)
描述:指定表或索引的指定分叉树('main','fsm'或'vm')使用的磁盘空间。
返回值类型:bigint

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
451

pg_relation_size(relation regclass)
描述:pg_relation_size(…, 'main')的简写。
返回值类型:bigint
备注:pg_relation_size 接受一个表、索引、压缩表的OID 或者名称,然后返回它们的
字节大小。

pg_partition_size(oid,oid)
描述:指定OID 代表的分区使用的磁盘空间。其中,第一个oid 为表的OID,第二个
oid 为分区的OID。
返回值类型:bigint

pg_partition_size(text, text)
描述:指定名称的分区使用的磁盘空间。其中,第一个text 为表名,第二个text 为分区
名。
返回值类型:bigint

pg_partition_indexes_size(oid,oid)
描述:指定OID 代表的分区的索引使用的磁盘空间。其中,第一个oid 为表的OID,
第二个oid 为分区的OID。
返回值类型:bigint

pg_partition_indexes_size(text,text)
描述:指定名称的分区的索引使用的磁盘空间。其中,第一个text 为表名,第二个text
为分区名。
返回值类型:bigint

pg_indexes_size(regclass)
描述:附加到指定表的索引使用的总磁盘空间。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
452
返回值类型:bigint

pg_size_pretty(bigint)
描述:将以64 位整数表示的字节值转换为具有单位的易读格式。
返回值类型:text

pg_size_pretty(numeric)
描述:将以数值表示的字节值转换为具有单位的易读格式。
返回值类型:text
备注:pg_size_pretty 用于把其他函数的结果格式化成一种易读的格式,可以根据情况
使用KB 、MB 、GB 、TB。

pg_table_size(regclass)
描述:指定的表使用的磁盘空间,不计索引(但是包含TOAST,自由空间映射和可见
性映射)

返回值类型:bigint

pg_tablespace_size(oid)
描述:指定OID 代表的表空间使用的磁盘空间。
返回值类型:bigint

pg_tablespace_size(name)
描述:指定名称的表空间使用的磁盘空间。
返回值类型:bigint
备注:pg_tablespace_size 接受一个数据库的OID 或者名称,然后返回该对象使用的全
部磁盘空间。

pg_total_relation_size(oid)
描述:指定OID 代表的表使用的磁盘空间,包括索引和压缩数据。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
453
返回值类型:bigint

pg_total_relation_size(regclass)
描述:指定的表使用的总磁盘空间,包括所有的索引和TOAST 数据。
返回值类型:bigint

pg_total_relation_size(text)
描述:指定名称的表所使用的全部磁盘空间,
包括索引和压缩数据。
表名称可以用模式
名修饰。
返回值类型:bigint
备注:pg_total_relation_size 接受一个表或者一个压缩表的OID 或者名称,然后返回以
字节计的数据和所有相关的索引和压缩表的尺寸。

datalength(any)
描述:计算一个指定的数据需要的字节数(不考虑数据的管理空间和数据压缩、数据类
型转换等情况)

返回值类型:int
备注:datalength 用于计算某个独立数据值的空间。
示例:
gbase=# SELECT datalength(1);
datalength
------------
4
(1 row)
目前支持的数据类型及计算方式见表5-25。
表5-25 数据类型及计算方式
数据类型
存储空间
值类型
整数类型
TINYINT
1

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
454
SMALLINT
2
INTEGER
4
BINARY_INTEGER
4
BIGINT
8
任意精度型
DECIMAL
每4 位十进制数占两个字节,小数
点前后数字分别计算
NUMERIC
每4 位十进制数占两个字节,小数
点前后数字分别计算
NUMBER
每4 位十进制数占两个字节,小数
点前后数字分别计算
序列整型
SMALLSERIAL
2
SERIAL
4
LARGESERIAL
8
BIGSERIAL
每4 位十进制数占两个字节,小数
点前后数字分别计算
浮点类型
FLOAT4
4
DOUBLE
PRECISION
8
FLOAT8
8
BINARY_DOUBLE
8
FLOAT[(p)]
每4 位十进制数占两个字节,小数
点前后数字分别计算
DEC[(p[,s])]
每4 位十进制数占两个字节,小数
点前后数字分别计算
INTEGER[(p[,s])]
每4 位十进制数占两个字节,小数
点前后数字分别计算
布尔类型
布尔类型
BOOLEAN
1

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
455
字符类型
字符类型
CHAR
n
CHAR(n)
n
CHARACTER(n)
n
NCHAR(n)
n
VARCHAR(n)
n
CHARACTER
字符实际字节数
VARYING(n)
字符实际字节数
VARCHAR2(n)
字符实际字节数
NVARCHAR(n)
字符实际字节数
NVARCHAR2(n)
字符实际字节数
TEXT
字符实际字节数
CLOB
字符实际字节数
时间类型
时间类型
DATE
8
TIME
8
TIMEZ
12
TIMESTAMP
8
TIMESTAMPZ
8
SMALLDATETIME
8
INTERVAL DAY
TO SECOND
16
INTERVAL
16
RELTIME
4
ABSTIME
4
TINTERVAL
12

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
456

Level
1+ 标准的 GBase
8s 实现,它支持 Microsoft™ Transaction Server (MTS)。该驱
动程序包含对 GBase 8s 的可扩展性支持。
有关更多信息,请参阅《GBase
8s
ODBC
Driver 程序员手册》。

下表描述了 Client SDK 中的 GBase 8s 常用数据库实用程序。
表 2. GBase 8s 常用数据库实用程序

GBase 8s 客户机产品安装指南
南大通用数据技术股份有限公司 - 5 -
组件
描述
Documentation Viewer 该查看器使您可以文本格式查看发行版和机器说明。
UNIX™ 系统上的
finderr 实用程序
这些实用程序使您可以获得特定于 GBase 8s 错误消息的相关信
息,包括纠正操作。
Password CSM
用于客户机应用程序的 GBase 8s 密码通信支持模块。同时,必
须在客户机将要连接的 GBase
8s 数据库服务器上安装 Password
CSM。要验证您的 GBase 8s 数据库服务器是否支持此功能部件,
请参阅《GBase 8s 管理员指南》。
连接管理器
连接管理器是一种守护程序实用程序,它可以在高可用性集群中
监视所有节点的工作负载和状态。此实用程序可将客户机应用程
序连接请求引导到集群中的相应服务器,并可在主节点发生故障
时自动执行服务器故障转移。
DB-Access
如果为同一个操作系统提供了对应的 GBase 8s 服务器版本,那
么 GBase 8s Client SDK 中将包含 DB-Access 实用程序。如果
Client SDK 中包含 DB-Access 实用程序,那么该实用程序为
GBase 8s 服务器随附的同一个实用程序。 该实用程序提供一个
独立的客户机命令行工具,该工具可直接访问 GBase 8s 数据库
实例。此 dbaccess 客户机与 dbaccess 服务器实用程序支持相
同的用户界面和功能。
在客户机上运行的应用程序需要 GBase
8s
Connect 才可访问数据库服务器。GBase
8s
Connect 是运行时刻连接产品,它由包含在 Client SDK 中的运行时刻库组成。