Home > Database > Mysql Tutorial > 如何将Oralce数据库中孤独临时段清除

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

WBOY
Release: 2016-06-07 15:17:29
Original
1072 people have browsed it

欢迎进入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数据库中孤独临时段清除

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template