本文是作者在生产中碰到的一个实际案例,表现ORA-01578问题,下面是作者的详细解决过程。
笔者在一台出产用测验库上SELECT一个表时呈现ORA-01578,一个块损坏,曾经学习过块损坏怎样处理,到还真没遇到过,今日总算让我遇到了,仍是一台出产用测验库,就不必很紧张了。
数据库版本是9.2.0.4,Oracle9i的RMAN有一个blockrecover指令,能够在线修正坏块,以下便是运用RMAN修正坏块的进程。
|
报ORA-01578数据块损坏,以下运用RMAN指令查询是否能够运用blockrecover指令康复以及怎样康复
运用rman登录catalog数据库
|
查找最近datafile 15的全备份,今日下午刚做了一次RMAN的全备份
RMAN> list backup of datafile 15;
List of Backup Sets
===================BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
643 Full 64K DISK 00:00:27 16-MAR-09
BP Key: 650 Status: AVAILABLE Tag: TAG20090316T154352
Piece Name: /d02/fullbackup/20090316_data_24_1
List of Datafiles in backup set 643
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
15 Full 11856250905 16-MAR-09 /d01/app/oracle/oradata/dpa/dpa01.dbf
查找SCN 11856250905 今后的archivelog是否有备份
|
查找sequence 110 今后的archivelog是否有备份
|
从以上查询中能够看出datafile 15有一次最近的全备份,有全备份以来的一切archivelog,online redo log
下面开端blockreocver,其实指令很简单
再SELECT一下表DPA_HISTORYRMAN> blockrecover datafile 15 block 18;
Starting blockrecover at 16-MAR-09
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=16 devtype=DISK
channel ORA_DISK_1: restoring block(s)
channel ORA_DISK_1: specifying block(s) to restore from backup set
restoring blocks of datafile 00015
channel ORA_DISK_1: restored block(s) from backup piece 1
piece handle=/d02/fullbackup/20090316_data_24_1 tag=TAG20090316T154352 params=NULL
channel ORA_DISK_1: block restore completestarting media recovery
archive log thread 1 sequence 111 is already on disk as file /d02/arch/1_111.dbf
archive log thread 1 sequence 112 is already on disk as file /d02/arch/1_112.dbf
channel ORA_DISK_1: starting archive log restore to default destination
channel ORA_DISK_1: restoring archive log
archive log thread=1 sequence=109
channel ORA_DISK_1: restoring archive log
archive log thread=1 sequence=110
channel ORA_DISK_1: restored backup piece 1
piece handle=/d02/fullbackup/20090316_arch_28 tag=TAG20090316T154731 params=NULL
channel ORA_DISK_1: restore complete
media recovery complete
Finished blockrecover at 16-MAR-09
SQL> select * from dpa_history;
PRODLINEID BARCODE PA
---------- ------------------------------ --
7 S*33040-D8311050149512B 03
7 S*33040-D8311050143512B 03
7 S*33040-D8311050140512B 03
7 S*33040-D8311050144512B 03
7 S*33040-D8311050151512B 03
7 S*33040-D8311050262512B 03
7 S*33040-D8311050552512B 03
7 S*33040-D8311050345512B 03
7 S*33040-D8311050170512B 03
【修改引荐】
- 用Instant client批量装置Oracle客户端
- Oracle 11g中完成自我调整功用
- Oracle数据块原理深化分析
知优网 » 实例解说Oracle 9i数据坏块的处理(oracle逻辑坏块处理)