GBase 8s
其他
文章

南大通用GBase 8s 位图索引 & TAC 事务高可用功能使用简介

发表于2026-07-22 11:46:4171次浏览0个评论

GBase 8s 内置位图索引TAC(Transaction Augmented Continuity)两大核心能力,分别针对性优化低基数字段检索、集群主备切换事务无损接管场景。 本文整合官方原生文档,完整介绍两项功能的适用场景、语法、服务端与客户端配置、连接示例,方便开发、运维人员快速落地使用。

一、位图索引

新增位图索引功能,适用低基数数据场景

--为t1表的c1字段创建位图索引t1_c1 
CREATE BITMAP INDEX t1_c1 on t1(c1);

二、TAC 功能

TAC(Transaction Augmented Continuity)使用中的基本要求:

  • TAC 支持 HAC 和 SSC 集群,且 HAC 集群逻辑日志复制方式需设置为 NEAR_SYNC 的方式
  • TAC 支持隔离级别 READ COMMITED
  • server 端和 jdbc 端需同时配置为 TAC,TAC 功能才能开启。

server 端参数配置

server 端的参数位于配置文件 $GBASEDBTDIR/etc/onconfig.servername (servername 为实例名后缀),具体参数如下:

参数名参数含义默认值
TC_ENABLE是否开启 TAC 1 开启 0 关闭1
TC_TIMEOUT在发生主备切换时,新主等待 TAC 连接到新主的超时时间,如果在等待时间内,连接没能连接到新主上时,未完成的事务将会回滚并放弃,单位秒。30

jdbc 端参数配置

默认情况下 jdbc 会自动检测 server 是否支持 TAC,从而决定是否开启 TAC 功能。同时 jdbc 会提供一些配置参数用于优化 TAC 场景。以下参数均为 url 参数设置。

参数名参数含义默认值
TC_ENABLE配置是否自动检测并开启 TAC 功能0 关闭 TAC1 自动检测0
TC_MAX_TX_LIMIT大事务限制条数,事务内超过该设置条数 sql,该事务将放弃 TAC5000
TC_TIMEOUT配置等待连接重连的时间,超过该时间未能切换到新的接管节点,则放弃。单位秒。40
TC_RS配置是否开启对结果集的 TAC 支持0 不开启1 则开启0
TC_TRACE配置 TAC 相关日志输出级别,用于 debug 分析问题。0 不输出可选建议为 101,105,1100

连接串示例

jdbc:gbasedbt-sqli://172.17.102.62:12000/db1:TC_ENABLE=1;TC_RS=1;TCTRACE=101;

总结

  1. 位图索引:专门适配性别、状态、类型等低基数字段,一条 SQL 即可创建,大幅提升等值、多条件筛选查询速度,不建议在唯一值、高基数字段使用。
  2. TAC 事务增强连续性:面向 HAC/SSC 集群主备切换场景,需要数据库服务端与 JDBC 客户端配套配置,可实现故障切换时事务平滑接管,减少业务中断、事务回滚概率,适合金融、政务等对事务一致性要求高的核心业务。

大家在使用过程中,若遇到位图索引更新性能下降、TAC 切换后事务回滚、JDBC 未生效等问题,可在社区评论区留言,后续会补充对应排查方法与调优实践案例。

评论

登录后才可以发表评论