华为云云数据库rds技术架构_云淘科技

功能背景

主备模式的数据库系统在进行主备倒换、小版本升级和规格变更时,可能会中断用户会话,用户的应用程序需要感知会话变化并提供复杂的应对措施。

判断数据库连接是否中断。
判断事务是否中断。
如何进行事务补偿。
如何重建数据库会话上下文。

应用无损透明(ALT),在数据库系统切换与故障转移时,可以提供无损的应用连续性。

避免连接和事务中断。
无需用户对事务进行补偿。
无需恢复和重建会话上下文。

注意事项

开启或关闭ALT服务会重启RDS实例和代理实例。
多数据库代理模式下不支持应用无损透明(ALT)功能。
应用无损透明(ALT)功能事务排干机制超时时间,通过参数“rds_tac_drain_timeout”控制,默认为5s,取值范围为1-60s。

业务压力较大或者事务执行时间较长时,建议增加超时时间。
不建议调小超时时间,如果在该时间内有连接没有排干事务,则这些连接不具有ALT的能力。

架构图

应用无损透明(ALT)以用户连接为粒度,整个架构如图1所示。

图1 架构图

用户应用连接到数据库代理(Proxy)。
进行主备切换、规格变更或者小版本升级时,系统会复制用户的后台会话。
通过事务排干机制以达到安全的事务边界。

安全的事务边界是指当前会话上的事务提交完成,开启下一个事务之前的状态,例如:

开启autocommit的事务块每个语句执行完成时,可以达到事务边界。

start transaction;
DML; 
commit;

关闭autocommit时,当commit执行完成,达到事务边界。
单独DML、DDL语句,执行完成,可以达到事务边界。
使用表锁、备份锁、用户自定锁时,需要释放锁以后,达到事务边界。
XA事务需要进行提交或者回滚操作,达到事务边界。

转移会话上下文,切换用户后台会话。

其中会话克隆能够拷贝和转移会话状态,包括会话系统变量、用户自定义变量和其他上下文,例如`db_name`,`Prepared Statements`等。

父主题: 应用无损透明(ALT)

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家