我经常在Oracle中挂起会话(锁定表)。
没有DBA权限,有没有办法删除这些会话或解锁表?
我能做些什么来完全避免这个问题? (例如,SQL * PLUS中的某些超时设置)。
这主要是从bash脚本启动的SQL。
答案 0 :(得分:1)
您可以要求您的DBA将权力委派给您,但如果您不是DBA,则无法解决这些问题。虽然如果它们是bash脚本,你可以杀掉-9它们,假设你可以找出哪些PID需要切换。
当然,挂起会话通常是系统设计不佳或编程习惯不良的结果。因此,如果你经常得到它们,你应该考虑修复你的应用程序。
如果不了解您的应用程序以及究竟是什么原因造成这些问题,我们无法提供具体的建议,但这里有一些建议。在架构级别,可能的解决方案是更聪明的作业管理,例如调度或队列。更好的编程实践可能包括悲观锁定(select ... for update
)和事务管理。