由于回滚段参数设置存在问题导致数据库无法启动

原创 2004年09月24日 14:31:00
操作系统:Sun Solaris 8
双机软件: Sun Cluster 3.0
数据库:Oracle 8.1.7.3

故障现象:
1.Oracle无法启动。
2.双机的环境一个节点或者所有点上的oracle资源组无法启动,显示为offline。
3.手工启动oracle时报告"ORA-01092: ORACLE instance terminated. Disconnection forced"错误。
4.查看$ORACLE_BASE/admin/ORCL/bdump/alert_ORCL.log,发现有ORA-01534: rollback segment RBSXXX does not exist类似的错误。

故障分析:
这个故障是由于初始化参数文件中的rollback_segments参数设置了一个并不存在的回滚段而引起的。Oracle内部有一个回滚段rollback segment的概念,它对于oracle有着非常重要的作用。回滚段有public和private两种类型,Oracle的初始化文件$ORACLE_BASE/admin/ORCL/pfile/initORCL.ora中有一个静态初始化参数rollback_segments。它包含在oracle启动时候需要online的private的回滚段的列表。如果这个参数设置了一个并不存在的回滚段会导致oracle在启动的时候报ORA-01534和ORA-01092错误,最终导致数据库无法启动,双机中的oracle资源也将无法online。如果rollback_segments在初始化参数中没有指定,那么oracle会将一部分public的回滚段online。具体online的回滚段的个数等于transactions/transactions_per_rollback_segment)。transactions和transactions_per_rollback_segment都是初始化参数文件中的静态初始化参数。在我们oss的系统中transactions=1.1*(1.1*processes+5),
transactions_per_rollback_segment=5。其中processes也是oracle的一个初始化参数,确定oracle的用户连接数,在我们oss的系统中一般为300。所以在我们的系统中如果没有指定rollback_segments,则会将73个public的回滚段online。由于在我们的系统中一般不会创建这么多回滚段,最终导致我们的系统中会将所有的public的回滚段online。

故障处理:
可以将oracle初始化参数中的rollback_segments注释掉,再重新启动数据库。如果是双机则要在两个节点上同时改变rollback_segments这个初始化参数。

日常维护:
1.平时维护初始化参数文件的时候最好用vi命令来维护;或者用ascii方式将初始化文件ftp到本地,用utlraedi修改后在用ascii方式ftp到主机系统上。千万不要telnet到主机上用拷屏的方法将初始化参数拷贝到本地再做修改,因为rollback_segments这个参数很长,直接拷贝屏幕会将这个参数分行。
2.双机的系统中初始化参数一定要同步。
3.如果将rollback_segments参数注释掉,系统只会将public的回滚段online,所以如果系统中所创建的public回滚段很少的话,oracle启动起来之后系统内将只有很少的回滚段。这会严重的影响系统的性能。因此如果要将rollback_segments参数注释掉,建议将所有的回滚段全部按照public的方式来来重新创建。
版权声明:本文为博主原创文章,未经博主允许不得转载。

由于回滚段参数设置存在问题导致无法启动

  • zgqtxwd
  • zgqtxwd
  • 2008年04月27日 01:43
  • 120

SQLSERVER 2005不能启动问题的解决

出现SQLSERVER无法启动的问题,错误信息如下:SQL Server 无法初始化 VIA 支持库 [QLVipl.dll]。这通常指示 VIA 支持库不存在或已损坏。请修复或禁用 VIA 网络协议...
  • eastfreeman
  • eastfreeman
  • 2008年02月12日 11:02
  • 2025

Oracle数据库回滚段操作

 1.新建undo表空间 SQL> create undo tablespace undotbs2 datafile 'E:\oracle\product\oradata\orcl\un  ...
  • programmelover
  • programmelover
  • 2014年10月20日 09:59
  • 1941

遇到oracle数据库回滚段满后

遇到数据库回滚段满后 回滚段表空间占100%重新启动数据库重启动后,alter rollback segment LARGE_TRANS shrink;alter rollback segment L...
  • xuejiayue1105
  • xuejiayue1105
  • 2007年01月17日 14:35
  • 2485

memory_target 设置太小,导致无法启动实例的解决办法

今天在做memory_target和sga_target,pga_aggregate_target之间的各个测试时。由于粗心,将memory_target的值...
  • yi888long
  • yi888long
  • 2014年08月08日 16:41
  • 501

配置错误导致linux命令失效

参考: 关于 Linux 的配置文件 /etc/profile 路径出错后相关的命令失效解决方式(如:ls,vi不能用)...
  • yejin191258966
  • yejin191258966
  • 2014年10月12日 23:03
  • 536

oracle中回滚段的作用

 1.保存DML操作前数据         比如表中有记录A,B,如果执行delete或update操作记录B,还没有执行commit,这时表中只剩下A或修改后的B,而操作前的数据信息会暂存在回滚段,...
  • Jarodsong
  • Jarodsong
  • 2009年01月14日 18:52
  • 1226

oracle撤销表空间和回滚段

/* 撤销表空间 */ 通过使用撤销技术,能够为Oracle数据库提供以下功能: * 使用ROLLBACK语句撤销事务 * 进行数据库恢复 * 提供数据的读一致性 Oracle强烈建议DBA...
  • dream361
  • dream361
  • 2016年10月16日 11:27
  • 1645

如何对Oracle数据库文件进行恢复与…

任何数据库在长期使用过程中,都会存在一定的安全隐患。对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制。当数据库发生故障后,希望能重新建立一个完整的数据...
  • wu461486522
  • wu461486522
  • 2014年02月14日 15:30
  • 258

Android开发实用记录,遇到哪更新到哪

1、 使用DataBinding框架时(这个很好用,自行搜查),运行报某某Binding包找不到的错,这里又分多种情况: (1)点错误提示跳到错误位置,是曾经用DataBinding绑定过的类,虽然...
  • github_36615485
  • github_36615485
  • 2016年12月09日 00:08
  • 229
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:由于回滚段参数设置存在问题导致数据库无法启动
举报原因:
原因补充:

(最多只允许输入30个字)