教你如何重建Oracle数据库的回滚段

豆豆网   技术应用频道   2007年05月10日  【字号: 收藏本文

本文详细介绍教你如何重建Oracle数据库的回滚段

  1、将数据关闭

svrmgrl >Shutdown abort

  2、修改初始化参数文件

$ vi $ORACLE_HOME/dbs/init< sid >.ora

  添加以下参数

rollback_segments=(system)
_corrupted_rollback_segments=(r01,r02,r03,r04)
_allow_resetlogs_corruption=ture

  3、重新装载数据库

svrmgrl >Startup mount

  4、从数据库的控制文件中将回滚段表空间rbs的数据文件离线并去掉。

svrmgrl >alter database datafile
‘##/##/rbs01.dbf’ offline drop;

  ---- 对数据库进行恢复。

svrmgrl >recover database using backup controlfile;

  ---- 此时屏幕上可能会出现:

ORA_00280 Change #### for thread# is in sequence#
specify log:[< RET > for suggested|AUTO|from logsource|cancel]

  输入 cancel(不要输入其他命令)

svrmgrl >alter database open resetlogs;

  5、 重建新的回滚段

---- 将旧回滚段及回滚表空间删除。 
svrmgrl >alter rollback_segment r01 offline drop;
svrmgrl >alter rollback_segment r02 offline drop;
svrmgrl >alter rollback_segment r03 offline drop;
svrmgrl >alter rollback_segment r04 offline drop;
svrmgrl >drop tablespace rbs including contents;
---- 重建新的回滚表空间及回滚段。 
svrmgrl >connect internal
svrmgrl >create rollback segment ro tablespace system;
svrmgrl >alter rollback segment ro online;
svrmgrl >create tablespace rbs datafile 
##/##/rbs01.dbf’ size ##k;
svrmgrl >create rollback segment r01 tablespace rbs;
svrmgrl >create rollback segment r02 tablespace rbs;
svrmgrl >create rollback segment r03 tablespace rbs;
svrmgrl >create rollback segment r04 tablespace rbs;
svrmgrl >alter rollback segment r01 online;
svrmgrl >alter rollback segment r02 online;
svrmgrl >alter rollback segment r03 online;
svrmgrl >alter rollback segment r04 online;
 
svrmgrl >Shutdown abort
$ vi $ORACLE_HOME/dbs/init< sid >.ora
 rollback_segments=(r01,r02,r03,r04)
 将参数_corrupted_rollback_segment
    _allow_resetlogs_corruption=true去掉
svrmgrl >Startup normal

责编:豆豆技术应用

正在加载评论...