- 浏览: 276118 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (220)
- oracle (45)
- extjs (2)
- jstl (8)
- tomcat (9)
- svn (2)
- 系统 (12)
- 工作日志 (4)
- flex (5)
- 乱码 (1)
- jsp (2)
- java (26)
- mysql (8)
- vmware (2)
- 其他 (4)
- acegi (1)
- yui (1)
- hibernate (1)
- javascript (10)
- Maven (2)
- 数据库 (3)
- html css (2)
- displaytag (6)
- 软件开发管理 (2)
- java模式 (2)
- springside (7)
- android (14)
- other (3)
- linux (1)
最新评论
-
yixiandave:
string2020 写道分布式应用 用户认证,应该是在统一的 ...
分布式应用注意简介 -
string2020:
分布式应用 用户认证,应该是在统一的一个地方验证吧
分布式应用注意简介 -
liusu:
1、listView 视图黑色 设置 cacheColorHi ...
android 注意 -
teamilk:
engine 是什么?怎么导呢,不会弄,请教下
H2 数据库数据导出 -
djb_daydayup:
哦,我看到源文件了!
How to use
Ver.2.00 ...
android screen monitor 手机屏幕共享
停电等意外关机会使oracle数据库出现bad回滚段,导致数据库无法启动。解决办法是去掉回滚段启动。
现象:
startup时出现ORA-01092错误
查看TRC日志文件,是ORA-00600错误。
ORA-00600: internal error code, arguments: [kteuPropTime-2], [], [], [], [], [], [], []
由于ORACLE9.2.0.1里的BUG(BUG#: 2431450),使的SMON在工作过程中导致ORACLE实例crash,留下一个或多个bad的回滚段。
当试图在宕掉的数据库重新startup时,SMON要进行事务恢复,从bad的回滚段里读取信息时失败,再次使ORACLE实例crash,
从而数据库无法正常OPEN。
二、解决步骤
1,首先要找出bad的回滚段。
在初始化参数文件里增加下面2行
_smu_debug_mode=1
event="10015 trace name context forever, level 10"
(_smu_debug_mode简单的收集诊断信息。Event 10015是回滚段恢复跟踪事件。)
修改好参数文件后shutdown immediate数据库后,再startup数据库。此时数据库能mount,但仍然无法Open.
还会遇到ORA-01092错误。但这次ORACLE会把bad的回滚段信息写到跟踪文件里。udump
在跟踪文件里发现是_SYSSMU1$回滚段bad。
2,在初始化参数文件里去掉刚才增加的2行
_smu_debug_mode=1
event="10015 trace name context forever, level 10"
增加新的一行
_corrupted_rollback_segments=(_SYSSMU1$)
修改好参数文件后shutdown数据库,再startup数据库。此时数据库能OPen。
3,在SQLPLUS里登陆数据库
select segment_id,segment_name,tablespace_name,status
from dba_rollback_segs
where owner='PUBLIC';
SQL> /
1 _SYSSMU1$ UNDOTBS1 NEEDS RECOVERY
2 _SYSSMU2$ UNDOTBS1 ONLINE
3 _SYSSMU3$ UNDOTBS1 ONLINE
4 _SYSSMU4$ UNDOTBS1 ONLINE
5 _SYSSMU5$ UNDOTBS1 ONLINE
6 _SYSSMU6$ UNDOTBS1 ONLINE
7 _SYSSMU7$ UNDOTBS1 ONLINE
8 _SYSSMU8$ UNDOTBS1 ONLINE
9 _SYSSMU9$ UNDOTBS1 ONLINE
10 _SYSSMU10$ UNDOTBS1 ONLINE
10 rows selected.
果然是_SYSSMU1$回滚段的状态是‘NEEDS RECOVERY’。其它9个回滚段是ONLINE的。
此时数据库已经能够正常使用,不过SMON会每隔5分钟写一条日志信息:
SMON:about to recover undo segment 1
SMON: mark undo segment 1 as needs recovery
4,删除bad的回滚段
在SQLPLUS里
drop rollback segment "_SYSSMU1$";
5,再修改修改好参数文件,去掉
_corrupted_rollback_segments=(_SYSSMU1$)
这一行,然后shutdown,再startup。
这样数据库又恢复了正常。
原始内容地址:http://chenhanzhao555.blog.163.com/blog/static/8557636320086221931754/
发表评论
-
修改归档路径
2013-12-30 13:57 664修改 sql>alter system set log_ ... -
带数据库网站并发数
2011-04-08 16:50 900所以如果要设计一个1000并发的网站,需要一个数据库3个tom ... -
删除过期备份
2011-01-16 06:45 8051. 设置保留最近的3次备份 RMAN> con ... -
Oracle 数据库连接报错 ORA-12514
2010-09-16 13:49 1000hosts文件中有一个用来标识网络上可以访问的计算机的IP地址 ... -
改redo重做日志大小
2010-06-16 14:57 11091、查重做日志详细内容select a.status, b.m ... -
oracle 查日志每分钟的连接数
2010-06-01 17:05 802cat listener.log | grep '30-MAY ... -
异机恢复oracle
2010-06-01 14:37 1293环境准备:a、数据库版本一样。(我的是oracle10.2.0 ... -
ORA-12012: error on auto execute of job ORA-20000: ORA-20000
2010-05-26 20:26 2827Oracle10g中每天晚上10点会进行自动搜集统计信息,数据 ... -
oracle listener.log 过大
2010-05-20 17:00 906lsnrctl set log_status off mv ... -
oracle 重装 后用rman恢复 转载收藏
2010-05-06 16:27 1249重新安装OS,ORACLEL软件用RMAN恢复数据 OS和or ... -
oracle redolog 文件丢失恢复 sqlplus
2010-05-06 10:45 1175好用: sqlplus /nolog 0、connect ... -
oracle 控制文件丢失恢复 rman
2010-05-06 10:33 7930、和恢复spfile一样数据库start nomount 状 ... -
oracle spfile 文件丢失 恢复 rman
2010-05-06 09:56 10711、进入rman : rman target / a、RMA ... -
oracle 口令文件丢失恢复 orapwd
2010-05-06 09:45 9831、一般oracle的口令文$ORACLE_HOME/dbs( ... -
oracle rnam 备份方案
2010-05-05 16:16 997oracle rnam 备份方案 周日晚上 oracle$& ... -
oracle rman
2010-05-04 13:48 10581、rman target / ... -
exp imp 移动数据 注意事项
2010-04-28 22:18 1150当 exp imp 移动数据时长时间未完成时,这时一定要看or ... -
oracle startup 错误诊断
2010-04-21 11:28 745oracle startup 错误大体诊断 1、startu ... -
oracle10g 归档日志文件夹设置
2010-04-20 11:00 13741、双归档备份。两份一样的规定。 alter system ... -
oracle9i 改归档模式
2010-04-18 12:56 755进入sqlplus重启动数据库到mount状态 a0 ...
相关推荐
1. 事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,Oracle 将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。 2. 事务恢复:当...
从9i版本开始,Oracle引入了自动管理回滚段(Automatic Rollback Segmentation),DBA不再需要手动创建、修改或删除回滚段,只需关注undo表空间(如UNDOTBS1)的空间管理。 回滚段的使用策略包括: - **分配回滚段...
如果事务最终需要回滚(通过`ROLLBACK`命令),则Oracle数据库会利用回滚段中的数据前影像将已修改的数据恢复到原始状态。此外,在事务处理过程中如果遇到实例失败(例如服务器故障),回滚段中记录的信息会被保存在...
当系统遇到回滚段灾难,如回滚段损坏或异常,导致数据库无法正常启动时,进行有效的灾难恢复是至关重要的。本文将详细解析如何处理回滚段出现异常、无法启动数据库的情况,并通过具体的SQL语句来指导如何进行灾难...
### Oracle回滚段探究 #### 一、引言 在Oracle数据库中,回滚段扮演着至关重要的角色,尤其是在确保事务处理的完整性和提供一致性视图方面。本文旨在深入探讨Oracle回滚段的相关知识,包括其作用、原理、分配与...
如果回滚段出现故障,轻则使数据处理无法执行、用户无法读写数据,重则导致数据库不能正常启动或关闭,导致数据库瘫痪。若能将回滚段的故障排除,一般来说是不会影响用户的实际数据。实际上绝大多数的回滚段故障都是...
- **离线状态(OFFLINE)**:回滚段不能被使用的状态。可以通过以下命令将回滚段设置为离线状态: ```sql ALTER ROLLBACK SEGMENT rollback_segment OFFLINE; ``` 设置为离线状态时,Oracle会将回滚段的状态设置...
Oracle回滚段是数据库管理系统中的核心组件,主要负责存储数据修改前的状态,以支持事务的回滚、恢复和读一致性。回滚段是Oracle数据库管理的重要部分,对于DBA来说,理解和有效地管理回滚段至关重要。 回滚段的...
在Oracle数据库环境中,事务管理与存储过程的结合是实现数据一致性、事务回滚以及错误处理的关键技术之一。本文将深入探讨“Oracle事务回滚存储过程”这一主题,旨在理解其核心概念、工作原理以及实际应用。 ### ...
回滚段,正如其名,是用来存放事务处理过程中增、删、改数据的历史信息,确保在事务回滚或数据库恢复时能正确操作。在Oracle 8i Release 8.1.7版本中,默认创建了24个回滚段,但它们初始大小较小,可能不足以应对...
Oracle 回滚段是 Oracle 数据库中的一种重要组件,它用于保存数据库修改前的数据,以便在需要时可以通过 ROLLBACK 命令恢复到修改前的数据。回滚段的设置对数据库的性能产生直接影响,特别是在更新密集的 OLTP 应用...
【回滚段】是Oracle数据库管理系统中的一个重要组成部分,主要用于存储数据修改前的状态,确保事务的回滚、恢复和读一致性。在Oracle 8i及更早版本中,回滚段的管理尤其关键。 **一、回滚段的作用** 1. **事务回滚...
Oracle 回滚段管理是数据库管理系统中的一项重要功能,它用于管理事务的回退和恢复。下面是 Oracle 回滚段管理的知识点总结: 一、回滚段简介 回滚段是 Oracle 数据库中的一种特殊类型的表空间,它用于存储事务的...
Oracle数据库的回滚段是其核心存储结构之一,主要用于维护数据的一致性和可恢复性。在Oracle数据库系统中,回滚段(Rollback Segment)扮演着至关重要的角色,它们存储了事务处理(Transaction)的回滚信息,确保了...
回滚段是Oracle数据库中非常重要的组成部分,它们主要用于存储事务回滚信息,即记录数据库中的所有更改,以便在事务回滚或系统恢复时使用。在上述情况中,数据库管理员发现了一个名为"undotbs1"的回滚表空间的数据...
5. **备份与恢复**:Oracle 9i提供了一套完整的备份和恢复策略,包括在线备份、冷备份、热备份等,确保在数据丢失或系统故障后能快速恢复。 6. **性能优化**:Oracle 9i引入了索引、分区、物化视图、数据库缓存等...
### Oracle 9i/10g 数据库备份与恢复知识点详解 #### 一、Oracle 9i/10g 数据库备份与恢复概览 **标题与描述**中提到的“Oracle 9i/10g 数据库备份与恢复”是指在Oracle 9i和10g版本中进行数据库备份和恢复的过程...
Oracle 创建表空间、回滚段、用户、表的详细语法 Oracle 是一种关系型数据库管理系统,广泛应用于各个行业。创建表空间、回滚段、用户、表是 Oracle 中最基本的操作之一,本文将详细介绍这四个操作的语法和步骤。 ...