ORACLE 10G数据库ORA-20000错误处理

问题现象:数据库出现ORA-20000错误:

Errors in file /home/oracle/admin/zjindex/bdump/zjindex2_j002_615322.trc:
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

分析过程:

1、定位

查看JOB信息,确认由于AUTO_SPACE_ADVISOR_JOB出了问题

SQL> select job_name,state,run_count,failure_count from dba_scheduler_jobs;

JOB_NAME                       STATE            RUN_COUNT FAILURE_COUNT
------------------------------ --------------- ---------- -------------
PURGE_LOG                      SCHEDULED             1296             0
FGR$AUTOPURGE_JOB              DISABLED                 0             0
GATHER_STATS_JOB               SCHEDULED             1108             0
AUTO_SPACE_ADVISOR_JOB         SCHEDULED             1108           872
RLM$EVTCLEANUP                 SCHEDULED            31033             0
RLM$SCHDNEGACTION              SCHEDULED            32308             0
ADV_SEGMENTADV_1564578         SUCCEEDED                1             0
ADV_SEGMENTADV_5868170         SUCCEEDED                1             0
ADV_SEGMENTADV_4100857         SUCCEEDED                1             0

9 rows selected
SQL>

---------------------------------------------------------------------------------------------------------------------------------
通过查询dba_auto_segadv_ctl表获得被删除的表空间
SQL> select tablespace_name from dba_auto_segadv_ctl
 2  where tablespace_name not in (select tablespace_name from dba_tablespaces)
 3  /

TABLESPACE_NAME
------------------------------
TZQ

2、原因:找不到表空间返回的错误

Metalink说是Oracle bug,when the tablespace is created the statistics are captured for this tablespace.
When the tablespace is dropped the segments for which the segstats are collected continue to reference the dropped tablespace.AUTO_SPACE_ADVISOR_JOB。

由于TZQ表空间已经被删除,在运行AUTO_SPACE_ADVISOR_JOB时还会对它进行段建议。导致了ORA-20000错误发生。Internal BUG:4707226

3、解决方法:
※Bug 4707226 will be fixed in release 10.2.0.4-----------补丁升级
※通过手动删除DBA_AUTO_SEGADV_CTL里表空间记录-------------手动维护

4、验证方法:
DELETE FROM dba_auto_segadv_ctl where tablespace_name not in (select tablespace_name from dba_tablespaces)
   执行exec dbms_space.auto_space_advisor_job_proc验证

时间: 2024-09-29 17:44:52

ORACLE 10G数据库ORA-20000错误处理的相关文章

oracle数据库-我在装完Oracle 10g数据库后,出现了错误

问题描述 我在装完Oracle 10g数据库后,出现了错误 (提示:无法初始化oracle调用界面:ORACLE不能正常工作) 在SQL plus 输入用户名和口令后,出现了如图一样的错误,请问有没有遇见过类似的问题,望解答 解决方案 看不到图....重装系统 一般都好用

Oracle数据库ORA 54013错误的解决办法_oracle

ORA-54013: 不允许对虚拟列执行 INSERT 操作 这是Oracle 11 的新特性 -- 虚拟列. 在以前的Oracle 版本,当我们需要使用表达式或者一些计算公式时,我们会创建数据库视图,如果我们需要在这个视图上使用索引,我们会创建基于函数的索引.现在Oracle 11允许我们直接在表上使用虚拟列来存储表达式.虚拟列的值是不存储在磁盘的,它们是在查询时根据定义的表达式临时计算的.我们不能往虚拟列中插入数据,我们也不能隐式的添加数据到虚拟列,我们只能使用物理列来插入数据.然后可以查询

【ORACLE】relink oracle 10g 数据库

通常要迁移一个数据库,我们会使用 1 冷备份,整个数据库迁移, 2 rman duplicate 功能进行复制到本机或者复制到异机, 前面两种都必须先在目标库上安装软件.这里测试另外一种方法:对于单实例数据库,复制整个oracle 10g 数据库到另一个服务器,relink 之后可以重新使用.. 查看源库数据库库文件在$ORACLE_BASE 目录下的分布: oracle@yangDB1:/opt/oracle>ll 总计 36 drwxrwx--- 3 oracle oinstall 4096

oracle10错误-oracle 10G 遇到 ora-12514 的错误?

问题描述 oracle 10G 遇到 ora-12514 的错误? 错误提示:ora-12514 TNS:监听程序当前无法识别连接描述符中请求的服务 在网上找了各种方法都试过了,仍然不行,希望大家能帮帮忙,还有什么办法可以解决?多谢!!!下面是listener.ora 中的配置:SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = D:oracleproduct10.2.0db_1)

RedHat As 5.5 安装 Oracle 10g数据库

一.安装环境 System : RedHat As 5.5 Oracle Version : Oracle 10g 二.准备安装 1.修改/etc/redhat-release内容为 redhat-4 2.创建Oracle相关的用户及目录 将用户切换到root帐号,进行登录 # su - 创建oracle相关的用户组,用户 # groupadd oinstall # groupadd dba # useradd oracle -g oinstall -G dba 修改oracle用户的密码 #p

sql登陆不上-PL SQL突然连不上oracle 10G数据库了,以前能的,现在用sqlplus也可以连上

问题描述 PL SQL突然连不上oracle 10G数据库了,以前能的,现在用sqlplus也可以连上 我的服务都开启了,监听也配好了,然后就是用pl sql 直接登陆就登不上去,但是我先用sql plus 登陆一下,然后再用pl sql 登陆就可以登上去了,不知道这是为什么? 解决方案 在oracle 10g的configuration and Migration tools下的Net Manager测试下连接登陆不上报的啥错误?

iReport无法连接Oracle 10g数据库

环境:WinXP.iReport1.2.8.Oracle 10g数据库安装完成iReport1.2.8后,在进行数据库连接时,采用JDBC的方式连接Oracle 10g数据库,连接设置如下图: 以上的配置完全正确,但在点击"Test"按钮时出现:ClassNotFoundError:oracle.jdbc.driver.oracleDriver Check your classpath!的错误码,如下图所示:原因很简单:主要因为iReport没有找到Oracle10g的jdbc驱动,在

如何将Oracle 9i快速升级至Oracle 10g数据库

1.在安装好Oracle 10g软件的目标服务器上创建和源数据库9i 数据文件,控制文件,redo文件相同的目录(两台数据库的数据文件的位置必须相同,否则就需要使用alter database rename file '原位置'  to '目标位置') 2.由关闭源数据库9i,拷贝9i的数据文件,控制文件,redo文件,密码文件,初始化参数文件,spfile 文件等,到目标数据库10g相应的位置. 3.根据实际情况修改listener.ora tnsnames.ora 中的相关参数 4.用sys

Oracle 10g数据库中的Services

基于RAC环境中使用的应用程序,有时候希望某个特定的应用程序仅仅运行在RAC的子节点,或者说为某些应用程序分配一个首要节点.对此,Oracle 10g可以使用services来实现. 一.集群配置 在使用services之前,需要首先检查集群的配置是否正确. 下面的命令输出了数据库ORCL运行于三个不同的节点. srvctl config database -d ORCL server01 ORCL1 /u01/app/oracle/product/10.1.0/db_1 server02 OR