Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01578 в LOB сегменте / 14 сообщений из 14, страница 1 из 1
29.10.2013, 10:53
    #38444579
VGusev2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
Всем привет! Может кто-то знает как можно проскочить один проблемный блок в LOB сегменте?

Код: plsql
1.
2.
3.
4.
5.
SQL> SELECT SEGMENT_TYPE,OWNER,SEGMENT_NAME FROM DBA_EXTENTS WHERE FILE_ID = 51 AND 133824 BETWEEN BLOCK_ID AND BLOCK_ID+BLOCKS-1;

SEGMENT_TYPE	   OWNER							SEGMENT_NAME
------------------ ------------------------------   --------------------------
LOBSEGMENT	   		SAPSR3							SYS_LOB0000055255C00005$$



Код: plsql
1.
2.
3.
SQL> execute dbms_repair.skip_corrupt_blocks('SAPSR3', 'DYNPSOURCE');

PL/SQL procedure successfully completed.


Код: plsql
1.
2.
3.
4.
5.
SQL> SELECT OWNER, TABLE_NAME, SKIP_CORRUPT FROM DBA_TABLES WHERE TABLE_NAME ='DYNPSOURCE';

OWNER			       TABLE_NAME		      SKIP_COR
------------------------------ ------------------------------ --------
SAPSR3			       DYNPSOURCE		      ENABLED





Код: plsql
1.
2.
3.
4.
5.
6.
SQL> create table DYNPSOURCE_corrupt AS SELECT * FROM SAPSR3.DYNPSOURCE;
create table DYNPSOURCE_corrupt AS SELECT * FROM SAPSR3.DYNPSOURCE
                                                        *
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 51, block # 133824)
ORA-01110: data file 51: '/oracle/PRD/sapdata3/sr3700_11/sr3700.data11'





Сам data файл не имеет повреждения:
Код: plsql
1.
2.
# cp /oracle/PRD/sapdata3/sr3700_11/sr3700.data11 /tmp
#



Когда происходит полное сканирование таблицы, вылетает ошибка блока. Соот-но манипуляции вида: создать новую таблицу с исключением повреждённой rowid также не увенчались успехом. :(
...
Рейтинг: 0 / 0
29.10.2013, 10:56
    #38444584
VGusev2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
Извиняюсь, забыл указать версию ORA:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select BANNER from V$VERSION;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE	10.2.0.4.0	Production
TNS for HPUX: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
...
Рейтинг: 0 / 0
29.10.2013, 13:59
    #38444986
trace111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
VGusev2007,

Import-Export не пройдет?
...
Рейтинг: 0 / 0
29.10.2013, 14:59
    #38445167
VGusev2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
trace111,

Может и пройдёт, но я думаю что при импорте будет делаться полное сканирование таблицы - а оно валится...

Вас не затруднит подсказать как мне можно сделать импорт/экспорт таблицы: SAPSR3.DYNPSOURCE ?
...
Рейтинг: 0 / 0
29.10.2013, 15:51
    #38445311
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
VGusev2007,

ORA-1578 ORA-26040 in a LOB segment - Script to solve the errors (Doc ID 293515.1)
...
Рейтинг: 0 / 0
29.10.2013, 16:04
    #38445343
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
VGusev2007,

STFF
...
Рейтинг: 0 / 0
29.10.2013, 16:17
    #38445373
VGusev2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
xtender,

А где ноты и документацию по ORACLE получать? Я так понял Doc ID 293515.1 - это нота от оракла? У нас есть действующая поддержка от SAP, видимо ORA туда тоже должен входить...
...
Рейтинг: 0 / 0
29.10.2013, 16:18
    #38445376
VGusev2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
123йй,

я если честно ничего не понял из той темы. Но насколько я понял, проблему они не решили ведь... :(
...
Рейтинг: 0 / 0
29.10.2013, 16:20
    #38445382
VGusev2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
xtender,

http://theone79.tistory.com/839 Вроде оно..?
...
Рейтинг: 0 / 0
30.10.2013, 13:31
    #38446576
VGusev2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
Решено.

Сходил по ссылке: http://theone79.tistory.com/839


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
SQL> select owner, segment_name, segment_type 
  2  from   dba_extents
  3  where  file_id = 51
  4  and 133824 between block_id and block_id + blocks-1;  

OWNER
------------------------------
SEGMENT_NAME
--------------------------------------------------------------------------------
SEGMENT_TYPE
------------------
SAPSR3
SYS_LOB0000055255C00005$$
LOBSEGMENT


SQL> select table_name, column_name
  2  from   dba_lobs
  3  where  segment_name = 'SYS_LOB0000055255C00005$$'
  4  and    owner = 'SAPSR3';

TABLE_NAME
------------------------------
COLUMN_NAME
--------------------------------------------------------------------------------
DYNPSOURCE
LOGICINFO


SQL> select table_name 
  2  from dba_lobs 
  3  where segment_name = 'SYS_LOB0000055255C00005$$'
  4  and owner = 'SAPSR3'; 

TABLE_NAME
------------------------------
DYNPSOURCE


SQL> describe SAPSR3.DYNPSOURCE;
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 PROGNAME				   NOT NULL VARCHAR2(120)
 DYNPNUMBER				   NOT NULL VARCHAR2(12)
 R3STATE				   NOT NULL VARCHAR2(3)
 FIELDINFO					    BLOB
 LOGICINFO					    BLOB
 EXTENSIONS					    BLOB

SQL> create table corrupted_data (corrupted_rowid rowid);

set concat off
declare
  error_1578 exception;
  pragma exception_init(error_1578,-1578);
  n number;
begin
   for cursor_lob in (select rowid r, &&lob_column from &&table_owner.&table_with_lob) loop
   begin
     n:=dbms_lob.instr(cursor_lob.&&lob_column,hextoraw('889911')) ;
   exception
     when error_1578 then
       insert into corrupted_data values (cursor_lob.r);
       commit;
   end;
  end loop;
end;
/ 
Table created.

На вопросы вводим:

Enter value for lob_column: LOGICINFO
Enter value for table_owner: SAPSR3
Enter value for table_with_lob: DYNPSOURCE
old   6:    for cursor_lob in (select rowid r, &&lob_column from &&table_owner.&table_with_lob) loop
new   6:    for cursor_lob in (select rowid r, LOGICINFO from SAPSR3.DYNPSOURCE) loop
old   8:      n:=dbms_lob.instr(cursor_lob.&&lob_column,hextoraw('889911')) ;
new   8:      n:=dbms_lob.instr(cursor_lob.LOGICINFO,hextoraw('889911')) ;


PL/SQL procedure successfully completed.


SQL> set concat off
SQL> update &table_owner.&table_with_lob 
  2  set &lob_column = empty_blob() 
  3  where rowid in (select corrupted_rowid from corrupted_data);
Enter value for table_with_lob: DYNPSOURCE
old   1: update &table_owner.&table_with_lob
new   1: update SAPSR3.DYNPSOURCE
old   2: set &lob_column = empty_blob()
new   2: set LOGICINFO = empty_blob()

1 row updated.

SQL> commit;
Commit complete.



Как-то так. :)
...
Рейтинг: 0 / 0
30.10.2013, 13:32
    #38446582
VGusev2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
xtender, спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
03.05.2018, 16:55
    #39639555
kabanasy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
VGusev2007, извиняюсь за беспокойство. В теме ora-01578 вы описывали способ борьбы с 01578 в lobsegments. Я выпонил процедуры, которые описаны в топике, но v$database_block_corruption все равно остался при своем, с записями. Я может что-то не допонял. Если можно вкратце поясните что делает ваш способ решения.
...
Рейтинг: 0 / 0
03.05.2018, 17:06
    #39639567
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
VGusev2007xtender,

А где ноты и документацию по ORACLE получать? Я так понял Doc ID 293515.1 - это нота от оракла? У нас есть действующая поддержка от SAP, видимо ORA туда тоже должен входить...
Насколько я понимаю, в ряде случае поддержку по СУБД может оказывать та же компания, что и поддержку по прикладному ПО.

Попробуйте написать в саппорт ERP системы, опишите проблему, попросите дать доступ на металинк или, в крайнем случае, прислать нужные ноты от Oracle.
...
Рейтинг: 0 / 0
03.05.2018, 17:06
    #39639568
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORA-01578 в LOB сегменте
p.s. блин.... не заметил, что пост древний ((((
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01578 в LOB сегменте / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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