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

一次数据库故障处理记录

    博客分类:
  • DB
阅读更多
1.某系统做数据库脚本升级后,发现job运行有错误,见下图:


2.进一步查看,发现系统sys用户下,有些存储过程和包有编译错误:




3.后经过检查,发现数据库脚本升级前,原来的job可以运行(是否报错不确定),新的job运行虽然报错,但是也完成了要执行的操作,但是无法修改执行时间等信息。

4.尝试使用utlrp.sql脚本对无效对象重新编译:
SQL>$ORACLE_HOME\rdbms\admin\utlrp.sql
该脚本运行前有以下注意事项
4.1 确认以下包是否有错误,如果有错误尝试手工编译
STANDARD
DBMS_STANDARD
4.2 以下为运行脚本的注意事项,请仔细阅读
Rem   NOTES
Rem      * This script must be run using SQL*PLUS.
Rem      * You must be connected AS SYSDBA to run this script.
Rem      * There should be no other DDL on the database while running the
Rem        script.  Not following this recommendation may lead to deadlocks.
4.3 以sys/sysdba权限运行脚本

5.由于工作人员失误,没有按照要求在非生产时间执行脚本,出现数据库死锁,并且plsql和sql plus等工具无法连接,数据库错误信息如下:
日志报的错:ORA-04020: 尝试锁定对象 SYS.CDC_ALTER_CTABLE_BEFORE 时检测到死锁


6.经查,该问题可能与上面提到的死锁不同,是oracle的一个bug
bug信息:

This is cause by internal bug 3017048 fixed in 10.1.0.2.

Internal BUG:3017048 - Ora-4020, Functional Index Locking During Invalidation Causing Self-Deadlock

Researching the issue on ora-4020 and SYS.CDC_CREATE_CTABLE_BEFORE lead to BUG 3228083 which was

experiencing similar problems on the same object. This bug was closed as a duplicate of bug 3017048.

Internal BUG:3228083 - Appsst10g:R8:Utlrcmp Error: Ora-04045: Sys.Cdc_Create_Ctable_Before

fixed in 10.1.0.2.

7.解决方法

Set the following in the INIT.ORA then restart the database:

  _system_trig_enabled=false

aq_tm_processes=0

job_queue_processes=0


Then rerun CATALOG.SQL.

After creating and running these scripts and the database is ok then restart the database with the parameters taken out of the init.ora.

8.参考资料
http://ijavagos.iteye.com/blog/1209200
http://www.oracle-base.com/articles/misc/RecompilingInvalidSchemaObjects.php
分享到:
评论

相关推荐

    风铃设备故障登记处理系统 1.0.rar

    风铃设备故障登记处理系统分为两个部分:故障登记处理、设备登记...为了安全起见,第一次使用本系统请修改数据库连接,用记事本或DW打开Conn.asp文件修改, 里面有说明。然后到Data目录下修改数据库名为你刚才修改的。

    数据库系统管理制度V1.0.doc

    第六条 数据库故障处理,数据库系统中常见的四种故障主要有事务内部的故障、系统故障、介 质故障以及计算机病毒故障,对应于每种故障都有不同的解决方法。。 3. 数据库的安全管理 第一条 数据库管理员负责数据库...

    数据库系统管理制度V1.0(1).doc

    第六条 数据库故障处理,数据库系统中常见的四种故障主要有事务内部的故障、系统故障、介 质故障以及计算机病毒故障,对应于每种故障都有不同的解决方法。。 3. 数据库的安全管理 第一条 数据库管理员负责数据库...

    数据库系统概论第四版答案

    数据的存取单位即一次可以存取数据的大小也很灵活,可以小到某一个数据项(如一个学生 的姓名),大到一组记录(成千上万个学生记录)。而在文件系统中,数据的存取单位只有一 个:记录,如一个学生的完整记录。 ( 2...

    SQL数据库修复软件

    在我们的实际修复案例中,绝大部分数据库故障我们完全可以手工修复其结构,使其立即起死回生!市面上软件修复后的数据库会少很多数据,而手工修复结构的数据库,数据将会很完整!这---就是我们的优势! SQL数据库...

    数据库系统概论-SQL-CH10-作业解答.doc

    如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次 UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录 写到日志文件中,然后写数据库的修改。 10、什么是检查点记录?检查...

    数据库系统实现

    6.3.1 一次多元组操作的一趟算法 6.3.2 全关系的一元操作的一趟算法 6.3.3 二元操作的一趟算法 习题 6.4 嵌套循环连接 6.4.1 基于元组的嵌套循环连接 6.4.2 基于元组的嵌套循环连接的迭代器 6.4.3 ...

    服务器安全管理制度.doc

    若有异常进行分析判断并将 判断结果进行有效解决处理并记录到《服务器监控记录表》,若服务器故障请按服务器故 障处理流程及时处理并记录到《服务器维护及故障处理记录表》。 2.1.4 服务器数据库信息监控 每天检查...

    服务器安全管理制度(3).doc

    若有异常进行分析判断并将 判断结果进行有效解决处理并记录到《服务器监控记录表》,若服务器故障请按服务器故 障处理流程及时处理并记录到《服务器维护及故障处理记录表》。 2.1.4 服务器数据库信息监控 每天检查...

    数据库课程设计---投票系统

    下又一次运用打开语句打开此表。 2)关于空记录带来的麻烦 有些空记录往往会使程序无法运行。此时你可用“if not isnull”语句先判断一下是否为 空记录,再操作。 3)有些运行错误也可用如下语句排除 On Error GoTo ...

    数据库设计说明书模板

    因为上报中要求对变更进行上报,当采集系统不能提供变更情况时,需要上报系统根据当天数据和前一次存储的数据进行比较之后才能知道发生了哪些业务变更。因此本系列的表需要对上报的数据保存本期和两期的数据。 CDBEC...

    数据库系统选择题及答案.doc

    仅次于用户和数据库之间的一层数据管理软件是( D )。 A.数据库系统 B.数据库 C.管理信息系统 D.数据库管理系统 7. 数据库系统中,逻辑数据和物理数据可以相互转换,执行该功能的是( C ) A.操作系统 B...

    [数据库设计]超市管理系统设计

    数据库 超市管理系统设计报告 系统叙述 图 代码 心得体会 参考文献等【提供全部完全版】可是... (1)装入最新的数据库后备副本,使数据库恢复到最近一次转储时一致性状态. (2)装入相应的日志文件副本,重做已完成的事务.

    存储图数据的数据库FlockDB.zip

    图的每一条边都被存储了两次:一次正向存储(根据源ID做索引和分块),一次反向存储(根据目的ID做索引和分块)。这样类似于“谁在关注我”这样的查询可以跟查询“我在关注谁”一样高效,并且所有结果数据都分布在同一块...

    mysql数据库my.cnf配置文件

    适用于在一次性插入100-1000+条记录时, 提高效率。默认值是8M。可以针对数据量的大小,翻倍增加。 myisam_sort_buffer_size = 1024M # MyISAM设置恢复表之时使用的缓冲区的尺寸,当在REPAIR TABLE或用CREATE INDEX...

    医院服务器的日常维护规定.doc

    (二)每周周一必须升级服务器上的杀毒软件一次,并为服务扫描一次,其他上互 联网的工作站每周一也要升级一次;查阅、下载最新的软件补丁,在安装最新的软件补 丁到服务器前,应进行测试并对系统进行完整的备份。 ...

Global site tag (gtag.js) - Google Analytics