• Oracle UNDOTBS表空间的查看与扩容


    1.查看UNDO表空间使用情况

    select tablespace_name,
           round(sum(decode(status, 'ACTIVE', bytes, 'UNEXPIRED', bytes, 0)) * 100 /
                 sum(bytes),
                 2) || '%' "used %"
      from DBA_UNDO_EXTENTS
     group by tablespace_name
     order by 1;

    V$ROLLSTAT

    只有在 automatic undo management mode 模式下有效,包含回滚段的一些行为。

    V$UNDOSTAT

    这个视图只在 automatic undo management mode 模式下才有意义。包含监控和调试 UNDO 表空间的信息,通过这个视图可以估计现有数据库所需的 UNDO 表空间的大小。

    2.查看回滚段信息

    select rownum,sys.dba_rollback_segs.segment_name Name,v$rollstat.extents Extents,
    v$rollstat.rssize Size_in_Bytes,v$rollstat.xacts XActs,
    v$rollstat.gets Gets,v$rollstat.waits Waits,v$rollstat.writes Writes,sys.dba_rollback_segs.status status
    from v$rollstat,sys.dba_rollback_segs,v$rollname
    where v$rollname.name(+) = sys.dba_rollback_segs.segment_name and v$rollstat.usn(+) = v$rollname.usn
    order by rownum;

    3.查看表空间数据文件所在位置

    select file_name,tablespace_name from dba_data_files where tablespace_name = 'UNDOTBS1';

    检查数据库的undo表空间是否自动扩展 

    select FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE,STATUS,MAXBYTES,USER_BYTES from dba_data_files where tablespace_name like '%UNDO%';

    4.修改UNDO表空间数据文件大小

    alter database datafile '/oradata/datafile/UNDOTBS01.DBF' resize 300M;

    alter database datafile '/oradata/datafile/UNDOTBS01.DBF' AUTOEXTEND ON NEXT 100M MAXSIZE 1000M;

    5.UNDO表空间添加数据文件

    SQL> alter tablespace UNDOTBS1 add datafile '/oradata/datafile/undotbs1_02.dbf' size 32000M;

    Tablespace altered.

    如果是自动扩展改成

    SQL> alter tablespace UNDOTBS1 add datafile '/oradata/datafile/undotbs1_02.dbf' SIZE 5000AUTOEXTEND ON NEXT 1000MAXSIZE 32000M;

    6.也可以考虑切换UNDO表空间

    方法一

    新建undo表空间,switch到新表空间,在把旧的undo表空间删除,具体操作如下:(不关闭数据库的情况下)

    create tablespace new_name datafile 'D:APPORADATAORCLEXAMPLE01.DBF' size 2G;

    alter system set undo_tablespace=new_name;

    等待旧的undo表空间事物全部结束后执行:

    alter database datafile 'D:APPSUNMIORADATAORCLUNDOTBS01.DBF' offline;

    alter database datafile 'D:APPSUNMIORADATAORCLUNDOTBS01.DBF' offline drop ;

    方法二

    把数据库先mount起来,在把undo表空间删除,重新建立,在打开数据库就可以了(关闭数据库的情况)

    7.undo_retention设置以及优化(默认900秒)

    针对自动拓展的undo表空间设置undo_retention是有效的,在undo_retention的范围内,undo表空间中的数据将尽量不被重新覆盖,仅仅是尽量,不是完全。但是打开了自动拓展之后,有可能在undo_retention时间段内扩展到很大,造成隐患。
    针对没有开自动拓展的undo表空间,设置了undo_retention之后,在oracle 10g之后会忽略掉该设置,而是根据undo表空间的大小和使用率来自动调整undo信息的保留时间。

    ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH;

  • 相关阅读:
    windows AD监听的端口
    [FreeBSD] 双网卡绑定
    Kea DHCP MySQL
    NTP服务器知识整理
    linux的常用命令
    配置squid集成域身份认证
    Windows上配置PHP的LDAP扩展
    PHP下使用ldap域账户认证密码
    理解syslinux,SYSLINUX和PXELINUX
    优化pxe网启动时tftp的传输速度 --- 针对pxelinux和bootmgr
  • 原文地址:https://www.cnblogs.com/JIKes/p/14200226.html
Copyright © 2020-2023  润新知