UNDOTBS01.DBF太大的解决方法
最近碰到一个oracle的问题,在网上查了好久,终于找到了解决办法,虽然还在不断的测试,不过就目前测试的情况来看,好像没有不正常,不知道有没有潜在的不安全。不过通过这次问题的发生,我对oracle产生了浓厚兴趣,哈哈,纪念一下
方法一:重启计算机(推荐)
采用命令SHUTDOWN IMMEDIATE 关闭数据库,然后再采用命令STARTUP 重新开启数据库;
方法二:
以SYS用户登录Oracle 自带的SQL*PLUS的方法:
sys
sys
oracle as sysdba
1-- 创建一个新的小空间的UNDO TABLESPACE
CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE 'D:\ORACLE\ORADATA\ORCL\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
将其中的undo_tablespace=UNDOTBS1 改为 UNDOTBS2
4—重启数据库
5-- DROP 旧的表空间
DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;
查询所有表空间情况: SELECT NAME FROM V$DATAFILE;
以下步骤为重新将UNDO_TABLESPACE设置回原来的UNDOTBS1 可省略不做
6-- 创建一个新的小空间的UNDO TABLESPACE
CREATE UNDO TABLESPACE UNDOTBS1 DATAFILE 'D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF' SIZE 100M REUSE AUTOEXTEND ON;
7-- 设置新的表空间为系统UNDO_TABLESPACE
ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS1
8--在配置文件中修改undo_tablespace的设置
D:\oracle\product\10.1.0\db_1\database\initoracle.ora
将其中的undo_tablespace=UNDOTBS2 改为 UNDOTBS1
9—重启数据库
10-- DROP 旧的表空间
DROP TABLESPACE UNDOTBS2 INCLUDING CONTENTS AND DATAFILES;
查询所有表空间情况: SELECT NAME FROM V$DATAFILE;