【发布时间】:2011-10-10 15:26:30
【问题描述】:
在这种情况下,我需要您的意见。我会试着解释一下这个场景。我有一个 Windows 服务,它定期将数据存储在 Oracle 数据库中。存储此数据的表按日期分区(间隔-日期范围分区)。该数据库还有一个 dbms_scheduler 作业,除其他操作外,该作业还截断和删除旧分区。
这种方法已经有一段时间了,但最近我遇到了ORA-00054 错误。经过一番调查,错误通过以下步骤重现:
- 打开一个 sqlplus 会话,禁用自动提交,然后在 分区表,不提交更改;
- 打开另一个 sqlplus 会话并截断/删除旧分区(DDL 如果我没记错的话,操作是自动提交的)。我们 然后会得到 ORA-00054 错误。
有一些限制值得一提:
- 我没有对数据库的 DBA 访问权限;
- 这是一个遗留应用程序,不是完整的重构 可行的;
那么,在您看来,是否有任何方法可以删除这些旧分区,而不会有遇到 ORA-00054 错误的风险并且无需 DBA 干预?我可以删除数据,但是空分区的数量每天都会增加。
非常感谢。
【问题讨论】:
标签: oracle plsql locking partitioning