首頁 > 資料庫 > mysql教程 > 如何将Oralce数据库中孤独临时段清除

如何将Oralce数据库中孤独临时段清除

WBOY
發布: 2016-06-07 15:17:29
原創
1071 人瀏覽過

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 很多情况下,临时段并不会被像想象那样被清除掉,而是一直驻留n个小时,这会导致表空间不恰当的运行溢出,为了避免此类问题发生,数据库管理员可以定期激活清除孤独的临时段。 产生的原因: 当一个

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

    很多情况下,临时段并不会被像想象那样被清除掉,而是一直驻留n个小时,这会导致表空间不恰当的运行溢出,为了避免此类问题发生,数据库管理员可以定期激活清除孤独的临时段。

    产生的原因:

    当一个段被删除时,其分区不会立刻释放。当进程删除段后,段仅仅更改为其类型为临时段,如果语句失败,该操作将会备回滚。临时段通常被清除并基于调用的结果释放分区,但是如果字典缓存行代表的段仍然在使用或是脏的,临时段清除将不会在此时发生。这通常在临时段被递归调用释放时出现,因为父事务没有提交,临时段不会被立刻清除。

    如何使孤独的临时段被清除

    清除临时段并释放它们的分区是SMON进程的任务。虽然smon每5分钟被唤醒,但是除非被显示唤醒,否则其每隔

    2:05才检查一次临时段。即使如此,每次也只能清除5个临时段,并且必须在5秒内得到锁。因此临时段清除可能很长时间才出现。

    但是如果smon被其他进程显示唤醒,它将执行临时段清除。smon在每次空间事务失败时也会被唤醒。通常较好的方法是使用ORADEBUG WAKEUP命令进行唤醒。

    具体示例如下:

     column pid new_value Smon
    set termout off
    select
    p.pid
    from
    sys.v_$bgprocess b,
    sys.v_$process p
    where
    b.name = 'SMON' and
    p.addr = b.paddr
    /
    set termout on
    oradebug wakeup &Smon
    undefine Smon

 

如何将Oralce数据库中孤独临时段清除

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板