ORA-01578: ORACLE data block corrupted (file # , block # ) и Recovery Manager

dbstalker, 17 марта

Сегодня получено в журнале оповещения сообщение "ORA-01578: ORACLE data block corrupted (file # 2, block # 1028472)". Что делать и куда бежать?

Так как на сервере стоит ORA10g, то оказывается можно восстановить только поломаный блок.

Используя, Enterprise manager (стартует emctl start dbconsole), создали задание для RMAN на восстановление блока:Maintenance-Perform Recovery - Object Level Recovery - Block Recovery -Data blocks may be recovered using one of the following methods -Datafiles. Затем нужно указать поврежденный файл данных и номер блока (эта информация может быть почерпнута из журнала оповещений (alert_mydb.log)

Задание было запущено на выполнение. Начался накат архивных журнальных файлов. Вот Вам кусочек из алерта:


alter database recover datafile list clear
Mon Mar 17 10:35:23 2008
Completed: alter database recover datafile list clear
Mon Mar 17 10:35:23 2008
Starting block media recovery
Mon Mar 17 10:35:25 2008
Media Recovery Log /mnt/raid5/oracle/archive/1_23865_646597233.dbf
Mon Mar 17 10:35:27 2008
Media Recovery Log /mnt/raid5/oracle/archive/1_23866_646597233.dbf
Mon Mar 17 10:35:29 2008
Media Recovery Log /mnt/raid5/oracle/archive/1_23867_646597233.dbf
Mon Mar 17 10:35:32 2008
Media Recovery Log /mnt/raid5/oracle/archive/1_23868_646597233.dbf
Mon Mar 17 10:35:34 2008
Media Recovery Log /mnt/raid5/oracle/archive/1_23869_646597233.dbf
Mon Mar 17 10:35:36 2008
Media Recovery Log /mnt/raid5/oracle/archive/1_23870_646597233.dbf
Mon Mar 17 10:35:37 2008

.....
Mon Mar 17 11:13:31 2008
Media Recovery Log /mnt/raid5/oracle/archive/1_24944_646597233.dbf
Mon Mar 17 11:13:32 2008
Completed block media recovery

И что приятно: база открыта, народ пашет в поте лица. Вот протокол какой приготовил RMAN:


Recovery Manager: Release 10.2.0.1.0 - Production on ???? ???°N? 17 10:35:17 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

RMAN> 
connected to target database: mydb (DBID=1345620281)
using target database control file instead of recovery catalog

RMAN> 
echo set on


RMAN> run {
2> blockrecover datafile 2 block 1028472;
3> }
Starting blockrecover at 17.03.08
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=198 devtype=DISK

channel ORA_DISK_1: restoring block(s) from datafile copy /mnt/raid5/flash_recovery_area/mydb/datafile/o1_mf_undotbs1_3sndfzv4_.dbf

starting media recovery
media recovery complete, elapsed time: 00:38:16

Finished blockrecover at 17.03.08


RMAN> exit;

Recovery Manager complete.

цитата из статьи "Oracle9i. Обзор некоторых новых возможностей"

Особого внимания заслуживает новая возможность Recovery Manager – восстановление отдельного блока файла данных. Раньше одним из стандартных способов восстановления при обнаружении поврежденного (corrupted) блока было копирование файла, содержащего этот блок, из резервной копии и применение к нему архивных и оперативных журналов. Это требовало как минимум перевода поврежденного табличного пространства в автономный режим на время копирования файла, что приводило к недоступности части данных на довольно длительный срок. Теперь Recovery Manager может извлечь из резервной копии только поврежденный блок, выполнить его восстановление при помощи журналов и записать восстановленный блок в файл данных. В этом случае временно недоступными оказываются только данные в поврежденном блоке.

Успехов Вам в труде!

1 комментарий

Прокоментировать

Азбука Манимейкера
29 декабря 2008 г. в 00:19

Материал то что надо. Админыч - спасибо!

 

Новый комментарий

Я не спамер: введите суму 9+5



 

От авторов блога

О Блоге - прочитай перед началом.

Задать вопрос и получить ответ - уже решено 94 вопросов

Глоссарий - список терминов и сокращений


 
 

Бизнес форум

Последние темы:

Шины бу
26 апреля, 2 ответа
Потрібна порада
25 апреля, 2 ответа
Посоветуйте адвоката
25 апреля, 1 ответа