Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Файл system01.dbf имеет нечитабельные блоки  [new]
Grrruk
Member

Откуда:
Сообщений: 30
Причем фигня эта явно уже давно, и бэкапы соответственно давно все поломанные :( Жаль что не настоял когда-то на тупых и простых еженочных cold бэкапах без всяких архивлогов, т.к. потеря за день данных не страшна, а вот морока с восстановлением и постоянно забивающие диск архивлоги...

В результате есть какиет файлы бэкапа и архивлогов, бэкап скорее всего заморожен в районе сентября 2010 и не факт что рабочий и есть поврежденная база (глюк с нечитаемыми некоторыми блоками появился после сбоя одного из дисков в raid и якобы успешным восстановлением с точки зрения контроллера, однако некоторые сектора продолжают быть нечитабельными, судя по всему диски начинают сыпаться хором).

Да, CentOS 4.7, Oracle 11gR1. Фигня происходит при чтении некоторых блоков в середине файла system01.dbf. В принципе я его могу скопировать с помощью dd в другое место, но dbv на получившийся файл ругается, подсовывать его вместо текущего system01.dbf стремно. Пока что база работает, т.е. что-то там не так сильно важное внутри затронуто. Но уже бэкап сделать не получается, слетает:

ORA-19501: read error on file "/u01/oradata/noc/system01.dbf", block number 118272 (block size=8192)
ORA-27072: File I/O error
Linux Error: 2: No such file or directory
Additional information: 4
Additional information: 118272
Additional information: 512000

Есть ли способ обойти нечитаемые блоки, не переделывая базу заново? Типа при копировании файла все что не читается, забить нулями, потом посмотреть что живо, а что нет? В принципе я экспортировал с помощью sqldeveloper все используемые схемы и экспортировал из APEX используемые приложения. Но заново заливать и настраивать...

Все осложняется отсутствием железки где можно было бы поднять тестовую базу и проверить гипотезу (и нежеланием начальства выделять под это чего бы то ни было). Экономы блин :(

--
Life sucks, then you die.
26 янв 11, 18:41    [10136600]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
pravednik
Member

Откуда: Jacksonville, FL
Сообщений: 16268
Grrruk,

сначала определите, каким объектам принадлежат эти блоки.
select segment_name, segment_type, owner
       from dba_extents
      where file_id = <N>
        and <block_n> between block_id
            and block_id + blocks -1;
автор
Жаль что не настоял когда-то на тупых и простых еженочных cold бэкапах

думаете, что это спасает от битых блоков ? ;))
26 янв 11, 18:57    [10136664]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
Grrruk
Member

Откуда:
Сообщений: 30
pravednik
Grrruk,

сначала определите, каким объектам принадлежат эти блоки.
select segment_name, segment_type, owner
       from dba_extents
      where file_id = <N>
        and <block_n> between block_id
            and block_id + blocks -1;


select segment_name, segment_type, owner
from dba_extents
where file_id = 1 and 118272 between block_id
4 and block_id + blocks -1;

SEGMENT_NAME SEGMENT_TYPE OWNER
--------------------------------------------------------------------------------- ------------------ ------------------------------
SOURCE$ TABLE SYS

1 row selected.

автор
Жаль что не настоял когда-то на тупых и простых еженочных cold бэкапах

думаете, что это спасает от битых блоков ? ;))


1. Я бы имел что-то чтобы накатить, а потом залить туда скачанные sqldeveloper'ом данные.
2. Я бы об этом знал, не получив архив на бэкапсервере. А вот наладить архивирование на ходу так, чтобы внутри архива было что-то реально полностью восстанавливабельное только по содержанию того архива не удалось. У меня есть еще полный .dmp всей базы за ноябрь, это накрайняк...
26 янв 11, 19:13    [10136710]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
lark
Member

Откуда: Far Far Away
Сообщений: 172
Я бы посоветовал в первую очередь полный экспорт пока база работает:
exp full=y
А потом можно уже експерименты ставить, искать блоки и т.д.
И как уже правильно отметили cold backup не спасает от битых блоков
26 янв 11, 19:15    [10136714]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
Grrruk
Member

Откуда:
Сообщений: 30
lark
Я бы посоветовал в первую очередь полный экспорт пока база работает:
exp full=y
А потом можно уже експерименты ставить, искать блоки и т.д.
И как уже правильно отметили cold backup не спасает от битых блоков


exp full=y тоже обламывается:

ORA-39126: Worker unexpected fatal error in KUPW$WORKER.UNLOAD_METADATA [PACKAGE_BODY:"FLOWS_030100"."WWV_FLOW_TEMPLATES_UTIL"]
ORA-01115: IO error reading block from file 1 (block # 118335)
ORA-01110: data file 1: '/u01/oradata/noc/system01.dbf'
ORA-27072: File I/O error
Additional information: 4
Additional information: 118334
Additional information: 4096

У меня есть exp full=y за ноябрь, с тех пор если что-то и поменялось, то не так кардинально (одна схема добавилась, и я ее уже экспортировал.
26 янв 11, 19:22    [10136747]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
Grrruk
Member

Откуда:
Сообщений: 30
lark
Я бы посоветовал в первую очередь полный экспорт пока база работает:
exp full=y


Только я экспорт делал через expdp. Сейчас попробую exp.
26 янв 11, 19:29    [10136766]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
denix1
Member

Откуда: Киев
Сообщений: 4656
Grrruk
Linux Error: 2: No such file or directory
это не совсем "нечитаемые блоки"...
26 янв 11, 19:32    [10136786]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
-2-
Member

Откуда:
Сообщений: 15330
SEGMENT_NAME                                                                      SEGMENT_TYPE       OWNER
--------------------------------------------------------------------------------- ------------------ ------------------------------
SOURCE$ TABLE SYS

v$database_block_corruption - глянуть все затронутые объекты.
26 янв 11, 19:32    [10136787]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
Grrruk
Member

Откуда:
Сообщений: 30
-2-
SEGMENT_NAME                                                                      SEGMENT_TYPE       OWNER
--------------------------------------------------------------------------------- ------------------ ------------------------------
SOURCE$ TABLE SYS

v$database_block_corruption - глянуть все затронутые объекты.


SYSTEM@noc>select * from v$database_block_corruption ;

no rows selected
26 янв 11, 19:42    [10136813]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
Grrruk
Member

Откуда:
Сообщений: 30
denix1
Grrruk
Linux Error: 2: No such file or directory
это не совсем "нечитаемые блоки"...


Дело в том, что начало и хвост файла вполне себе читабельны. Если копировать с помощью dd, что-то выпадает, но немного. Вот эти блоки и не читаются. Я честно говоря боюсь напускать на систему fsck сейчас, ибо он может весь этот файл похрючить сразу.
26 янв 11, 19:44    [10136816]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
-2-
Member

Откуда:
Сообщений: 15330
Grrruk
SYSTEM@noc>select * from v$database_block_corruption ;

no rows selected
RMAN> validate database;
26 янв 11, 19:52    [10136838]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
Grrruk
Member

Откуда:
Сообщений: 30
-2-
Grrruk
SYSTEM@noc>select * from v$database_block_corruption ;

no rows selected
RMAN> validate database;


RMAN> validate database;
...
RMAN-03009: failure of validate command on ORA_DISK_1 channel at 01/26/2011 19:56:22
ORA-19501: read error on file "/u01/oradata/noc/system01.dbf", block number 118273 (block size=8192)
ORA-27072: File I/O error
Additional information: 4
Additional information: 118273
Additional information: 503808
...
SYSTEM@noc>select * from v$database_block_corruption ;

no rows selected
26 янв 11, 19:59    [10136861]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
Кто-то уже как бэ
Guest
Grrruk, FLOWS_030100 - это схема apex, если он стоит на базе просто так, то приговорите всю схему.
27 янв 11, 11:07    [10138817]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
Grrruk
Member

Откуда:
Сообщений: 30
Кто-то уже как бэ
Grrruk, FLOWS_030100 - это схема apex, если он стоит на базе просто так, то приговорите всю схему.


Он используется (собственно вся база для залипух на apex и существует). Я все используемые приложения из него экспортировал конечно, но все равно это заново настраивать блин... причем если system01.dbf копировать с помощью dd conv=notrunc,noerror там в шести местах в файле глюкает, значит не только это пострадало.

Ночью тормознул базу и попробовал напустить dbv на system01.dbf. Ругается:

dbv file=/u01/oradata/noc/system01.dbf blocksize=8192 logfile=/tmp/fff.log

DBVERIFY: Release 11.1.0.6.0 - Production on Thu Jan 27 00:33:33 2011

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


DBV-00600: Fatal Error - [28] [27061] [0] [0]dbv file=/u01/oradata/noc/system01.dbf blocksize=8192 logfile=/tmp/fff.log

DBVERIFY: Release 11.1.0.6.0 - Production on Thu Jan 27 00:33:33 2011

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

Вечером поставил такой же оракл на другой машине, попытался залить в него dmp, сделанный с full=y. Восстановление ломается на чем-то:

ORA-39126: Worker unexpected fatal error in KUPW$WORKER.PUT_SQL_FILE [XMLSCHEMA:"OE"."http://localhost:8080/source/schemas/poSource/xsd/purchaseOrder.xsd"]
ORA-06502: PL/SQL: numeric or value error

Сейчас попробую выдернуть экспортом только рабочие схемы, а в тестовую базу апекс тупо заново инсталлировать.
27 янв 11, 11:24    [10138996]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
Grrruk
Member

Откуда:
Сообщений: 30
Пытаюсь перетащить одну из схем. Блин, все было бы хорошо, но sequence не экспортируются с помощью exp... даже если задать CONSISTENT=Y.

А можно их как-то скопом все экспортировать?
27 янв 11, 16:50    [10142209]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
-2-
Member

Откуда:
Сообщений: 15330
Grrruk,

select dbms_metdata.get_ddl('SEQUENCE', sequence_name, sequence_owner) from dba_Sequences
27 янв 11, 17:06    [10142414]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
Grrruk
Member

Откуда:
Сообщений: 30
-2-
Grrruk,

select dbms_metdata.get_ddl('SEQUENCE', sequence_name, sequence_owner) from dba_Sequences


О! Спасибо, почти то что нужно, только оно выдает все в таком виде:

CREATE SEQUENCE "FLOWS_030100"."WWV_FLOW_WORKSHEET_SEQ" MINVALUE 1 MAXVALUE
999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYC
LE

Причем set linesize 1000 не помогает... задал в sqlplus кучу параметров, но бестолку.

set heading off
set feedback off
set linesize 1000
set trimspool on
set verify off
set embedded on
set long 200000
set pages 0

можно как-то сказать get_ddl "не сворачивай строки"?
28 янв 11, 12:04    [10146262]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
-2-
Member

Откуда:
Сообщений: 15330
Grrruk,

get_ddl возвращает clob. должно быть достаточно установить корректные set long и set linesize.
28 янв 11, 13:15    [10146879]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
Grrruk
Member

Откуда:
Сообщений: 30
-2-
Grrruk,

get_ddl возвращает clob. должно быть достаточно установить корректные set long и set linesize.


Помогло такое шаманство (пхал в скрипт все, что попадалось на эту тему под руку, пока не заработало):

SET pagesize 50000
SET LONG 50000
SET linesize 1000
set trimspool on
set tab off
set long 200000 pages 0 lines 131
column txt format a121 word_wrapped

set lines 3174
col txt for a3174
begin      
  DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'PRETTY',false);
end;
/

set heading off
set feedback off
set linesize 1000
set trimspool on
set verify off
set embedded on
set long 200000
set pages 0

select dbms_metadata.get_ddl('SEQUENCE', sequence_name, sequence_owner)||';' as txt from dba_Sequences ;

28 янв 11, 13:27    [10146983]     Ответить | Цитировать Сообщить модератору
 Re: Файл system01.dbf имеет нечитабельные блоки  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
tst> create sequence s1;

Sequence created.

tst> column a format a30
tst> select dbms_metadata.get_ddl('SEQUENCE', 'S1', user) a from dual;

A
------------------------------

   CREATE SEQUENCE  "U1"."S1"
 MINVALUE 1 MAXVALUE 999999999
999999999999999999


tst> column a format a30 word_wrap
tst> select dbms_metadata.get_ddl('SEQUENCE', 'S1', user) a from dual;

A
------------------------------
CREATE SEQUENCE  "U1"."S1"
MINVALUE 1 MAXVALUE
999999999999999999999999999

31 янв 11, 03:48    [10156200]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить