WEB开发网
开发学院数据库Oracle Oracle数据库常见真实问题处理步骤 阅读

Oracle数据库常见真实问题处理步骤

 2008-09-27 12:57:14 来源:WEB开发网   
核心提示: WHERED.TABLESPACE_NAME=F.TABLESPACE_NAMEORDERBY4DESC;3 XX网Oracle数据库SYSTEM表空间文件坏块的解决办法故障现象:NetBackup备份出错,日志如下:RMAN-00571:===RMAN-00569:===ERRORMES

WHERED.TABLESPACE_NAME=F.TABLESPACE_NAME

ORDERBY4DESC;

3 XX网Oracle数据库SYSTEM表空间文件坏块的解决办法

故障现象:

  NetBackup备份出错,日志如下:
  RMAN-00571:===========================================================
  RMAN-00569:===============ERRORMESSAGESTACKFOLLOWS===============
  RMAN-00571:===========================================================
  RMAN-03009:failureofbackupcommandonch01channelat06/15/200502:28:44
  ORA-19566:超出损坏块限制0(文件/u01/app/oradata/unicom/system01.dbf)

故障分析:

由于事前发生过别的表空间(cookdbs:/u01/app/oradata/unicom/cokdbs.dbf)也有坏块的情况,根据李智他们的建议,使用迁移数据后删除表空间的办法解决(仅适用于普通表空间)。

这是查询该表空间上的表和索引对象的一个脚本:

  GXdb%morequery.sql
  conn/assysdba
  colownerfora25
  colsegment_namefora40
  spooltable.log
  selectdistinctOWNER,SEGMENT_NAMEfromdba_extents
  whereTABLESPACE_NAME='COOKDB'
  andSEGMENT_TYPE='TABLE';
  spooloff
  spoolindex.log
  selectdistinctOWNER,SEGMENT_NAMEfromdba_extents
  whereTABLESPACE_NAME='COOKDB'
  andSEGMENT_TYPE='INDEX';
  spooloff
  exit

查询完毕后,使用一个迁移的脚本迁移到新的表空间:

  GXdb% more move.sh
#!/bin/ksh
sqlplus /nolog @query.sql
  NEWTBS="cookdbs1"
echo "conn /as sysdba" > move.sql
for TNAME in `cat table.log | awk '
            /^COOKDB/ {print $2}
            '`
do
   echo "alter table cookdb.$TNAME move tablespace $NEWTBS;" >>move.sql
done
  for INAME in `cat index.log | awk '
            /^COOKDB/ {print $2}
            '`
do
  echo "ALTER INDEX cookdb.$INAME REBUILD TABLESPACE $NEWTBS;" >>move.sql
done
echo "exit" >>move.sql
sqlplus /nolog @move.sql

本次经过检查,发现包括有System在内的四个表空间的四个数据文件有坏块。为了能使用NetBackup备份,对NetBackup脚本做以下修改(对相应的数据文件设置maxcorrupt):

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Oracle 数据库 常见

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接