返回首页

gbase数据、南大通用产品文档:GBase8s高效的事务并发控制和管理机制

更新日期:2024年09月11日


GBase 8s V8.8 技术白皮书
南大通用数据技术股份有限公司
第41页
GBase 8s 在事务处理上采用以行级为主、表级为辅的锁技术来实现高效的
事务处理。这些技术在保证事务ACID 特征的前提下大大提高了事务的并发处
理能力。
GBase 8s 通过对死锁监测,会自动检测一个事务的死锁并回滚一个或多个
事务来防止死锁,并设法提取小的事务来进行回滚,从而降低由于回滚造成的
大量磁盘刷新以提高性能。

功能说明
如果要访问非当前VC 的库表,需要显式指定VC name。访问当前VC 的库表可以
省略VC name。

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
208
示例
gbase> select * from vc1.db1.t1;
+------+------+
| a
| b
|
+------+------+
|
1 | test |
+------+------+
1 row in set (Elapsed: 00:00:00.02)

Linux 下配置数据源
将GBase 8c 提供的ODBC DRIVER(psqlodbcw.so)配置到数据源中便可使用。配置数
据源需要配置“odbc.ini”和“odbcinst.ini”两个文件
(在编译安装unixODBC 过程中生成且默认
放在“/usr/local/etc”目录下),并在服务器端进行配置。
操作步骤
步骤1 获取unixODBC 源码包。
获取参考地址:https://sourceforge.net/projects/unixodbc/files/unixODBC/2.3.9/
unixODBC-2.3.9pre.tar.gz/download
步骤2 安装unixODBC。
如果机器上已经安装了其他版本的unixODBC,
可以直接覆盖安装。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
90
目前不支持unixODBC-2.2.1 版本。以unixODBC-2.3.0 版本为例,在客户端执行如下命
令安装unixODBC。默认安装到“/usr/local”目录下,生成数据源文件到“/usr/ local/etc”目录
下,库文件生成在“/usr/local/lib”目录。
步骤3 替换客户端驱动程序。
(1)
解压tar 包。解压后会得到两个文件夹:lib 与odbc,在odbc 文件夹中还会有一个lib
文件夹。
/odbc/lib 中会有“psqlodbca.la”,“psqlodbca.so”,
“psqlodbcw.la”和“psqlodbcw.so”
四个文件,将这四个文件拷贝到“/usr/local/lib”目录下。
(2)
将lib 目录中的库拷贝到“/usr/local/lib”目录下。
步骤4 配置数据源。
(1)
配置ODBC 驱动文件。
在“/usr/local/etc/odbcinst.ini”文件中追加以下内容。
[GaussMPP] Driver64=/usr/local/lib/psqlodbcw.so setup=/usr/local/lib/psqlodbcw.so
odbcinst.ini 文件中的配置参数说明如表6-8 所示。
表6-8 odbcinst.ini 文件配置参数
参数
描述
示例
[DriverName]
驱动器名称,对应数据源
DSN 中的驱动名。
[DRIVER_N]
Driver64
驱动动态库的路径。
Driver64=/usr/local/lib/
psqlodbcw.so
setup
驱动安装路径,与Driver64
中动态库的路径一致。
setup=/usr/local/lib/
psqlodbcw.so
(2)
配置数据源文件。
在“/usr/local/etc/odbc.ini”文件中追加以下内容。
[MPPODBC]
Driver=GaussMPP
Servername=10.145.130.26
(数据库Server IP)Database=postgres(数
据库名)Username=gbase (数据库用户名)Password= (数据库用户密码)
Port=15432 (数据库侦听端口)
Sslmode=allow
odbc.ini 文件配置参数说明如表6-9 所示。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
91
表6-9 odbc.ini 文件配置参数
参数
描述
示例
[DSN]
数据源的名称。
[MPPODBC]
Driver
驱动名,对应odbcinst.ini 中的
DriverName。
Driver=DRIVER_N
Servername
服务器的IP 地址。可配置多个
IP 地址。
Servername=10.145.130.2 6
Database
要连接的数据库的名称。
Database=postgres
Username
数据库用户名称。
Username=gbase
Password
数据库用户密码。
Password=
说明
ODBC 驱动本身已经对内存密码进
行过清理,
以保证用户密码在连接后
不会再在内存中保留。
但是如果配置了此参数,由于
UnixODBC 对数据源文件等进行缓
存,可能导致密码长期保留在内存
中。
推荐在应用程序连接时,
将密码传递
给相应API,而非写在数据源配置文
件中。同时连接成功后,应当及时清
理保存密码的内存段。
Port
服务器的端口号。
Port=15432
Sslmode
开启SSL 模式
Sslmode=allow
Debug
设置为1 时,将会打印psqlodbc
驱动的mylog,日志生成目录为
/tmp/。设置为0 时则不会生成。
Debug=1
UseServerSidePrep
are
是否开启数据库端扩展查询协
议。
可选值0 或1,默认为1,表示
UseServerSidePrepare=1

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
92
打开扩展查询协议。
UseBatchProtocol
是否开启批量查询协议(打开可
提高DML 性能)

可选值0 或
者1,默认为1。
当此值为0 时,不使用批量查询
协议(主要用于与早期数据库版
本通信兼容)。
当此值为1 ,并且数据库
support_batch_bind 参数存在且
为on 时,将打开批量查询协议。
UseBatchProtocol=1
ForExtensionConn
ect or
这个开关控制着savepoint 是否
发送,
savepoint 相关问题可以注
意这个开关。
ForExtensionConnector=1
UnamedPrepStmtT
hr eshold
每次调用SQLFreeHandle 释放
Stmt 时,
ODBC 都会向server 端
发送一个Deallocate plan_name
语句,业务中存在大量这类语
句。为了减少这类语句的发送,
我们将stmt->plan_name 置空,
从而使得数据库识别这个为
unamed stmt。增加这个参数对
unamed stmt 的阈值进行控制。
UnamedPrepStmtThresho ld=100
ConnectionExtraIn
fo
GUC 参数connection_info
(参见
connection_info)中显示驱动部
署路径和进程属主用户的开关。
ConnectionExtraInfo=1
说明
默认值为0。当设置为1 时,ODBC
驱动会将当前驱动的部署路径、
进程
属主用户上报到数据库中,记录在
connection_info





connection_info )里;同时可以在