推特 阿里云技术文档正文

从 GTS 迁移到 DRDS 原生分布式事务_最佳实践_分布式关系型数据库 DRDS

admin 阿里云技术文档 2020-02-11 224 0
阿里云服务器优惠

从 GTS 迁移到 DRDS 原生分布式事务

本教程适用于公有云 GTS 用户迁移到 DRDS 原生分布式事务。

DRDS 原生分布式事务的原理参见 DRDS 分布式事务

优点

  1. DRDS 原生事务不依赖任何第三方服务,事务数据保存在用户 RDS 中。不产生额外的资源费用。
  2. DRDS 原生事务具有更高的性能 、稳定性、SQL 兼容性。

使用场景

将事务从 GTS 迁移到 DRDS 原生事务有以下几种使用方式,您可以根据业务场景决定使用哪一个。

柔性事务

GTS 与 DRDS 柔性事务的工作方式相似。主要区别在于,当事务在提交阶段遇到 “一些分库提交成功、另一些分库提交失败,脏数据需要回滚” 时,处理方式不同:

  • GTS 事务内的 INSERT、UPDATE、DELETE 语句如果修改脏数据*,会被阻塞到回滚完成后。

    *备注:GTS 对于事务外的 SQL 无法提供上述保证。

  • DRDS 柔性事务 异步回滚中会检查数据,如果恰好在回滚期间更新过脏数据,事务回滚操作中止,并在状态中显示原因。

    *备注:只有在高并发并且故障的情况下才会发生异步回滚。

其他事务策略

如果柔性事务不能满足您的业务需要,更多事务策略(XA、2PC 事务等)请参见 DRDS 分布式事务

迁移指南

如果您要使用柔性事务,在迁移前,请您务必确保您的应用能处理脏读,或者按照文档指导规避上述问题。

迁移过程:

1)在 DRDS 管理控制台中,升级 DRDS 实例到最新推荐版本。

capture_update_drds 从 GTS 迁移到 DRDS 原生分布式事务_最佳实践_分布式关系型数据库 DRDS 阿里云技术文档

2)提交工单,或添加 DRDS 官方旗舰店钉钉账号 13148457943 / 13064722338 ,在 DRDS 工程师协助下关闭 GTS 并进行测试。

GTS 关闭后,SELECT last_txc_xid() 将会开启 DRDS 柔性事务。从返回的事务编号能够区别 GTS 事务和 DRDS 原生事务:

GTS 事务:

  1. mysql> SELECT last_txc_xid();
  2. +------------------------------+
  3. | last_txc_xid() |
  4. +------------------------------+
  5. | 11.192.91.133:8091:410346728 |
  6. +------------------------------+

DRDS 柔性事务(兼容 GTS 语法):

  1. mysql> SELECT last_txc_xid();
  2. +-----------------+
  3. | last_txc_xid() |
  4. +-----------------+
  5. | cdac6f1eb000000 |
  6. +-----------------+
  7. 1 row in set (0.03 sec)
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论

-----