返回首页

gbase数据、南大通用产品文档:GBase8a准备操作系统

更新日期:2024年09月11日

每台服务器已安装软件要求章节中指定的操作系统。
GBase 8a MPP Cluster 各节点操作系统需要符合以下要求:
表3- 1 操作系统安装检查表
检查项
检查内容要求
操作系统配置&软件包
1、安装模式选择:
RedHat 6:选择“软件开发工作站”方式;
RedHat 7:选择“带GUI 的服务器”+“开发工具”;
Centos 8:选择“带GUI 的服务器”+“开发工具”;
SUSE:建议选上“c/c++编译器和工具”。
2、能正常执行kill all 命令。
该命令需要psmisc 包的支持。
psmisc 包不属于默认安装包,
如果未安装,需要单独安装以确保kill all 命令可以执行。
3、确认安装libcgroup 包
libcgroup 包不属于默认安装包,需要单独安装,该包被资
源管理功能需要。
4、安装的python 版本必须为python 2
RedHat 6/7 python2 无需单独安装,系统安装时默认自带。
Redhat8/Centos8 需要单独安装python2,安装完python2 后
使用的命令为python2,需要将python2 命令改为默认的
python 命令:alternatives --set python /usr/bin/python2
(Centos 8 自带python2 和python3 的安装包,在AppStream
目录中)
操作系统版本
集群中同一VC 内节点的操作系统版本一致
磁盘分区大小和磁盘
分区文件格式
1、磁盘分区格式:
RHEL 6.X:EXT4 文件格式;
RHEL 7.X:XFS 文件格式;
SUSE: XFS 文件格式。
2、
磁盘分区大小符合建议的最低磁盘空间大小要求或以上。
Swap 分区设置
1、
大小设置:
低于64G 内存的机器建议Swap 和内存一致;
高于64G 内存的机器建议设置为内存的一半或者64G。

GBase 8a MPP Cluster 产品手册
3 集群安装升级与卸载
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
41
检查项
检查内容要求
2、位置设置:建议操作系统中Swap 文件与数据文件放到
不同的磁盘。
CPU 配置
建议关闭超线程、关闭CPU 自动降频。高负载的情况下开
超线程会增加等待时间。
符合最低配置要求或以上。
内存
符合建议的最低内存要求或以上。
主机名配置
符合方案要求。
主机名(域名)需小于46 字符
网络
1、网卡IP 配置正确;
2、集群节点间网络互通。
端口号占用情况
检查集群中的所有节点中集群所有服务默认端口
(参见默认
端口列表)没有被占用。
防火墙设置
1、无强安全要求,关闭防火墙;
2、有强安全要求,开启集群所有服务默认端口(参见默认
端口列表和端口参考列表)的权限。
系统时间
要求整个集群中的系统时间一致,最好配置时钟同步。
sshd 服务状态
各节点的sshd 服务正常开启,
并确认sshd 服务所用端口号。
虚拟内存配置
确认virtual memory 配置模式为unlimited。
透明页和I/O 调度参数
设置
确认elevator 参数值设置为deadline;
Transparent_hugepate 参数设置为never。
操作系统允许最大进
程数设置
针对Redhat7.x 或SUSE12,需要设置
DefaultTasksMax=infinity。
集群安装及运行用户
1、确认集群各节点在安装前存在集群的安装及运行用户。
2、确认集群安装及运行用户对安装目录具有读写权限。
操作系统环境检查
安装前执行配置脚本。
上述部分检查的命令参考如下,默认的验证版本如下表:
表3- 2 验证命令操作系统版本
操作系统
以下参考命令验证版本
RedHat 6
RedHat 6.2
RedHat 7
RedHat 7.3
Centos 8
Centos 8.0
SUSE
SUSE 11 sp3

GBase 8a MPP Cluster 产品手册
3 集群安装升级与卸载
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
42

客体所有者规定并控制对客体的访问,并阻止非授权用户对客体的访问
1. sysdba 登录企业管理器,点击”新建查询“,打开 SQL 编辑器执行以下语
句,
创建用户 user1、
user2,
创建数据库 db1,
创建表 t1,
授予 sysdsa 对
表 t1 的访问权限:
create user user1 with password ‘GBase123’ subject ‘root’ issuer
‘GBASECA’;
create user user2 with password ‘GBase123’ subject ‘root’ issuer
‘GBASECA’;
drop database if exists db1;
create database db1 with log;
create table t1(c1 int,c2 varchar(50));
grant alter on t1 to sysdsa;
2. sysdsa 连接库 db1,
登录安全管理器,
给用户 sysdba、
user1、
user2、
user3

GBase 8s 安全技术指南
南大通用数据技术股份有限公司
- 38 -

和表 t1 均打相同标签 lb11;
3. sysdba 登录企业管理器,
连接库 db1,
新建查询,
向表中插入数据(1,’
a’
),
授予用户 user1、user2 对库 db1 的 connect 权限,收回 public 用户对
表 t1 的所有权限,授予用户 user1 对表 t1 的 select 权限:
insert into t1 values(1,’a’);
grant connect to user1;
grant connect to user2;
revoke all on t1 from public;
grant select on t1 to user1;
4. user1 登录企业管理器,新建查询,user1 能正常查询表 t1
select * from t1;
5. user2 登录企业管理器,并尝试查询表t1,报错没有 select 权限:
select * from t1;

功能描述
FETCH 通过已创建的游标来检索数据。
每个游标都有一个供FETCH 使用的关联位置。游标的关联位置可以在查询结果的第一
行之前,或者在结果中的任意行,或者在结果的最后一行之后:
游标刚创建完之后,关联位置在第一行之前的。
在抓取了一些移动行之后,关联位置在检索到的最后一行上。
如果FETCH 抓取完了所有可用行,它就停在最后一行后面,或者在反向抓取的情况下
是停在第一行前面。
FETCH ALL 或FETCH BACKWARD ALL 将总是把游标的关联位置放在最后一行或者
在第一行前面。
注意事项
如果游标定义了NO SCROLL,则不允许使用例如FETCH BACKWARD 之类的反向抓
取。
NEXT、PRIOR、FIRST、LAST、ABSOLUTE、RELATIVE 形式在恰当地移动游标之
后抓取一条记录。如果后面没有数据行,
就返回一个空的结果,
此时游标就会停在查询结果
的最后一行之后(向后查询时)或者第一行之前(向前查询时)。
FORWARD 和BACKWARD 形式在向前或者向后移动的过程中抓取指定的行数,然后
把游标定位在最后返回的行上;或者是,如果count 大于可用的行数,则在所有行之后(向
后查询时)或者之前(向前查询时)。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1155
RELATIVE 0、FORWARD 0、BACKWARD 0 都要求在不移动游标的前提下抓取当前
行,也就是重新抓取最近刚抓取过的行。
除非游标定位在第一行之前或者最后一行之后,这
个动作都应该成功,而在那两种情况下,不返回任何行。
当FETCH 的游标上涉及列存表时,
不支持BACKWARD、
PRIOR 等涉及反向获取操作。
语法格式
FETCH [ direction { FROM | IN } ] cursor_name;
其中direction 子句为可选参数。
NEXT
| PRIOR
| FIRST
| LAST
| ABSOLUTE count
| RELATIVE count
| count
| ALL
| FORWARD
| FORWARD count
| FORWARD ALL
| BACKWARD
| BACKWARD count
| BACKWARD ALL
参数说明

direction_clause
定义抓取数据的方向。
取值范围:

NEXT(缺省值)
从当前关联位置开始,抓取下一行。

PRIOR
从当前关联位置开始,抓取上一行。

FIRST

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1156
抓取查询的第一行(和ABSOLUTE 1 相同)。

LAST
抓取查询的最后一行(和ABSOLUTE -1 相同)。

ABSOLUTE count
抓取查询中第count 行。
ABSOLUTE 抓取不会比用相对位移移动到需要的数据行更快,因为下层的实现必须遍
历所有中间的行。
count 取值范围:有符号的整数
count 为正数,就从查询结果的第一行开始,抓取第count 行。
count 为负数,就从查询结果末尾抓取第abs(count)行。
count 为0 时,定位在第一行之前。

RELATIVE count
从当前关联位置开始,抓取随后或前面的第count 行。
取值范围:有符号的整数
count 为正数就抓取当前关联位置之后的第count 行。
count 为负数就抓取当前关联位置之前的第abs(count)行。
如果当前行没有数据的话,RELATIVE 0 返回空。

count
抓取随后的count 行(和FORWARD count 一样)。

ALL
从当前关联位置开始,抓取所有剩余的行(和FORWARD ALL 一样)。

FORWARD

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1157
抓取下一行(和NEXT 一样)。

FORWARD count
从当前关联位置开始,抓取随后或前面的count 行。

FORWARD ALL
从当前关联位置开始,抓取所有剩余行。

BACKWARD
从当前关联位置开始,抓取前面一行(和PRIOR 一样) 。

BACKWARD count
从当前关联位置开始,抓取前面的count 行(向后扫描)。
取值范围:有符号的整数
count 为正数就抓取当前关联位置之前的count 行。
count 为负数就抓取当前关联位置之后的abs(count)行。
如果有数据的话,BACKWARD 0 重新抓取当前行。

BACKWARD ALL
从当前关联位置开始,抓取所有前面的行(向后扫描)。

{ FROM | IN } cursor_name
使用关键字FROM 或IN 指定游标名称。
取值范围:已创建的游标的名称。
示例
--SELECT 语句,用一个游标读取一个表。开始一个事务。
gbase=#START TRANSACTION;
--建立一个名为cursor1 的游标。
gbase=#CURSOR cursor1 FOR SELECT * FROM tpcds.customer_address ORDER BY 1;
--抓取头3 行到游标cursor1 里。
gbase=#FETCH FORWARD 3 FROM cursor1;

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1158
ca_address_sk |
ca_address_id
| ca_street_number |
ca_street_name
|
ca_street_type
| ca_suite_number |
ca_city
|
ca_county
|
ca_state |
ca_zip
|
ca_country
| ca_gmt_offset |
ca_location_type
---------------+------------------+------------------+--------------------+--
---------------+-----------------+-----------------+-----------------+-------
---+------------+---------------+---------------+----------------------
1 | AAAAAAAABAAAAAAA | 18
| Jackson
|
Parkway
| Suite 280
| Fairfield
| Maricopa County | AZ
| 86192
| United States |
-7.00 | condo
2 | AAAAAAAACAAAAAAA | 362
| Washington 6th
| RD
| Suite 80
| Fairview
| Taos County
| NM
| 85709
|
United States |
-7.00 | condo
3 | AAAAAAAADAAAAAAA | 585
| Dogwood Washington |
Circle
| Suite Q
| Pleasant Valley | York County
| PA
| 12477
| United States |
-5.00 | single family
(3 rows)
--关闭游标并提交事务。
gbase=#CLOSE cursor1;
--结束一个事务。
gbase=#END;
--VALUES 子句,用一个游标读取VALUES 子句中的内容。开始一个事务。
gbase=#START TRANSACTION;
--建立一个名为cursor2 的游标。
gbase=#CURSOR cursor2 FOR VALUES(1,2),(0,3) ORDER BY 1;
--抓取头2 行到游标cursor2 里。
gbase=#FETCH FORWARD 2 FROM cursor2;
column1 | column2
---------+---------
0 |
3
1 |
2
(2 rows)
--关闭游标并提交事务。
gbase=#CLOSE cursor2;
--结束一个事务。
gbase=#END;
--WITH HOLD 游标的使用,开启事务。
gbase=#START TRANSACTION;
--创建一个with hold 游标。
gbase=#DECLARE cursor1 CURSOR WITH HOLD FOR SELECT * FROM tpcds.customer_address
ORDER BY 1;
--抓取头2 行到游标cursor1 里。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1159
gbase=#FETCH FORWARD 2 FROM cursor1;
ca_address_sk |
ca_address_id
| ca_street_number |
ca_street_name
|
ca_street_type
| ca_suite_number |
ca_city
|
ca_county
|
ca_state |
ca_zip
|
ca_country
| ca_gmt_offset |
ca_location_type
---------------+------------------+------------------+--------------------+--
---------------+-----------------+-----------------+-----------------+-------
---+------------+---------------+---------------+----------------------
1 | AAAAAAAABAAAAAAA | 18
| Jackson
|
Parkway
| Suite 280
| Fairfield
| Maricopa County | AZ
| 86192
| United States |
-7.00 | condo
2 | AAAAAAAACAAAAAAA | 362
| Washington 6th
| RD
| Suite 80
| Fairview
| Taos County
| NM
| 85709
|
United States |
-7.00 | condo
(2 rows)
--结束事务。
gbase=#END;
--抓取下一行到游标cursor1 里。
gbase=#FETCH FORWARD 1 FROM cursor1;
ca_address_sk |
ca_address_id
| ca_street_number |
ca_street_name
|
ca_street_type
| ca_suite_number |
ca_city
|
ca_county
|
ca_state |
ca_zip
|
ca_country
| ca_gmt_offset |
ca_location_type
---------------+------------------+------------------+--------------------+--
---------------+-----------------+-----------------+-----------------+-------
---+------------+---------------+---------------+----------------------
3 | AAAAAAAADAAAAAAA | 585
| Dogwood Washington |
Circle
| Suite Q
| Pleasant Valley | York County
| PA
| 12477
| United States |
-5.00 | single family
(1 row)
--关闭游标。
gbase=#CLOSE cursor1;
使用动态游标/自动游标。
CREATE FUNCTION reffunc2() RETURNS refcursor AS '
DECLARE
ref refcursor;
BEGIN
OPEN ref FOR SELECT col FROM test;
RETURN ref;
END;
' LANGUAGE plpgsql;

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1160
-- 需要在一个事务中使用游标。
BEGIN;
SELECT reffunc2();
reffunc2
--------------------

(1 row)
FETCH ALL IN "";
COMMIT;
相关命令
CLOSE,MOVE