Oracle - 在ORA-03135连接丢失的情况下,事务会发生什么?
问题描述:
我需要在生产environemnt上运行一个删除语句,这需要花费很多时间,服务器在30分钟后关闭任何连接(从我在日志中看到的ORA-03135)。Oracle - 在ORA-03135连接丢失的情况下,事务会发生什么?
如果我启动删除语句并且服务器将关闭连接,会发生什么?该语句是否会在服务器上完成执行或者是否立即关闭并回滚? SQL * Plus set autocommit on
命令在这种情况下可以提供帮助吗?
答
检查手册:https://docs.oracle.com/database/121/CNCPT/transact.htm#CNCPT037
事务结束
时有下列行为的发生的事务结束:
- 用户发出COMMIT或ROLLBACK语句,不带SAVEPOINT子句。
- 用户运行DDL命令,如CREATE,DROP,RENAME或ALTER。
- 用户通常从大多数Oracle数据库实用程序和工具退出,导致当前事务被隐式提交。用户断开连接时的提交行为是依赖于应用程序和可配置的。
- 客户端进程异常终止,导致该交易将使用存储在交易 表和还原段的元数据隐含地回滚。
删除大于30分钟是否合理? – BobC