数据库默认的用户表空间是USERS.,因为业务数据库一般都不需要USERS表空间,所以有可能会将其删除。但这会造成一个问题,因为数据库dbms_space.auto_space_advisor_job_proc 存储过程会默认去收集USERS表空间的信息,但却没有找到,故会报出下面一些信息:
ORA-12012: error on auto execute of job 8887
ORA-20000: ORA-20000: Content of the tablespace specified is not permanent or tablespace name is invalid
ORA-06512: at "SYS.PRVT_ADVISOR", line 1624
ORA-06512: at "SYS.DBMS_ADVISOR", line 186
ORA-06512: at "SYS.DBMS_SPACE", line 1338
ORA-06512: at "SYS.DBMS_SPACE", line 1554
这个问题,是ORACLE 10g数据库的一个内部Bug ,解决方法一,可以升级;方法二,可以进行如下处理:
第一步:先建立相应的表空间,怎么知道哪个表空间呢,要吧运行下面的SQL语句
select tablespace_name,status
from dba_auto_segadv_ctl
where tablespace_name not in(select tablespace_name from dba_tablespaces);
第二步:运行系统过程
exec dbms_space.auto_space_advisor_job_proc;
第三步:将刚建立的表空间删除
SQL>drop tablespace users including contents and datafiles;
本文转自glying 51CTO博客,原文链接:http://blog.51cto.com/liying/967734,如需转载请自行联系原作者