Oracle UNDOTBS表空间的查看与扩容 |
您所在的位置:网站首页 › oracle11g增加表空间 › 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 5000M AUTOEXTEND ON NEXT 1000M MAXSIZE 32000M;
6.也可以考虑切换UNDO表空间 方法一 新建undo表空间,switch到新表空间,在把旧的undo表空间删除,具体操作如下:(不关闭数据库的情况下) create tablespace new_name datafile 'D:\APP\ORADATA\ORCL\EXAMPLE01.DBF' size 2G; alter system set undo_tablespace=new_name; 等待旧的undo表空间事物全部结束后执行: alter database datafile 'D:\APP\SUNMI\ORADATA\ORCL\UNDOTBS01.DBF' offline; alter database datafile 'D:\APP\SUNMI\ORADATA\ORCL\UNDOTBS01.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;
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |