开发者社区 > PolarDB开源 > PolarDB 分布式版 > 正文

在PolarDB中,执行多条写入sql,一条失败了进行事务回滚,但没回滚成功,想查下回滚是不是报错了

在PolarDB中,执行多条写入sql,一条失败了进行事务回滚,但没回滚成功,想查下回滚是不是报错了?业务代码是没有报错的

展开
收起
小小爱吃香菜 2024-01-02 21:10:34 74 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在PolarDB中,您可以使用SQL查询语句来查看事务执行情况。具体来说,您可以使用以下SQL查询语句来查看PolarDB的事务执行情况:

    SELECT * FROM sys.transactions;
    

    这个查询语句会返回一个包含所有事务信息的表,包括事务ID、开始时间、结束时间、状态等信息。通过这些信息,您可以了解每个事务的执行情况,包括是否有错误发生。

    另外,如果您想要回滚某个事务,可以使用以下SQL语句:

    ROLLBACK TRANSACTION transaction_id;
    

    其中,transaction_id是您要回滚的事务的ID。执行这个语句后,指定的事务将被回滚,并且相关的数据修改操作将被撤销。

    需要注意的是,如果事务执行过程中发生了错误,但是业务代码没有报错,那么事务可能已经成功提交了。在这种情况下,您需要检查PolarDB的日志文件,以获取更详细的错误信息和调试信息。

    2024-01-03 13:18:40
    赞同 展开评论 打赏
  • 在PolarDB中,如果一个事务中的某条SQL语句执行失败,那么这个事务应该会进行回滚,以确保数据库的一致性。如果回滚没有成功,那么可能是因为以下几种情况:

    1. 事务隔离级别:如果你的事务隔离级别设置为READ COMMITTED或更低,那么在回滚之前,其他事务可能已经提交了更改,导致回滚失败。

    2. 锁冲突:如果在回滚过程中发生了锁冲突,那么回滚可能会失败。

    3. 资源不足:如果在回滚过程中资源(如CPU、内存或磁盘空间)不足,那么回滚可能会失败。

    要查看回滚是否报错,你可以查看PolarDB的慢日志或错误日志。这些日志中通常会记录失败的SQL语句及其错误信息。你也可以使用PolarDB的EXPLAIN命令来查看SQL语句的执行计划,以了解是否存在潜在的性能问题。

    如果回滚失败的问题持续存在,你可以联系阿里云的支持团队寻求帮助。他们可以帮助你分析问题的原因,并提供解决方案。

    2024-01-03 09:09:36
    赞同 展开评论 打赏
  • 嗯,如果是这种的话,要看下最后那条SQL失败后, 有没有接着下发rollback query。此回答整理自钉群“PolarDB 专家面对面 - 网络&连接&线程池功能”

    2024-01-02 22:00:29
    赞同 展开评论 打赏

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载