Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Oracle

DBVERIFY (influx - скорее всего нарушен носитель) Как исправить : Oracle

19.03.2024 8:38


04.03.2016 09:22
Zhalex
 
Цитата:
DBVERIFY: Release 10.2.0.4.0
Стр. 157087 - influx - скорее всего нарушен носитель
Corrupt block relative dba: 0x0142659f (file 5, block 157087)
В данный момент в этом блоке объектов нет
(известный скрипт выдал - строки не выбраны)

Как пофиксить этот блок?
04.03.2016 10:34
OlegON
 
Запиши туда какие-нибудь данные, создав большую табличку, например.
Я тут выкладывал уже не один вариант скриптов.
04.03.2016 11:05
Zhalex
 
Поспешил как оказалось. :( Зря оттуда удалил таблицу.

Так правильно будет?
Цитата:
SET SERVEROUTPUT ON
DECLARE num_fix INT;
BEGIN
num_fix := 0;
DBMS_REPAIR.FIX_CORRUPT_BLOCKS (
SCHEMA_NAME => 'supermag',
OBJECT_NAME=> 'большая_табличка',
OBJECT_TYPE => dbms_repair.table_object,
REPAIR_TABLE_NAME => 'REPAIR_TABLE',
FIX_COUNT=> num_fix);
DBMS_OUTPUT.PUT_LINE('num fix: ' || TO_CHAR(num_fix));
END;
/
04.03.2016 11:31
OlegON
 
Бррр, погоди, ты ж сказал, что у тебя блок ничему не принадлежит? Или уже принадлежит большой табличке? Если не принадлежит, то расширение таблички в этот блок его переформатирует. Извращение все это, вылечишь - поставь оптимизатор, не будет больше такого головняка.
04.03.2016 12:02
Zhalex
 
Цитата:
Если не принадлежит, то расширение таблички в этот блок его переформатирует.
Сработало!
(т.е. можно было не делать большую табличку, т.к. оракл со временем сам бы переписал этот не занятый сбойный блок)
04.03.2016 14:39
OlegON
 
Ну, тем, кто не хочет в один прекрасный момент обнаружить сбойный блок поперек данных, лучше ставить оптимизатор, а там бы он не отстал, пока не убрали этот сбойный блок.
Часовой пояс GMT +3, время: 08:38.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.