透明事务管理
操作场景
对于事务,在DN主备倒换、重启数据库实例、重启节点、重启DN场景下会导致数据库会话中断。透明事务主要解决上述场景下的业务连续性问题。
透明事务通过实现一个代理模块,记录当前事务的状态,在主节点出现故障的时候,该事务不会立即结束,通过暂时缓存的方式,等待新的主节点产生之后,将该事务转接到新主节点上,并将前面的操作进行回滚,然后重新执行完整的SQL。
整个主备切换过程中,应用程序仅感知到一条UPDATE语句变成了慢SQL,但不会接收到连接报错或事务报错,后续应用层无需显式执行连接重连和事务重试。
约束限制
- 数据库引擎版本大于等于V2.0-8.200.0版本。
- 目前仅支持集中式版实例。
- 确保当前Region已经导入应用无损切换许可,参考《华为云Stack 8.5.0 许可指南》。
- 云服务许可:参考《华为云Stack 8.5.0 许可指南》的“获取CSSN(云服务许可场景)”,“申请云服务许可(云服务许可场景)”和“加载云服务许可(云服务许可场景)”章节导入云服务许可。
- 产品许可:参考《华为云Stack 8.5.0 许可指南》的“获取ESN(License场景)”,“申请产品许可(License场景)”和“加载产品许可(License场景)”章节导入产品许可。
- 透明事务管理需要开启白名单 “gaussdb_feature_installGNS”和“gaussdb_feature_supportEnableAlt”。
- gaussdb_feature_installGNS:默认开启。该白名单用于控制GNS组件安装。开启之后,安装GNS只在实例创建、升级场景下生效。如果在创建实例时没有安装GNS,后续其他操作(如节点替换、规格变更等),均不会再安装GNS组件。
- gaussdb_feature_supportEnableAlt:默认关闭。该白名单用于控制在支持的场景下是否能下发透明事务开关操作。请参考《云数据库 GaussDB 维护指南(for 华为云Stack 8.5.0)》中的“运维指南 > DBS运维管理平台操作指南 > 配置管理 > 特性白名单”章节开启。
- 透明事务需要重启主节点、主DN才生效,备节点、备DN也可下发开启该功能,但无实际效果。
- 透明事务相关组件默认端口为5100,需要配合数据库驱动使用,如果连接失败,请检查安全组是否开放或者默认端口是否发生变更,具体配置方法参见《云数据库 GaussDB 使用指南(for 华为云Stack 8.5.0)》中的“集中式版开发指南 > 应用程序开发教程 > 基于JDBC开发 > 典型应用开发示例 > 不同场景下配置连接参数”章节中“应用无损透明场景”。
- GNS组件实时获取数据库实例状态,可接受使用JDBC驱动的客户端连接,当数据库实例状态发生改变时通知客户端,是支持透明事务特性的重要组件。GNS属于CM管理的资源,当前gns_server进程状态无法通过HA准确获取,当gns_server进程异常时,通过CM模块告警上报。
支持的场景
目前仅支持以下集中式版实例计划内的场景:
- 计划内DN主备倒换,设置透明事务详细操作请参考执行DN主备倒换。
- 计划内重启实例,设置透明事务详细操作请参考重启GaussDB实例。
- 计划内停止实例,设置透明事务详细操作请参考停止GaussDB实例。
- 计划内停止主节点,设置透明事务详细操作请参考停止GaussDB节点。
- 计划内停止主DN组件,设置透明事务详细操作请参考停止GaussDB组件。
浙公网安备 33010602011771号