recyclebin или история о том как мы боролись с битым блоком.

Появился у меня в базе один битый (поврежденный) блок: ORA-01578: Oracle data block corrupted (file ..., block ...). По указанному номеру файла и номеру блока запросом:

 

SELECT owner, segment_name, segment_type 
FROM dba_extents 
WHERE file_id = <номер_файла> 
AND <номер_блока> BETWEEN block_id AND block_id + blocks - 1;
 

Был найден поврежденный сегмент – таблица. Оказалось таблицу можно удалить. Ну вот и удалили ее командой:

Drop table таблица;

Как и следовало ожидать представление v$database_block_corruption все еще содержит информацию о поврежденном блоке. Нужно чем-то переписать блок. Создаем относительно большую таблицу в надежде, что блок будет переписан. Но не тут то было. Таблица никак не хочет попадать в битый блок. В чем дело?

 

Предыдущий требование никакого сегмента в битом блоке не находит. Тогда взяли другой:

select
ds.owner, ds.segment_name, ds.partition_name, ds.segment_type,
ds.tablespace_name,
e.ktfbueextno, f.file#, e.ktfbuebno,
e.ktfbueblks * ds.blocksize, e.ktfbueblks, e.ktfbuefno
from sys.sys_dba_segs ds, sys.x$ktfbue e, sys.file$ f
where e.ktfbuesegfno = ds.relative_fno
and e.ktfbuesegbno = ds.header_block
and e.ktfbuesegtsn = ds.tablespace_id
and e.ktfbuesegtsn = f.ts#
and e.ktfbuefno = f.relfile#
and f.file#=номер файла
and номер блока between e.ktfbuebno and e.ktfbuebno + e.ktfbueblks - 1;

Оказалось, там продолжала находиться удаленная таблица! Мы совершенно забыли, что после удаления таблица попадает в корзину! Вернее она остается на прежнем месте и ее индексы тоже, только оракл переименовывает! Выполнили:

PURGE dba_recyclebin;

Новой таблицей переписали битый блок.

 

Решили, что корзина нам только портит жизнь, следовательно поменяли параметр:

ALTER SYSTEM SET "recyclebin"=OFF SCOPE = BOTH;

И зажили счастливо.

Вас заинтересует / Intresting for you:

Oracle и непроцедурный доступ ...
Oracle и непроцедурный доступ ... 8524 просмотров Antoni Tue, 21 Nov 2017, 13:32:50
Видеокурс по администрированию...
Видеокурс по администрированию... 10719 просмотров Илья Дергунов Mon, 14 May 2018, 05:08:47
СУБД Oracle: обзор характерист...
СУБД Oracle: обзор характерист... 15814 просмотров Antoni Fri, 24 Nov 2017, 07:35:05
Отмена сессий в Oracle (ALTER ...
Отмена сессий в Oracle (ALTER ... 23248 просмотров Stepan Ushakov Thu, 01 Nov 2018, 18:04:59
Войдите чтобы комментировать