暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

日常管理: Managing Resumable Space Allocation

原创 seven 2023-04-02
430

1 可恢复的空间分配的概览

Oracle数据库服务器提供了在空间分配失败时暂停并随后再执行恢复操作。这样能够采取纠正操作,而不是由Oracle数据库服务器向用户返回错误。纠正错误后,暂停的操作将自动恢复。这个特性称为“可恢复空间分配”。受影响的语句称为“可恢复语句”。只有当系统或会话启用了可恢复语句特性时,语句才会以可恢复模式执行。
挂起语句会自动导致挂起事务。因此,在SQL语句的挂起和恢复过程中,所有事务资源都被保留。当错误条件消失时(例如,由于用户干预或其他查询释放的排序空间),挂起的语句自动恢复执行。当发生下列情况之一时,恢复语句被挂起:
Out of space condition
Maximum extents reached condition
Space quota exceeded condition
挂起超时间隔与可恢复语句相关联。在超时时间间隔内(默认为2小时)挂起的可恢复语句将重新激活并将异常返回给用户。可恢复语句可以挂起并恢复多次。

2 启用和禁用可恢复的空间分配

只有在启用了恢复模式的会话中执行语句时,才能进行恢复空间分配。有两种方法来启用和禁用可恢复的空间分配:
发出ALTER SESSION ENABLE恢复命令。
使用ALTER SESSION或ALTER SYSTEM语句将RESUMABLE_TIMEOUT初始化参数设置为一个非零值。
当为会话或数据库启用恢复模式时,可以指定一个超时时间,如果没有发生任何干预,在此之后,挂起的语句将错误地输出。RESUMABLE_TIMEOUT初始化参数表示超时发生前的秒数。还可以使用以下命令指定超时时间:
ALTER SESSION ENABLE RESUMABLE TIMEOUT 3600;
超时的值一直有效,直到被另一个ALTER SESSION ENABLE RESUMABLE语句更改,或者通过另一种方式更改,或者会话结束。使用ENABLE RESUMABLE TIMEOUT子句来启用恢复模式的默认超时时间间隔是7,200秒,也就是2小时。
exa:
ALTER SESSION ENABLE RESUMABLE TIMEOUT 3600 NAME ‘multitab insert’;
查询涉及可回收空间的语句:
Example:
SELECT name, sql_text FROM user_resumable;
NAME SQL_TEXT


multitab insert INSERT INTO oldsales SELECT * FROM sh.sales;

3 示例图

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论