• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Oracle rac模式下undo表空间爆满的解决方案

    发布者: 天下网吧 | 发布时间: 2025-6-18 09:23| 查看数: 45| 评论数: 0|帖子模式

    前言



    一、确认对应实例的undo表空间
    1. show parameter undo
    复制代码


    二、确认对应实例undo的文件位置
    1. select file_name, bytes / 1024 / 1024 / 1024
    2. from dba_data_files
    3. where tablespace_name like 'UNDOTBS%';
    复制代码


    三、确认回滚段使用情况

    #如果为空则证明该表空间可以被删除,否则要放其他时间处理尤其生产环境下。
    1. select s.username, u.name
    2. from gv$transaction t, gv$rollstat r, v$rollname u, gv$session s
    3. where s.taddr = t.addr
    4. and t.xidusn = r.usn
    5. and r.usn = u.usn
    6. order by s.username;
    复制代码


    四、检查undo segment状态
    1. select usn,
    2.        xacts,
    3.        status,
    4.        rssize / 1024 / 1024,
    5.        hwmsize / 1024 / 1024,
    6.        shrinks
    7. from v$rollstat
    8. order by rssize;
    复制代码


    五、创建新的undo表空间并进行切换
    1. SQL> create pfile='/home/oracle/t1.txt' from spfile;

    2. ファイルが作成されました。

    3. SQL>
    4. SQL>
    5. SQL>  create undo tablespace undotbs02 datafile '+DATA' size 10240m  autoextend on next 10m;

    6. 表領域が作成されました。

    7. SQL>
    8. SQL> create undo tablespace undotbs01 datafile '+DATA' size 10240m  autoextend on next 10m;

    9. 表領域が作成されました。

    10. SQL>
    11. SQL>
    12. SQL> alter system set undo_tablespace=undotbs02 sid='cxldb2' scope=both;

    13. システムが変更されました。

    14. SQL>
    15. SQL>
    16. SQL> show parameter undo

    17. NAME                                     TYPE         VALUE
    18. ------------------------------------ ----------- ------------------------------
    19. temp_undo_enabled                     boolean         FALSE
    20. undo_management                      string         AUTO
    21. undo_retention                             integer         10800
    22. undo_tablespace                      string         UNDOTBS02
    23. SQL>

    24. ##inst_id=1
    25. SQL>
    26. SQL> show parameter undo

    27. NAME                                     TYPE         VALUE
    28. ------------------------------------ ----------- ------------------------------
    29. temp_undo_enabled                     boolean         FALSE
    30. undo_management                      string         AUTO
    31. undo_retention                             integer         10800
    32. undo_tablespace                      string         UNDOTBS1
    33. SQL>
    34. SQL>
    35. SQL> alter system set undo_tablespace=undotbs01 sid='cxldb1' scope=both;

    36. システムが変更されました。

    37. SQL>
    38. SQL> show parameter undo

    39. NAME                                     TYPE         VALUE
    40. ------------------------------------ ----------- ------------------------------
    41. temp_undo_enabled                     boolean         FALSE
    42. undo_management                      string         AUTO
    43. undo_retention                             integer         10800
    44. undo_tablespace                      string         UNDOTBS01
    45. SQL>
    复制代码
    六、等待原undo表空间segment状态变更为offline
    1. select t.segment_name, t.tablespace_name, t.segment_id, t.status
    2. from dba_rollback_segs t
    3. where t.tablespace_name in ('UNDOTBS1','UNDOTBS2')
    4. and t.status != 'OFFLINE';
    复制代码


    七、删除原undo表空间以及数据文件
    1. SQL> drop tablespace UNDOTBS1 including contents and datafiles;

    2. 表領域が削除されました。

    3. SQL> drop tablespace UNDOTBS2 including contents and datafiles;

    4. 表領域が削除されました。

    5. SQL>
    复制代码

    以上就是Oracle rac模式下undo表空间爆满的解决方案的详细内容,更多关于Oracle undo表空间爆满的资料请关注脚本之家其它相关文章!

    来源:https://www.jb51.net/database/326849994.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表