powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / expdp -> lob corruption
11 сообщений из 11, страница 1 из 1
expdp -> lob corruption
    #38405462
Уралмаш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем,

Была у нас когда то боевая база и в один прекрасный день мы покинули её, перехав на другой сервер с другой базой. А она осталась и работала сама по себе.

И в один прекрасный день, это уже где то через полгода/год, от пользователей пришел запрос нам нужны исторический отчеты.

Обана сказали мы и начали тащить от старой боевой в новую.
Все шло хорошо пока не произошло это при экспорте одной большой таблицы весом 177 гиг:
Код: plsql
1.
2.
3.
4.
ORA-31693: Table data object "owner"."tablo" failed to load/unload and is being skipped due to error:
ORA-02354: error in exporting/importing data 
ORA-01555: snapshot too old: rollback segment number with name "" too small 
ORA-22924: snapshot too old



поискал в нете и начал процесс проверки на таблицы lob corruption используя:
Код: 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.
set serverout on
exec dbms_output.enable(100000);
declare
  pag    number;
  len    number;
  c      varchar2(10);
  charpp number := 8132/2;

begin
  for r in (select rowid rid, dbms_lob.getlength (<your_clob_column>) len
            from   <your_table_with_clcob_column>) loop
    if r.len is not null then
      for page in 0..r.len/charpp loop
        begin
          select dbms_lob.substr (<your_clob_column>, 1, 1+ (page * charpp))
          into   c
          from   <your_table_with_clcob_column> 
          where  rowid = r.rid;
        
        exception
          when others then
            dbms_output.put_line ('Error on rowid ' ||R.rid||' page '||page);
            dbms_output.put_line (sqlerrm);
        end;
      end loop;
    end if;
  end loop;
end;
/



Да вот теперь эот скрипт висит целыми днями и думает.
В дальнейшем исключив закорапченные строки при экспортею

Как можно распаралелить запуск этого скрипта?

Или я вообще не тем путем прошелся? где что еще проверить?

Линк между 2 сайтами, где лежат новая и старая, 100 мегабит - dblink сработает или же тормозить будет???

Спасибоа за ваши коменты
...
Рейтинг: 0 / 0
expdp -> lob corruption
    #38405489
ILoveCoffee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уралмаш,

А чего, задрать ретеншн и увеличить анду уже не помогает ?
...
Рейтинг: 0 / 0
expdp -> lob corruption
    #38405492
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уралмашя вообще не тем путем прошелся . RTFM PCTVERSION or RETENTION (FAQ)
Код: 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.
create table plch_lob(c clob)
  lob (c) store as plch_lob$lob$c (disable storage in row pctversion 0)
;
insert into plch_lob values(rpad('-', 4000, '-'));
commit;

declare
  x sys_refcursor;
  c clob;
  procedure DmlInAnotherSession(s varchar2)
  is
    pragma autonomous_transaction;
  begin
    update plch_lob set c = rpad(s, 4000, s);
    commit;
  end DmlInAnotherSession;
begin
  open x for select * from plch_lob;
  DmlInAnotherSession('+');
  DmlInAnotherSession('@');
  fetch x into c;
end;
/

*
ERROR at line 1:
ORA-01555: snapshot too old: rollback segment number  with name "" too small
ORA-22924: snapshot too old
ORA-06512: at line 16

drop table plch_lob;
...
Рейтинг: 0 / 0
expdp -> lob corruption
    #38405494
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ILoveCoffeeувеличить андуНу-ну.
...
Рейтинг: 0 / 0
expdp -> lob corruption
    #38405497
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
expdp -> lob corruption
    #38405503
Фотография Мы Любим Отчёты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dblink у вас не сработает.

Для параллеленья всего надо использовать mod(dbms_rowid.rowid_block_number(rowid), 12), но оно вам не поможет тоже.
...
Рейтинг: 0 / 0
expdp -> lob corruption
    #38405563
ILoveCoffee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicILoveCoffeeувеличить андуНу-ну.

Дайте ссылку на этот квиз, пожалуйста.
...
Рейтинг: 0 / 0
expdp -> lob corruption
    #38406366
Уралмаш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот таблица, ваши коментарии
Код: 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.
CREATE TABLE "OWNER"."TABLO"
(
   "ID"       NUMBER NOT NULL ENABLE,
   "HEADER"   CLOB DEFAULT EMPTY_CLOB (),
   "BODY"     CLOB DEFAULT EMPTY_CLOB ()
)
SEGMENT CREATION IMMEDIATE
PCTFREE 10
PCTUSED 40
INITRANS 1
MAXTRANS 255
NOCOMPRESS
LOGGING
STORAGE (INITIAL 65536
         NEXT 1048576
         MINEXTENTS 1
         MAXEXTENTS 2147483645
         PCTINCREASE 0
         FREELISTS 1
         FREELIST GROUPS 1
         BUFFER_POOL DEFAULT
         FLASH_CACHE  DEFAULT
         CELL_FLASH_CACHE DEFAULT)
TABLESPACE "OWNER_DATA01"
LOB ("HEADER")
	STORE AS BASICFILE (TABLESPACE "OWNER_DATA01"
				ENABLE STORAGE IN ROW CHUNK 8192
				RETENTION
				NOCACHE
				LOGGING
				STORAGE(INITIAL 65536
					NEXT 1048576
					MINEXTENTS 1
					MAXEXTENTS 2147483645
					PCTINCREASE 0
					FREELISTS 1
					FREELIST GROUPS 1
					BUFFER_POOL DEFAULT
					FLASH_CACHE DEFAULT
					CELL_FLASH_CACHE DEFAULT
					)
				)
LOB ("BODY") 
	STORE AS BASICFILE (TABLESPACE "OWNER_DATA01"
				ENABLE STORAGE IN ROW CHUNK 8192
				RETENTION
				NOCACHE
				LOGGING
				STORAGE(INITIAL 65536
					NEXT 1048576
					MINEXTENTS 1
					MAXEXTENTS 2147483645
					PCTINCREASE 0
					FREELISTS 1
					FREELIST GROUPS 1
					BUFFER_POOL DEFAULT
					FLASH_CACHE DEFAULT
					CELL_FLASH_CACHE DEFAULT
					)
				)
ENABLE ROW MOVEMENT
/



Вот АНДУ
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SQL>  sho parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     3600
undo_tablespace                      string      UNDOTBS1
...
Рейтинг: 0 / 0
expdp -> lob corruption
    #38406808
beemer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уралмаш,

Металинк в данном случае предлагает - выявить rowid битых lobов и, либо исключить их при экспорте, либо удалить и провести стандартный экспорт.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
expdp -> lob corruption
    #39354982
Paranoiac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,коллеги!
Была выявлена такая же ошибка при экспорте данных и было принято решение об удалении покорапшенной записи через
update xx.xxx set client_fonts=empty_clob() where clientparam_id=aaa;
и насколько я помню,проверено,что все ок
но через какое-то время заметили,что в alert валятся ошибки типа ORA 600 [25027]
стали копать и заметили,что в этом clob нету значении,да и lob сегменты куда-то пропали.
что можно сделать?куда попробовать копать?
...
Рейтинг: 0 / 0
expdp -> lob corruption
    #39354991
Paranoiac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извините,мой косяк,видимо уже из-за недосыпа( lob'ы на месте,но в эту колонку не производится запись(
как можно это вылечить?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / expdp -> lob corruption
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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