返回首页

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

更新日期:2024年09月11日

Incorrect fetch size value
使用无效值调用 Statement.setFetchSize() 方法。验证传入的值是大于 0 的。如
果 setMaxRows() 方法已经被调用,则访存大小不能超出此值。

操作步骤
请在执行下面的安装步骤前先获取license 文件。
步骤1 :获取安装包并解压:
1.
复制安装包到文件系统的某个目录下,拷贝命令参考如下:
# cp
/tmp/GBase8a_MPP_Cluster-NoLicense-9.5.3.17-redhat7.3-x86_64.tar.bz2
/opt
2.
进入该目录,在命令行模式下使用tar 命令进行解压。解压命令如下:
#cd /opt
# tar xjf
GBase8a_MPP_Cluster-NoLicense-9.5.3.17-redhat7.3-x86_64.tar.bz2
3.
解压后,将会在解压目录下生成gcinstall 目录:
# ls /opt
gcinstall
步骤2 :创建DBA 用户并配置权限
1.
使用操作系统root 用户在所有集群节点服务器上创建DBA 用户。
安装示例中DBA 用户以gbase 为例,
本手册中不做特殊说明均默认以gbase 为DBA
用户。
# useradd gbase
# passwd gbase

GBase 8a MPP Cluster 产品手册
3 集群安装升级与卸载
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
65
2.
使用root 用户将gcinstall 目录属主更改为DBA 用户
# chown –R gbase:gbase gcinstall
3.
使用root 用户将安装目录的属主更改为DBA 用户
安装目录是由demo.options 文件中installPrefix 参数指定的软件安装目录,默认是
/opt
# chown –R gbase:gbase /opt
4.
使用root 用户在所有节点上给DBA 用户赋予安装GBase 相关的权限
使用root用户将gcinstall目录下的SetSysEnv.py文件拷贝到集群所有节点服务器上,
并执行该文件。
# scp SetSysEnv.py
root@192.168.146.21:/opt
# /opt/SetSysEnv.py
--dbaUser=gbase --installPrefix=/opt
SetSysEnv.py 语法说明:
# python SetSysEnv.py --dbaUser=* --installPrefix=* [--cgroup]
步骤3:切换到DBA 用户,并修改安装配置文件参数。
进入解压后的gcinstall 目录,
根据实际的集群环境修改安装参数文件demo.options,
具体操作如下:
#su - gbase
$ vi /opt/gcinstall/demo.options
installPrefix= /opt
coordinateHost = 192.168.146.20,192.168.146.21,192.168.146.22
参数名称


--installPrefix=INSTALLPREFIX
用户可配安装目录,必须为demo.options 中
installPrefix。集群日志按归档功能使用该参数。
--dbaUser=DBAUSER
必须为demo.options 中的dbaUser。
--cgroup
使用资源管理功能时,主要用于修改资源管理配
置文件。在使用资源管理前必须执行。
注意
安装之前,需要在gcluster 节点和gnode 节点上使用root 用户执行安装包中提供的一键
部署脚本SetSysEnv.py。如果GCware 节点独立部署在单独的服务器上,GCware 节
点不需要执行SetSysEnv.py 文件。
1.
将该脚本拷贝到要安装集群的各个节点,每个节点都需要使用root 执行;
2.
集群各个节点在安装之前,必须存在集群的安装用户,且拥有安装目录的
读写权限

GBase 8a MPP Cluster 产品手册
3 集群安装升级与卸载
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
66
coordinateHostNodeID = 20,21,22
dataHost =

代表一个GBase 数据库中的事务。这个类不能被继承。对于该类型的所有
成员,参考GBaseTransaction 成员。

继承层次
System.Object
|__ System.MarshalByRefObject
|__ System.Data.Common.DbTransaction
|__ GBase.Data.GBaseClient.GBaseTransaction

语法
[Visual Basic]
Public NotInheritable Class GBaseTransaction _
Inherits DbTransaction
[C#]
public sealed class GBaseTransaction : DbTransaction

必要条件



GBase 8a 程序员手册ADO.NET 篇
南大通用数据技术股份有限公司

- 323 -
命名空间:GBase.Data.GBaseClient

线程安全性
这个类型的公共静态成员(在Visual Basic 中为 Shared)对于多线程操作
是保证线程安全的,对于实例不保证线程安全性。

注释
程序通过在GBaseConnection 对象上调用BeginTransaction 来创建一个
GBaseTransaction 对象。
所有后面关于事务的操作
(例如:
提交或者回滚事务)
都在GBaseTransaction 对象上进行。

示例
下面的例子创建了一个GBaseConnection 和一个GBaseTransaction 对象,
还示范了如何使用BeginTransaction、Commit 和Rollback 方法。
[Visual Basic]
Public Sub RunTransaction(gsConnString As String)
Dim gsConnection As New GBaseConnection(gsConnString)
gsConnection.Open()
Dim gsCommand As GBaseCommand = gsConnection.CreateCommand()
Dim gsTrans As GBaseTransaction
' Start a local transaction
gsTrans = gsConnection.BeginTransaction()
' Must assign both transaction object and connection
' to Command object for a pending local transaction
gsCommand.Connection = gsConnection
gsCommand.Transaction = gsTrans
Try
gsCommand.CommandText = "Insert into Region ("_
&"RegionID,"_
&"RegionDescription)VALUES (100, "_
&"Description')"
gsCommand.ExecuteNonQuery()
gsCommand.CommandText = "Insert into Region ("_
&"RegionID, "_

GBase 8a 程序员手册ADO.NET 篇


- 324 -

南大通用数据技术股份有限公司
&"RegionDescription) VALUES (101, "_
&"'Description')"
gsCommand.ExecuteNonQuery()
gsTrans.Commit()
Console.WriteLine("Both records are written to
database.")
Catch e As Exception
Try
gsTrans.Rollback()
Catch ex As GBaseException
If Not gsTrans.Connection Is Nothing Then
Console.WriteLine("An exception of type " &_
ex.GetType().ToString() &_
" was encountered
while
attempting to roll back
the
transaction.")
End If
End Try
Console.WriteLine("An exception of type "& _
e.GetType().ToString()&_
"was encountered while inserting the data.")
Console.WriteLine("Neither record was written to
database.")
Finally
gsConnection.Close()
End Try
End Sub 'RunTransaction

[C#]
public void RunTransaction(string gsConnString)
{
GBaseConnection gsConnection = new
GBaseConnection(gsConnString);
gsConnection.Open();
GBaseCommand gsCommand = gsConnection.CreateCommand();
GBaseTransaction gsTrans;
// Start a local transaction
gsTrans = gsConnection.BeginTransaction();



GBase 8a 程序员手册ADO.NET 篇
南大通用数据技术股份有限公司

- 325 -
// Must assign both transaction object and connection
// to Command object for a pending local transaction
gsCommand.Connection = gsConnection;
gsCommand.Transaction = gsTrans;
try
{
gsCommand.CommandText = "Insert into Region (RegionID,
RegionDescription) VALUES (100, 'Description')";
gsCommand.ExecuteNonQuery();

gsCommand.CommandText = "Insert into Region (RegionID,
RegionDescription) VALUES (101, 'Description')";
gsCommand.ExecuteNonQuery();
gsTrans.Commit();
Console.WriteLine("Both
records
are
written
to
database.");
}
catch(Exception e)
{
try
{
gsTrans.Rollback();
}
catch (GBaseException ex)
{
if (gsTrans.Connection != null)
{
Console.WriteLine("An exception of type " +
ex.GetType() +" was encountered while attempting to roll back the
transaction.");
}
}
Console.WriteLine("An exception of type " + e.GetType() +
" was encountered while inserting
the data.");
Console.WriteLine("Neither record was written to
database.");
}
finally

GBase 8a 程序员手册ADO.NET 篇


- 326 -

南大通用数据技术股份有限公司
{
gsConnection.Close();
}
}