应用无损透明(ALT)简介
数据库系统在进行只读升主、小版本升级和规格变更时,可能会中断用户会话,此时用户的应用程序需要感知到会话变化并提供复杂的应对措施来解决故障,比如判断数据库连接或事务是否中断,进行事务补偿以及重建数据库会话上下文等。
针对上述问题,TaurusDB提供了应用无损透明(ALT),在数据库系统切换时,可以避免数据库连接和事务中断,无需用户对事务进行补偿、无需恢复和重建会话上下文,从而实现无损的应用连续性,保证业务不中断。
架构图

应用无损透明(ALT)功能以用户连接为粒度,用户可以连接到数据库代理,在进行只读升主、规格变更或者小版本升级时,系统会复制用户的后台会话,在达到安全的事务边界后,确保后台会话操作上下文被完整克隆至目的节点,从而保证业务不会中断。
应用无损透明(ALT)功能需要每个连接上均不存在运行中的事务,主备切换时需要等待已经执行的事务结束。等待事务结束的时间称为排干机制超时时间,通过参数“rds_tac_drain_timeout”控制,默认为5s,取值范围为1-60s。
业务压力较大,Prepare语句个数较多或者事务执行时间较长时,建议增加超时时间。不建议调小超时时间,如果在该时间内有连接没有排干事务,则这些连接不具有ALT的能力。
基本概念
安全的事务边界:指当前会话上的事务提交完成,开启下一个事务之前的状态。
例如:
- 开启autocommit的事务块每个语句执行完成时,可以达到事务边界。
start transaction; DML; commit;
- 关闭autocommit时,当commit执行完成,达到事务边界。
- 单独DML、DDL语句,执行完成,可以达到事务边界。
- 使用表锁、备份锁、用户自定锁时,释放锁以后,达到事务边界。
注意事项
分类 |
注意事项 |
---|---|
版本约束 |
内核版本的查询方法请参见如何查看云数据库 TaurusDB实例的版本号。 |
使用约束 |
|
不支持的功能 |
|