返回首页

gbase数据、南大通用产品文档:GBase8s事务处理

更新日期:2024年09月11日


GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 26 -

事务隔离级别和事务模式的 GBase 8s ODBC Driver 实现与这些特性的 Microsoft™
ODBC 实现略有不同。
下列主题描述 GBase 8s ODBC Driver 中事务隔离级别和事务模式的实现。
事务隔离级别
GBase 8s ODBC Driver 支持 GBase 8s 数据库服务器的三个事务隔离级别。
对于 GBase 8s 数据库服务器,下表罗列 GBase 8s ODBC Driver 支持的事务隔离级别。

数据库服务器
事务隔离级别
GBase 8s

SQL_TXN_READ_COMMITTED

SQL_TXN_READ_UNCOMMITTED

SQL_TXN_SERIALIZABLE
缺省的事务隔离级别为 SQL_TXN_READ_COMMITTED。要更改事务隔离级别,请以
SQL_TXN_ISOLATION 的 fOption 值来调用 SQLSetConnectOption()。
要获取关于事务隔离级别的更多信息,请参阅《GBase 8s ODBC Driver 程序员指南》中
的 SQL_DEFAULT_TXN_ISOLATION 和 SQL_TXN_ISOLATION_OPTION 描述。
更改事务模式
您可将事务模式从它缺省的 auto-commit 更改为 manual commit。
要将事务模式更改为 manual commit,请:
1.
为数据库服务器启用事务日志记录。
要获取关于事务日志记录的信息,请参阅 GBase 8s 管理员指南。
2.
调用 SQLSetConnectOption(),将 SQL_AUTOCOMMIT 设置为
SQL_AUTOCOMMIT_OFF。

函数说明
返回expr 的标准方差(standard variance)。这是对标准SQL 的扩展。标准SQL
函数VAR_POP()可以代替使用。
示例
示例1:
gbase> SELECT `users`.u_name , VARIANCE(orders.amount) FROM users,
orders WHERE users.u_id = orders.u_id GROUP BY `users`.u_name
ORDER BY
`users`.u_name LIMIT 2;
+------------+-------------------------+
| u_name
| VARIANCE(orders.amount) |
+------------+-------------------------+
| li
|

Hadoop 启用Kerberos 认证后加载导出失败
问题现象
现场Hadoop 启用Kerberos 认证后加载导出失败,报错:Get token operation
failed
with
error:
No
credentials
cache
found
(filename:
/tmp/krb5cc_3000_gcluster/tkt),
uri:
hdp://app_gbtoh@ip_xxx_xxx_xxx:50070/...

GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
154
解决方法:
Hadoop 启用Kerberos 认证后加载出现问题,建议排查问题方法如下:
a) 先检查8a 环境gbase_hdfs_xxx 参数配置,没有发现明显问题
b) 建议现场先用kinit 测试是否可以连接kerberos 服务器,之后发现现场环境
没有安装krb5-workstation 包
c)请现场安装krb5-workstation 包,并检查8a 节点kerberos 库版本,确保
kerberos 版本号不低于1.10
d) 建议现场使用kinit 手工创建/tmp/krb5cc_3000_gcluster/tkt 文件,
创建过
程中发现/tmp 下krb5cc_3000_gcluster 目录已不存在,怀疑可能被某些工具或
者人工清理删除。
2)手工创建/tmp/krb5cc_3000_gcluster/tkt 后再次测试,报错:Get token
operation
failed
with
error:Operation
not
permitted,
uri:
hdp://app_gbtoh@ip_xxx_xxx_xxx:50070/...
a) 建议现场打开trace 开关,调整trace 级别到5 以上,重试加载并查看
express.log 日志,
现场反馈日志目录权限变化,
无法输出express.log,
需要调
整后重试
b) 现场调整express.log 日志目录权限后重试,发现日志中输出:
gss_init_sec_context() failed: Server HTTP/ip_xxx_xxx_xxx@PICC.COM not
found in kerberos database
c) 可以确定是加载的URL 和gbase_hdfs_namenodes 参数中使用了ip 地址,
但现
场的hadoop 版本不支持ip 地址,建议现场改用主机名后解决
3)现场测试hadoop 导出,再次报错:Fail to create HDFS file
a) 建议现场打开trace 开关,调整trace 级别到5 以上,重试加载并查看
express.log 日志
b) 发现express.log 日志中输出:couldn't resolve host 'node07'
c) 确定'node07'为datanode 节点,8a 集群节点的/etc/hosts 文件中缺少该
datanode 节点的ip 地址,添加后问题解决

文档版本(2022-01-18)
南大通用数据技术有限公司
-
155 -