Oracle - 如果 ORA-03135 连接丢失,事务会发生啥?
Posted
技术标签:
【中文标题】Oracle - 如果 ORA-03135 连接丢失,事务会发生啥?【英文标题】: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
命令可以在这种情况下提供帮助吗?
【问题讨论】:
【参考方案1】:查看手册:https://docs.oracle.com/database/121/CNCPT/transact.htm#CNCPT037
交易结束 当发生以下任何操作时,事务结束:
用户发出不带 SAVEPOINT 子句的 COMMIT 或 ROLLBACK 语句。 用户运行 DDL 命令,例如 CREATE、DROP、RENAME 或 ALTER。 用户正常退出大多数 Oracle 数据库实用程序和工具,导致当前事务被隐式提交。用户断开连接时的提交行为取决于应用程序且可配置。 客户端进程异常终止,导致使用存储在事务中的元数据隐式回滚 表和撤消段。
【讨论】:
删除时间超过 30 分钟是否合理?以上是关于Oracle - 如果 ORA-03135 连接丢失,事务会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章
Navicat:连接Oracle时,提示ORA-28547,Cannot load OCI DLL.193,ORA-03135错误