问题来源
工作环境的物理空间几乎满了,查看数据库对应的物理文件,发现UNDOTBS01.DBF占了4个多G的空间
问题解决文章地址
http://blog.sina.com.cn/s/blog_6170af260100f7in.html
具体操作记录
1.想升级系统软件,发现空间不够,使用df -h查看磁盘空间使用情况
2.查看数据库物理文件占用空间大小,在/u01/app/oracle/product/10.2.0/oradata/qyb6(其中qyb6为数据库实例名,不同环境可能位置不同)
ll -h 发现UNDOTBS01.DBF占用4个多G的空间
3.对数据库进行操作的过程
以SYS用户登录Oracle 自带的SQL*PLUS的方法:
sys
sys
oracle as sysdba
1-- 创建一个新的小空间的UNDO TABLESPACE
CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '/u01/app/oracle/product/10.2.0/oradata/qyb6/UNDOTBS02.DBF' SIZE 100M REUSE AUTOEXTEND ON;
2-- 设置新的表空间为系统UNDO_TABLESPACE
ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;
3—在配置文件中修改undo_tablespace的设置
D:\oracle\product\10.1.0\db_1\database\initoracle.ora
在本系统的位置及文件名称/u01/app/oracle/product/10.2.0/db_1/dbs/initqyb6.ora
即cd $ORACLE_HOME/dbs目录下
将其中的undo_tablespace=UNDOTBS1 改为 UNDOTBS2
4—重启数据库
方法一:采用命令SHUTDOWN IMMEDIATE 关闭数据库,然后再采用命令STARTUP 重新开启数据库;
方法二:重启计算机(推荐)
5-- DROP 旧的表空间
DROP TABLESPACE UNDOTBS1 INCLUDINGCONTENTS AND DATAFILES;
查询所有表空间情况: SELECT NAME FROM V$DATAFILE;
空间得到恢复利用