热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ORA-00600RecoveryofOnlineRedoLog:Thread1Group2Seq128Readingmem0错误特殊恢复

这又是一个一天一度的吃饭季节,天气闷热,心里有点儿抑郁。突然公司停电了,难道供电的设备也午休了吗?过了几分钟,供电设备休息完毕也开始正常供电了,跟我一样也真够准时的。

这又是一个一天一度的吃饭季节,天气闷热,心里有点儿抑郁。


突然公司停电了,难道供电的设备也午休了吗?

过了几分钟,供电设备休息完毕也开始正常供电了,跟我一样也真够准时的。


一切尽在掌握中,服务器自动开机,然后迷途小运维起按顺序起相关的服务,一如既往。

过了一会儿,XX的同鞋们高兴的说XXX数据库连不上,是不是没起实例呀??


然后我抑郁的告诉他们,实例我起来好久了,并且边信心百倍的说着,边去查看实例状态

oracle@oracle:~$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on 星期五 7月 26 06:08:24 2013

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

已连接到空闲例程。

SQL>
当时我就抑郁了,难道我是做梦启的么???

索性又startup一次!

我这次聪明了,是十分聪明了,我去看altre log

tail -30f alert_SEM.log

所有的信息欢快的在屏幕上跳动这,突然扫到一串让我感觉比较凄凉的字符串

ORA-00600: 内部错误代码, 参数: [4194], [20], [29], [], [], [], [], [], [], [], [], []


然后CTRL+C之后再

ps -ef|grep oracle|wc -l

4

额,神码情况???

于是决定详细查看alert日志,有如下发现

Thu Jul 25 08:27:35 2013
Doing block recovery for file 3 block 3683
Resuming block recovery (PMON) for file 3 block 3683
Block recovery from logseq 128, block 64 to scn 1878635
Thu Jul 25 08:27:35 2013
Recovery of Online Redo Log: Thread 1 Group 2 Seq 128 Reading mem 0
  Mem# 0: /oracle/oradata/SEM/redo02.log
Block recovery completed at rba 128.82.16, scn 0.1878637
Errors in file /oracle/diag/rdbms/sem/SEM/trace/SEM_pmon_3796.trc  (incident=57730):
ORA-00600: 内部错误代码, 参数: [4194], [20], [29], [], [], [], [], [], [], [], [], []


主要是数据库恢复rba 128.82.16, scn 0.1878637的时候,出现ora-600[4194],主要是指redo和undo的信息不一致


经过迷途小运维一番咨询下边是专家给出的思路

1. 换成undo 为manual,看看是否可以启动,如果可以,然后创建undo表空间,删除老undo,重启库

2. 如果不能启动,设置event,然后对undo表空间操作

3. 如果上面步骤都不行,直接使用undo隐含参数,屏蔽undo异常回滚段,删除异常回滚段


有思路了,那么下边开始按步骤以进行恢复

首先将undo_management改成manual 

undo_management参数详解:初始化参数UNDO_MANAGEMENT用于指定系统要使用的UNDO管理模式,默认值为AUTO。当设置该参数为AUTO时,  系统会使用UNDO表空间管理UNDO数据;当设置该参数为MANUAL时,系统会使用回滚段管理UNDO数据。

SQL> alter system set undo_management=manual scope=spfile; //由于是初始化值,所有得加上scope=spfile

SQL> shutdown immediate //重启数据库使得参数生效

SQL> startup
ORACLE 例程已经启动。
Total System Global Area 1670221824 bytes
Fixed Size                  2361784 bytes
Variable Size            1006634568 bytes
Database Buffers          654311424 bytes
Redo Buffers                6914048 bytes
数据库装载完毕。
数据库已经打开。
SQL> !
oracle@oracle:/oracle/diag/rdbms/sem/SEM/trace$ tail -30f alert_SEM.log  //查看alert log 未出错

oracle@oracle:/oracle/diag/rdbms/sem/SEM/trace$ exit
exit
SQL>
SQL>
SQL> show parameter undo;  //查看undo使用情况
NAME                                 TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
temp_undo_enabled                    boolean
FALSE
undo_management                      string
MANUAL
undo_retention                       integer
900
undo_tablespace                      string
UNDOTBS1

SQL> create undo tablespace UNDOTP datafile '/oracle/oradata/SEM/UNDOTP01.dbf' size 50M;  //创建新的undo表空间

表空间已创建。

SQL> alter system set undo_tablespace=UNDOTP;    //更改系统使用新的UNDO表空间
alter system set undo_tablespace=UNDOTP
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效 ORA-30014:          //这儿意思是只有undo_management=auto的时候这个值才可以不用加scope=spfile就可以更改
此操作仅在自动还原管理模式中才受支持

SQL> alter system set undo_tablespace=UNDOTP scope=spfile; //更改undo表空间到初始化值

系统已更改。

SQL> shutdown immediate  //重启实例,让undo_tablespace值生效
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 1670221824 bytes
Fixed Size                  2361784 bytes
Variable Size            1006634568 bytes
Database Buffers          654311424 bytes
Redo Buffers                6914048 bytes
数据库装载完毕。
数据库已经打开。

SQL> alter system set undo_management=auto scope=spfile;  //更改undo_management值为auto

系统已更改。

SQL> drop tablespace UNDOTBS1;  //然后删除老的undo表空间

表空间已删除。

SQL> shutdown immediate    //重启实例,使得undo_management值生效
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 1670221824 bytes
Fixed Size                  2361784 bytes
Variable Size            1006634568 bytes
Database Buffers          654311424 bytes
Redo Buffers                6914048 bytes
数据库装载完毕。
数据库已经打开。

SQL> show parameter undo;

NAME                                 TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
temp_undo_enabled                    boolean
FALSE
undo_management                      string
AUTO
undo_retention                       integer
900
undo_tablespace                      string
UNDOTP


至此,就算全部都OK了,一切还是那么美好!!!


**********************************************

数据库mount后删除undo表空间

alter tablespace undotbs1 offline

**********************************************


#############################################

本文属笔者原创

作者:john

转载请注明出处


推荐阅读
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文介绍了一个误删Oracle数据文件导致数据库无法打开的问题,并提供了解决方式。解决方式包括切换到mount状态、离线删除报错的数据文件等。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
author-avatar
自由常飞_337
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有