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,该事务将放弃 TAC | 5000 |
| TC_TIMEOUT | 配置等待连接重连的时间,超过该时间未能切换到新的接管节点,则放弃。单位秒。 | 40 |
| TC_RS | 配置是否开启对结果集的 TAC 支持0 不开启1 则开启 | 0 |
| TC_TRACE | 配置 TAC 相关日志输出级别,用于 debug 分析问题。0 不输出可选建议为 101,105,110 | 0 |
连接串示例
jdbc:gbasedbt-sqli://172.17.102.62:12000/db1:TC_ENABLE=1;TC_RS=1;TCTRACE=101;总结
- 位图索引:专门适配性别、状态、类型等低基数字段,一条 SQL 即可创建,大幅提升等值、多条件筛选查询速度,不建议在唯一值、高基数字段使用。
- TAC 事务增强连续性:面向 HAC/SSC 集群主备切换场景,需要数据库服务端与 JDBC 客户端配套配置,可实现故障切换时事务平滑接管,减少业务中断、事务回滚概率,适合金融、政务等对事务一致性要求高的核心业务。
大家在使用过程中,若遇到位图索引更新性能下降、TAC 切换后事务回滚、JDBC 未生效等问题,可在社区评论区留言,后续会补充对应排查方法与调优实践案例。
评论
登录后才可以发表评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25054
- 42023-09-25浏览数:18521
- 52020-05-11浏览数:17526