Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1011451
  • 博文数量: 584
  • 博客积分: 2293
  • 博客等级: 大尉
  • 技术积分: 3045
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-28 11:15
文章分类

全部博文(584)

文章存档

2012年(532)

2011年(47)

2009年(5)

我的朋友

分类:

2012-03-08 20:08:47

原文地址:oracle坏块扫描 作者:wizardzj

从数据库日志中发现疑似坏块
Sun Feb  5 03:25:03 2012
Hex dump of (file 192, block 429183) in trace file /app/oracle/admin/YDPT/udump/ydpt1_ora_1081724.trc
Corrupt block relative dba: 0x30068c7f (file 192, block 429183)
Fractured block found during backing up datafile
Data in bad block:
 type: 6 format: 2 rdba: 0x30068c7f
 last change scn: 0x001e.7ed50c39 seq: 0x1 flg: 0x0
 
执行全库扫描,确认是否存在坏块
登入天翼数据库主机执行如下命令
$ rman target /
RMAN> BACKUP VALIDATE DATABASE;
如果要加快速度,可以改为四通道扫描
$ cat /oradata/dypt/arch1/hp/crman.sh
rman target lgto/lgto@YDPT1 << EOF > ./rman.logs
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
backup blocks all check logical validate database;
release channel d1;
release channel d2;
release channel d3;
release channel d4;
}
该脚本只对数据库进行读操作,不会对数据造成影响,但在执行期间会占用较多的IO
扫描完成后,退出rman,执行如下命令查询是否存在坏块
$sqlplus “/as sysdba”
SQL> select * from v$database_block_corruption;
查询结果是空值,则表示数据库没有存在坏块,如果查询发现有坏块,则需要对坏块进行修复。
 
若存在坏块,则进行坏块修复
修复坏块命令如下:
$ rman target /
RMAN> blockrecover datafile 9 block 59 from backupset; 
以上命令表示修复的是datafile9的block59,具体的修复内容则根据当晚扫描的情况确定。
检查坏块修复情况
RMAN> run {
2> allocate channel t1 type disk;
3> backup blocks all check logical validate datafile 117;
4> release channel t1;
5> }
 
如果坏块在索引上,需要重建
阅读(281) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~