表空间不够了,可以改变其大小。alter tablespace 命令:
也可以直接给表空间增加数据文件:
如果系统空间不够的话,可以看看undotbs1表空间是不是很大,如果是的话,可以使用alter database datafile 命令减小其空间大小,如果报错的话,可以这样:在别的分区下新建一个表空间,然后设置系统的undo_tablespace为新表空间,重启数据库或机器,删除原来的undotbs1表空间。事例:
以SYS用户登录Oracle 自带的SQL*PLUS的方法:
sys
sys
oracle as sysdba
1-- 创建一个新的小空间的UNDO TABLESPACE
2-- 设置新的表空间为系统UNDO_TABLESPACE
3—在配置文件中修改undo_tablespace的设置
D:\oracle\product\10.1.0\db_1\database\initoracle.ora
将其中的undo_tablespace=UNDOTBS1 改为 UNDOTBS2(有时候系统改了,就不需要这一步了)
4—重启数据库
方法一:采用命令SHUTDOWN IMMEDIATE 关闭数据库,然后再采用命令STARTUP 重新开启数据库;
方法二:重启计算机(推荐)
5-- DROP 旧的表空间
查询所有表空间情况:
alter database datafile '物理路径' resize 1000m ;
也可以直接给表空间增加数据文件:
alter tablespace 表空间名 add datafile 'c:\oradata\userdata_002.ora ' size 500m;
如果系统空间不够的话,可以看看undotbs1表空间是不是很大,如果是的话,可以使用alter database datafile 命令减小其空间大小,如果报错的话,可以这样:在别的分区下新建一个表空间,然后设置系统的undo_tablespace为新表空间,重启数据库或机器,删除原来的undotbs1表空间。事例:
以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—重启数据库
方法一:采用命令SHUTDOWN IMMEDIATE 关闭数据库,然后再采用命令STARTUP 重新开启数据库;
方法二:重启计算机(推荐)
5-- DROP 旧的表空间
DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;
查询所有表空间情况:
SELECT NAME FROM V$DATAFILE;