`
张洪财
  • 浏览: 269593 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ORA-12012: error on auto execute of job ORA-20000: ORA-20000

阅读更多
Oracle10g中每天晚上10点会进行自动搜集统计信息,数据库准时报下面这个错,已经忍它很久了,虽然对数据库没什么大影响,但是每天查日志看见也很不爽:
Tue Dec 19 22:00:03 2006
Errors in file /oracle/admin/shdt2/bdump/shdt2_j000_8466.trc:
ORA-12012: error on auto execute of job 8898
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 1344
ORA-06512: at "SYS.DBMS_SPACE", line 1560
/oracle/admin/shdt2/bdump/shdt2_j000_8466.trc:
*** ACTION NAME:(AUTO_SPACE_ADVISOR_JOB) 2006-12-19 22:00:03.457
*** MODULE NAME:(DBMS_SCHEDULER) 2006-12-19 22:00:03.457
*** SERVICE NAME:(SYS$USERS) 2006-12-19 22:00:03.457
*** CLIENT ID:() 2006-12-19 22:00:03.457
*** SESSION ID:(487.15519) 2006-12-19 22:00:03.457
*** 2006-12-19 22:00:03.457
ORA-12012: error on auto execute of job 8898
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 1344
ORA-06512: at "SYS.DBMS_SPACE", line 1560
错误重现:
sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.2.0 - Production on Wed Dec 20 09:03:48 2006
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> exec dbms_space.auto_space_advisor_job_proc;
BEGIN dbms_space.auto_space_advisor_job_proc; END;
*
ERROR at line 1:
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 1344
ORA-06512: at "SYS.DBMS_SPACE", line 1560
ORA-06512: at line 1
原因是某个表空间删除以后,数据库还会对它进行统计,这时候就会报错了。DBA_AUTO_SEGADV_CTL表存储的是自动搜集统计信息的对象,把出错的表空间对象从这删除就可以了。先确定是哪个表空间:
SQL> desc DBA_AUTO_SEGADV_CTL
Name Null? Type
----------------------------------------- -------- ----------------------------
AUTO_TASKID NUMBER
TABLESPACE_NAME VARCHAR2(30)
SEGMENT_OWNER VARCHAR2(30)
SEGMENT_NAME VARCHAR2(81)
SEGMENT_TYPE VARCHAR2(18)
PARTITION_NAME VARCHAR2(30)
STATUS VARCHAR2(40)
REASON VARCHAR2(40)
REASON_VALUE NUMBER
CREATION_TIME TIMESTAMP(6)
PROCESSED_TASKID NUMBER
END_TIME TIMESTAMP(6)
SQL> select distinct tablespace_name from DBA_AUTO_SEGADV_CTL;
TABLESPACE_NAME
------------------------------
SYSAUX
NEWHC
NEWHCINDEX
STRMADMIN
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
NEWHC
NEWHCINDEX
SQL> select count(*) from DBA_AUTO_SEGADV_CTL where tablespace_name='STRMADMIN';
COUNT(*)
----------
1

SQL> select segment_owner, segment_name, status from DBA_AUTO_SEGADV_CTL where tablespace_name='STRMADMIN';
SEGMENT_OWNER   SEGMENT_NAME    STATUS
----------------------- ---------------------- ----------------------------------------
                                                          BEING_PROCESSED
SQL> delete DBA_AUTO_SEGADV_CTL where tablespace_name='STRMADMIN';
1 row deleted.
SQL> commit;
Commit complete.
SQL> exec dbms_space.auto_space_advisor_job_proc;
PL/SQL procedure successfully completed.
结果到了晚上又报错,那条记录重新加到DBA_AUTO_SEGADV_CTL中去了,猜想可能是ts$中还保留着STRMADMIN表空间的信息,把ts$中的记录也删除就完全解决了。ts$中记录了从数据库建立以来所有的创建过的表空间信息。
分享到:
评论

相关推荐

    2009 达内Unix学习笔记

    其中,1是执行权(Execute),2是写权限(Write),4是读权限(Read), 具体权限相当于三种权限的数相加,如7=1+2+4,即拥有读写和执行权。 另外,临时文件/目录的权限为rwt,可写却不可删,关机后自动删除;建临时目录...

    cms后台管理

    <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JeeCmsFront</servlet-name> <url-pattern>*.jhtml</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>...

    ora分析脚本

    Usage: ora [-u user] [-i instance#] <command> [] General -u user/pass use USER/PASS to log in -i instance# append # to ORACLE_SID -sid <sid> set ORACLE_SID to sid -top # limit some large queries ...

    Oracle删除表、字段之前判断表、字段是否存在

    ORA-00942:表或视图不存在 若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除. DECLARE num NUMBER; BEGIN SELECT COUNT(1) INTO num FROM USER_TABLES WHERE TABLE_NAME = ...

    Oracle常见错误:ORA

    Oracle常见错误:ORA-01403  ORA-06512: 在 "MALL.PUB_YANG_LOGON_ORGAN", line 88  ORA-06512: 在 line 1  at com.yangcq.flow.processflow.ProcessflowFunction.execute(ProcessflowFunction.java:102)  ...

    Oracle9i的init.ora参数中文说明

    值范围: Arabic Hijrah, English Hijrah, Gregorian, Japanese Imperial, Persian, ROC Official (Republic of China) 和 Thai Buddha。 默认值: Gregorian plsql_native_c_compiler: 说明: 指定用于将生成的 C ...

    OraPlus:Oracle数据库的简单图形管理器-开源

    这个简单的工具用Java编写,可以处理,分析并返回查询和SQL命令的结果。 它支持:-基本SQL命令:... -PL / SQL语句:CREATE PROCEDURE,EXECUTE; -快捷方式:显示所有用户表,表中的所有行以及说明(DESC )中的列。

    DB_monitor.rar

    GRANT EXECUTE ON UTL_FILE_DIR TO a; 生成字典文件(新建表后要刷新) EXECUTE dbms_logmnr_d.build(dictionary_filename => 'orcldict.ora', dictionary_location => 'd:\temp'); 分析在线重作日志文件 ...

    linux命令快速执行

    8_____vi /home/oracle/ora/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora 9_____/opt/lampp/lampp start 10_____/opt/lampp/lampp restart 11_____/opt/lampp/lampp stop 帮助 [root@...

    jdbc基础和参考

    execute:返回boolean类型的值,代表是否有结果集返回(如果执行select操作,是有ResultSet的,返回值为true) executeUpdate:返回int类型的值,代表的是,操作执行完成后,受影响的数据库的行计数(针对于insert,...

    dbms_logmnr使用

    SQL> execute dbms_logmnr_d.build(dictionary_filename => 'dict.ora', dictionary_location => 'G:\oracle\logs'); ``` 创建数据字典文件后,需要创建要分析的日志文件列表,使用以下语句: ```sql SQL> execute ...

    oracle实验报告

    COMPUTE sum of sal comm on deptno SELECT empno,ename,job,hiredate,sal,comm,deptno from emp ORDER BY deptno,sal; SPOOL off /*终止SPOOL功能,关闭其文件。注意,此命令不可省,否则将建立空文件。 五、 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE这些角色主要用于访问数据字典视图和包。  EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。  自定义角色 ...

    Oracle启动脚本及开机自启动设置

    将以下内容添加到/etc/init.d/Oracle中并添加可执行权限,chkconfig –add oracle添加到服务启动列表,chkconfig oracle on设置成开机启动 #!/bin/sh # chkconfig: 35 80 10 # description: Oracle auto start-...

    ssh(structs,spring,hibernate)框架中的上传下载

    6. <property name="url" value="jdbc:oracle:thin:@localhost:1521:ora9i"/> 7. 8. 9. 10. !-- Hibernate会话工厂配置 //--> 11. 12. class="org.springframework.orm.hibernate3.LocalSessionFactoryBean...

    OraSQL 是一个 oracle 数据库 的sql 工具, 它通过 TCP/IP 协议直接连接到 oracle 数据库,不需要另外安装 oracle 客户端。

    OraSQL 1. 6.1 ... * TNSNAMES.ORA 同 oracle 客户端一样的网络配置。 * Execute sql 执行SQL命令。 * Run sql script 执行一个脚本文件。 * Execute procedure 执行一个过程。 * Other... 其它。

    ORACLE之常用FAQ V1.0(整理)

    [Q]执行exec dbms_logmnr_d.build('Logminer.ora','file 34 [Q]执行execute 34 第四部分、性能调整 35 [Q]如果设置自动跟踪 35 [Q]如果跟踪自己的会话或者是别人的会话 36 [Q]怎么设置整个数据库系统跟踪 36 [Q]怎么...

Global site tag (gtag.js) - Google Analytics