powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01578: ORACLE data block corrupted
25 сообщений из 92, страница 1 из 4
ORA-01578: ORACLE data block corrupted
    #37795087
Nagir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую, товарищи! В последнее время в приложении стали пропадать очень важные данные.
Суть в том, что в логах приложения появилась ошибка:
авторORA-01578: ORACLE data block corrupted (file # 5, block # 2530356)
ORA-01110: data file 5: 'C:\ORADATA\DB\TKDRM\USERS01.DBF'

Попробовал в РМАНе выполнить восстановление, но похоже у нас не полная версия Оракла...

авторMicrosoft Windows [Версия 5.2.3790]
(С) Корпорация Майкрософт, 1985-2003.
C:\Documents and Settings\Администратор>rman
Recovery Manager: Release 10.2.0.4.0 - Production on Tue May 15 13:18:26 2012
Copyright (c) 1982, 2007, Oracle. All rights reserved.
RMAN> blockrecover datafile 5 BLOCK 2530356;
Starting blockrecover at 15.05.12
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of blockrecover command at 05/15/2012 13:20:35
RMAN-05009: Block Media Recovery requires Enterprise Edition

Подскажите пожалуйста, как исправить проблему?
Oracle 10.2
Windows 2003 R2 x32
Log mode - Archivelog
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795100
Nagir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не особо сильно разбираюсь в БД, подскажите пожалуйста на языке чайника...
На сколько я представляю, возникло после сбоев с оперативой или ЖД.
Помогут ли переносы "больной" таблицы в другое табличное пространство или удаление этой таблицы совсем (этот вариант ужасен)
Просто дальнейшая работа приложения в таком виде неприемлема и через пару дней меня подвесят за одно место...
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795105
Фотография pravednik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
select segment_name, segment_type, owner
       from dba_extents
      where file_id = 5
        and 2530356 between block_id
            and block_id + blocks -1;


NagirНа сколько я представляю, возникло после сбоев с оперативой или ЖД.
не обязательно.
NagirПомогут ли переносы "больной" таблицы в другое табличное пространство или удаление этой таблицы совсем (этот вариант ужасен)
Запрос выше подскажет вам, что это за объект. Если таблица, то вы ее не перенесете.
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795161
Nagir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pravednik
Код: plsql
1.
2.
3.
4.
5.
select segment_name, segment_type, owner
       from dba_extents
      where file_id = 5
        and 2530356 between block_id
            and block_id + blocks -1;



Segment_Type - Table
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795166
Фотография pravednik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NagirSegment_Type - Table
Бекапы есть ?
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795169
Nagir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какие есть варианты по устранению проблемы?
В принципе, данный блок маловажный. Можно ли как то его удалить?
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795176
Фотография kinky cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nagir,

если есть бэкапы логично
Код: plsql
1.
2.
restore datafile 5;
recover datafile 5;
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795191
Фотография pravednik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NagirВ принципе, данный блок маловажный.
Вы уже в курсе, что в нем лежит ? ;)

NagirМожно ли как то его удалить?
Можно пометить его "нечитаемым" - DBMS_REPAIR....
Можно вытащить все строки кроме тех, которые в блоке - dbms_rowid
Можно восстановить БД(не всю), вытащить от туда таблицу и заменить ей покореженную.
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795219
Nagir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kinky catNagir,

если есть бэкапы логично
Код: plsql
1.
2.
restore datafile 5;
recover datafile 5;



Получится, что надо будет применить тот бэкап, который был до крэша этого блока, а всё что было занесено в таблицу после данного бэкапа пропадет?
Ведь, если применить бэкап, например сделанный 5минут назад, то битый блок снова будет присутствовать?
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795245
Nagir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pravednikNagirВ принципе, данный блок маловажный.
Вы уже в курсе, что в нем лежит ? ;)
Ну, я в курсе, какие данные хранятся в этой таблице и предполагаю, что потеря одного блока будет не слишком болезненна.

pravednikNagirМожно ли как то его удалить?
Можно пометить его "нечитаемым" - DBMS_REPAIR....
Можно вытащить все строки кроме тех, которые в блоке - dbms_rowid
Можно восстановить БД(не всю), вытащить от туда таблицу и заменить ей покореженную.

Можете, пожалуйста, поподробнее написать про первый вариант
Два следующих варианта, думаю будут намного дольше и сложнее...
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795279
N.Ivankin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nagirkinky catNagir,

если есть бэкапы логично
Код: plsql
1.
2.
restore datafile 5;
recover datafile 5;



Получится, что надо будет применить тот бэкап, который был до крэша этого блока, а всё что было занесено в таблицу после данного бэкапа пропадет?

для этого есть как раз и делается recover.

NagirВедь, если применить бэкап, например сделанный 5минут назад, то битый блок снова будет присутствовать?

Именно
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795309
Nagir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pravednikNagirМожно ли как то его удалить?
Можно пометить его "нечитаемым" - DBMS_REPAIR....
Я еще не знаком на практике с этой функцией. На сколько я представляю, там есть 2 варианта:
DBMS_REPAIR.FIX_CORRUPT_BLOCK и DBMS_REPAIR.SKIP_CORRUPT_BLOCK

Но я опасаюсь, не затронет ли эту всю таблицу в целом? Какие будут последствия?
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795315
Фотография pravednik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NagirНа сколько я представляю, там есть 2 варианта:
DBMS_REPAIR.FIX_CORRUPT_BLOCK и DBMS_REPAIR.SKIP_CORRUPT_BLOCK

Но я опасаюсь, не затронет ли эту всю таблицу в целом? Какие будут последствия?
У вас проблемы с чтением официальной документации ?
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795357
tim_scn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kinky catNagir,

если есть бэкапы логично
Код: plsql
1.
2.
restore datafile 5;
recover datafile 5;



не логично:)
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795476
Nagir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pravednikNagirНа сколько я представляю, там есть 2 варианта:
DBMS_REPAIR.FIX_CORRUPT_BLOCK и DBMS_REPAIR.SKIP_CORRUPT_BLOCK

Но я опасаюсь, не затронет ли эту всю таблицу в целом? Какие будут последствия?
У вас проблемы с чтением официальной документации ?

У меня проблемы со временем.
Просто проблема очень срочная и я рассчитывал, что быстрее будет спросить у гуру баз данных, чем мне самому разбираться.
В любом случае, спасибо огромное! Вы действительно очень сильно помогли!
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795477
Фотография kinky cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tim_scn,
пожалуй согласен, погорячился
у меня намедни такая трабла была систем.
С обычным таблспейсом врядли стоит ресторить, ну по крайней мере, не в 1ую очередь
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37795559
Nagir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pravednik,

Выполнил
авторBEGIN
DBMS_REPAIR.SKIP_CORRUPT_BLOCKS (
SCHEMA_NAME => 'имя_схемы',
OBJECT_NAME => 'имя_таблицы',
OBJECT_TYPE => dbms_repair.table_object,
FLAGS => dbms_repair.skip_flag);
END;
Всё успешно. Больше битый блок не мешает.
Еще раз огромное спасибо! До новых встреч! :)
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37796398
ээээ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NagirВсё успешно. Больше битый блок не мешает.
т.е. данные вас в бд совсем не интересуют, лишь бы ошибок не было ?
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37838172
zerof84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго время суток!

Анналогичная проблема. Применял FIX_CORRUPT_BLOCK, не помогло. Если я правильно понимаю единственная надежда на бекапы!?


Заранее благодарен!
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37839359
zerof84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как оказалось бекапа нет. Подскажите пожалуйста, есть еще какой нибудь способ востановить битые блоки?

спасибо.
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37839368
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zerof84Анналогичная проблема.Давай сначала - может быть она тебе только кажется аналогичной.
В каком объекте битый блок?
Как применял dbms_repair?
Что значит "не помогло"?
Что ещё из вышеприведенного пробовал?
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37839428
zerof84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходил мимо...,

спасибо что откликнулся!

В этих битых блоках расположено 119 записей. Схема не системная.

Первым делом я попробовал исправить битые блоки с помощю - FIX_CORRUPT_BLOCKS

SQL> SET SERVEROUTPUT ON;
SQL> DECLARE num_fix INT;
2 BEGIN num_fix := 0;
3 DBMS_REPAIR.FIX_CORRUPT_BLOCKS ( SCHEMA_NAME => 'NAME',
4 OBJECT_NAME=> 'STATUSLOG',
5 OBJECT_TYPE => dbms_repair.table_object,
6 REPAIR_TABLE_NAME => 'REPAIR_TABLE',
7 FIX_COUNT=> num_fix);
8 DBMS_OUTPUT.PUT_LINE('num fix: ' || TO_CHAR(num_fix));
9 END;
10 /
num fix: 0

PL/SQL procedure successfully completed.

SQL>
==========================================================
После чего я применил:

BEGIN
DBMS_REPAIR.SKIP_CORRUPT_BLOCKS (
SCHEMA_NAME => 'LEXWEB',
OBJECT_NAME => 'STATUSLOG',
OBJECT_TYPE => dbms_repair.table_object,
FLAGS => dbms_repair.skip_flag);
END;
/

в итоге я потерял 119 записей, которые лежали в 3 битых блоках.

Собственно больше ничего и не пробовал.

Заранее благодарен!
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37839465
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zerof84,

1. Как нашёл 119 битых "записей", что это означает?
2. Как сделали repair_table?
3. Что в ней содержалось?
4. И последнее - если уж сделал skip, что теперь не устраивает?
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37839607
zerof84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходил мимо...,

1. Как нашёл 119 битых "записей", что это означает?

Было зафиксировано что в таблице перед тем как появились битые блоки было определенное количество записей. После того как применил SKIP_CORRUPT_BLOCKS их стало на 119 записей меньше.

2. Как сделали repair_table?

Этой информации у меня нет. Но я думаю что было использовано DBMS_REPAIR.ADMIN_TABLES. А что тут могут быть какие то нюансы?

3. Что в ней содержалось? этого я тоже не знаю.

4. И последнее - если уж сделал skip, что теперь не устраивает?

Эта таблица с битыми блоками является аудит таблицей. Данные не очень важные но клиент требует востановить их.
...
Рейтинг: 0 / 0
ORA-01578: ORACLE data block corrupted
    #37839613
zerof84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходил мимо...,

2. Как сделали repair_table?

если это важный момент......я буду уточнять как она была сделана и что в ней !!!!!
...
Рейтинг: 0 / 0
25 сообщений из 92, страница 1 из 4
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01578: ORACLE data block corrupted
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]