oracle 定时job修改表名,但是表被锁了

guo5253142 2016-03-28 11:27:06
我的job会执行一个存储过程,该存储过程会对表A进行重命名,但是别的程序会频繁操作表A,导致表A会经常出现短暂锁表的状态。那么现在我应该怎么做才能保证我定时执行的存储过程能顺利执行(不被锁表给打断)?
求各位大哥指教!!!
...全文
296 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bo871747022 2016-03-31
  • 打赏
  • 举报
回复
可以seelp等待,或者循环等待
guo5253142 2016-03-30
  • 打赏
  • 举报
回复
引用 5 楼 xiaoheixiaobai 的回复:
同意2楼, 判断是否别人锁了,如果锁了,sleep (5)s 然后再重新执行 ,别人仍然锁着,sleep (5)s 然后再重新执行, 直到别人没有锁能正常执行成功,此次定时任务才算执行完了
好像也没有什么很好的方法了,我试试看这样能不能解决。
guo5253142 2016-03-30
  • 打赏
  • 举报
回复
引用 8 楼 u012523524 的回复:
[quote=引用 4 楼 guo5253142 的回复:] [quote=引用 2 楼 wmxcn2000 的回复:] 这个需求挺特别的,可以考虑sleep 5s,exists,loop 多次。
我有一个表A数据增长量很快,为了防止它的数据量过于庞大,我就定时创建一个新表来代替表A,然后把原来的表A改个名字。还有什么别的方法能处理这种需求吗?[/quote] 定期把A表的内容给转移呢? 或者,在程序端操作数据库时,动态的变更为B、C、D、、、 以上只是想法,欢迎探讨[/quote] 我在存储过程里面更改了session的 DDL_LOCK_TIMEOUT( 表示一个DDL命令等待锁可用的秒数在抛出”resource busy”错误之前),这样好像解决了我的需求。我观察几天看看效果。谢谢大家的回复。
谷凯Jump 2016-03-30
  • 打赏
  • 举报
回复
引用 4 楼 guo5253142 的回复:
[quote=引用 2 楼 wmxcn2000 的回复:] 这个需求挺特别的,可以考虑sleep 5s,exists,loop 多次。
我有一个表A数据增长量很快,为了防止它的数据量过于庞大,我就定时创建一个新表来代替表A,然后把原来的表A改个名字。还有什么别的方法能处理这种需求吗?[/quote] 定期把A表的内容给转移呢? 或者,在程序端操作数据库时,动态的变更为B、C、D、、、 以上只是想法,欢迎探讨
guo5253142 2016-03-29
  • 打赏
  • 举报
回复
引用 2 楼 wmxcn2000 的回复:
这个需求挺特别的,可以考虑sleep 5s,exists,loop 多次。
我有一个表A数据增长量很快,为了防止它的数据量过于庞大,我就定时创建一个新表来代替表A,然后把原来的表A改个名字。还有什么别的方法能处理这种需求吗?
guo5253142 2016-03-29
  • 打赏
  • 举报
回复
引用 1 楼 xifenfei 的回复:
这个不太可能哦,ddl操作,会阻止dml,dml也会阻止ddl 这个可能需要从逻辑上进行一些调整,比如你为什么一定要重命名等
我有一个表A数据增长量很快,为了防止它的数据量过于庞大,我就定时创建一个新表来代替表A,然后把原来的表A改个名字。还有什么别的方法能处理这种需求吗?
卖水果的net 2016-03-29
  • 打赏
  • 举报
回复
这个需求挺特别的,可以考虑sleep 5s,exists,loop 多次。
陈灬风 2016-03-29
  • 打赏
  • 举报
回复
引用 4 楼 guo5253142 的回复:
[quote=引用 2 楼 wmxcn2000 的回复:] 这个需求挺特别的,可以考虑sleep 5s,exists,loop 多次。
我有一个表A数据增长量很快,为了防止它的数据量过于庞大,我就定时创建一个新表来代替表A,然后把原来的表A改个名字。还有什么别的方法能处理这种需求吗?[/quote]将表进行分区,看下是否满足你的要求
xiaoheixiaobai 2016-03-29
  • 打赏
  • 举报
回复
同意2楼, 判断是否别人锁了,如果锁了,sleep (5)s 然后再重新执行 ,别人仍然锁着,sleep (5)s 然后再重新执行, 直到别人没有锁能正常执行成功,此次定时任务才算执行完了
惜分飞 2016-03-28
  • 打赏
  • 举报
回复
这个不太可能哦,ddl操作,会阻止dml,dml也会阻止ddl 这个可能需要从逻辑上进行一些调整,比如你为什么一定要重命名等

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧