如下步骤首先查看系统参数查看正在使用的表空间是哪个
SQL> show parameter undo;
NAME TYPE VALUE
-------------------------------- --------- -------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string undotbs1
新建UNDO表空间
create undo tablespace undotbs2 datafile
'/opt/app/oracle/oradata/prod/undotbs02.dbf'
size 1024m autoextend on max size 8192M;
切换操作:
alter system set undo_tablespace='undotbs2' scope=both;
这时候可以将原来的表空间OFFLINE然后DROP掉:
在做之前先看看是否有大的事物在执行:
SQL> select count(*) from v$transaction;
COUNT(*)
----------
0
在系统很空闲的时候做事很好的:
alter tablespace undotbs1 offline;
drop tablespace undotbs1;
然后手工删除物理数据文件。(腾出了10多G的空间O(∩_∩)O哈哈:victory:~)
如果不ofline的话,是删除不掉的,虽然数据字典里面被删除了,但是系统进程还在访问UNDOTBS1数据文件
所以资源没有释放当你查看磁盘空间(df -TH)的时候并没有释放空间。
在次确认切换完成结果:
SQL> show parameter undo;
NAME TYPE VALUE
------------------------- ----------- -------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string undotbs2
SQL> select segment_name,tablespace_name from dba_undo_extents;
SEGMENT_NAME TABLESPACE_NAME
------------------------------ ------------------------
_SYSSMU20$ UNDOTBS2
_SYSSMU20$ UNDOTBS2
_SYSSMU19$ UNDOTBS2
_SYSSMU19$ UNDOTBS2
_SYSSMU18$ UNDOTBS2
_SYSSMU18$ UNDOTBS2
_SYSSMU17$ UNDOTBS2
_SYSSMU17$ UNDOTBS2
_SYSSMU17$ UNDOTBS2
_SYSSMU16$ UNDOTBS2
_SYSSMU16$ UNDOTBS2
_SYSSMU15$ UNDOTBS2
_SYSSMU15$ UNDOTBS2
_SYSSMU14$ UNDOTBS2
_SYSSMU14$ UNDOTBS2
_SYSSMU13$ UNDOTBS2
_SYSSMU13$ UNDOTBS2
_SYSSMU12$ UNDOTBS2
_SYSSMU12$ UNDOTBS2
通过对Oracle数据库的监控,可以全面了解Oracle的运行状态、数据库响应情况、数据库表空用度情况。
SUM服务器监控软件对Oracle数据库的监控十分全面,主要有:缓冲区命中率监控、表空间使用率监控、表空间监控、会话数监控、连接数监控等核心性能,这些性能均为DBA必须了解和随时掌握的性能,SUM的监控为DBA提供了有力的帮助。在Oracle数据库的性能监控中其中表空间随时监控是DBA首要职责,因为一旦表空用尽,将无法再进行数据库的操作,这将给应用软件造成很大的损失。通过SUM监控与短信报警功能,DBA可以设定表空间使用率阀值进行报警,比如可以设定表空间使用率达到95%后就立即短信通知指定的DBA进行表空间扩容,从而可以有效地避免因为表空间不足引起的应用程序错误和数据库错误。