【问题标题】:Oracle - what happens with the transaction in case of ORA-03135 connection lost?Oracle - 如果 ORA-03135 连接丢失,事务会发生什么?
【发布时间】:2017-02-10 15:04:28
【问题描述】:

我需要在生产环境中运行一个删除语句,该语句需要花费大量时间,并且服务器在 30 分钟后关闭任何连接(我在日志中看到的 ORA-03135)。

如果我启动删除语句并且服务器将关闭连接会发生什么?语句会在服务器上完成执行还是会立即关闭并回滚? SQL*Plus set autocommit on 命令可以在这种情况下提供帮助吗?

【问题讨论】:

    标签: sql oracle plsql oracle-sqldeveloper sqlplus


    【解决方案1】:

    查看手册:https://docs.oracle.com/database/121/CNCPT/transact.htm#CNCPT037

    交易结束
    当发生以下任何操作时,事务结束:

    • 用户发出不带 SAVEPOINT 子句的 COMMIT 或 ROLLBACK 语句。
    • 用户运行 DDL 命令,例如 CREATE、DROP、RENAME 或 ALTER。
    • 用户正常退出大多数 Oracle 数据库实用程序和工具,导致当前事务被隐式提交。用户断开连接时的提交行为取决于应用程序且可配置。
    • 客户端进程异常终止,导致使用存储在事务中的元数据隐式回滚 表和撤消段。

    【讨论】:

    • 删除时间超过 30 分钟是否合理?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 2022-01-09
    相关资源
    最近更新 更多