Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 expdp -> lob corruption  [new]
Уралмаш
Guest
Привет всем,

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

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

Обана сказали мы и начали тащить от старой боевой в новую.
Все шло хорошо пока не произошло это при экспорте одной большой таблицы весом 177 гиг:
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 используя:
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 сработает или же тормозить будет???

Спасибоа за ваши коменты
24 сен 13, 07:49    [14875599]     Ответить | Цитировать Сообщить модератору
 Re: expdp -> lob corruption  [new]
ILoveCoffee
Member

Откуда: Astana
Сообщений: 986
Уралмаш,

А чего, задрать ретеншн и увеличить анду уже не помогает ?
24 сен 13, 08:47    [14875679]     Ответить | Цитировать Сообщить модератору
 Re: expdp -> lob corruption  [new]
Elic
Member

Откуда:
Сообщений: 29980
Уралмаш
я вообще не тем путем прошелся.
RTFM PCTVERSION or RETENTION (FAQ)
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;
24 сен 13, 08:50    [14875682]     Ответить | Цитировать Сообщить модератору
 Re: expdp -> lob corruption  [new]
Elic
Member

Откуда:
Сообщений: 29980
ILoveCoffee
увеличить анду
Ну-ну.
24 сен 13, 08:51    [14875684]     Ответить | Цитировать Сообщить модератору
 Re: expdp -> lob corruption  [new]
Elic
Member

Откуда:
Сообщений: 29980
RTFM ORA-22924: snapshot too old (FAQ)
24 сен 13, 08:54    [14875689]     Ответить | Цитировать Сообщить модератору
 Re: expdp -> lob corruption  [new]
Мы Любим Отчёты
Member

Откуда: Нашёл -- молчи, потерял -- молчи
Сообщений: 383
Dblink у вас не сработает.

Для параллеленья всего надо использовать mod(dbms_rowid.rowid_block_number(rowid), 12), но оно вам не поможет тоже.
24 сен 13, 09:00    [14875704]     Ответить | Цитировать Сообщить модератору
 Re: expdp -> lob corruption  [new]
ILoveCoffee
Member

Откуда: Astana
Сообщений: 986
Elic
ILoveCoffee
увеличить анду
Ну-ну.


Дайте ссылку на этот квиз, пожалуйста.
24 сен 13, 09:55    [14875899]     Ответить | Цитировать Сообщить модератору
 Re: expdp -> lob corruption  [new]
Уралмаш
Guest
Вот таблица, ваши коментарии
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
/


Вот АНДУ
SQL>  sho parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     3600
undo_tablespace                      string      UNDOTBS1
24 сен 13, 17:08    [14878766]     Ответить | Цитировать Сообщить модератору
 Re: expdp -> lob corruption  [new]
beemer
Member

Откуда: Москва
Сообщений: 262
Уралмаш,

Металинк в данном случае предлагает - выявить rowid битых lobов и, либо исключить их при экспорте, либо удалить и провести стандартный экспорт.
25 сен 13, 09:37    [14880595]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: expdp -> lob corruption  [new]
Paranoiac
Member

Откуда: Saint Petersburg
Сообщений: 389
Добрый день,коллеги!
Была выявлена такая же ошибка при экспорте данных и было принято решение об удалении покорапшенной записи через
update xx.xxx set client_fonts=empty_clob() where clientparam_id=aaa;
и насколько я помню,проверено,что все ок
но через какое-то время заметили,что в alert валятся ошибки типа ORA 600 [25027]
стали копать и заметили,что в этом clob нету значении,да и lob сегменты куда-то пропали.
что можно сделать?куда попробовать копать?
26 ноя 16, 13:06    [19937198]     Ответить | Цитировать Сообщить модератору
 Re: expdp -> lob corruption  [new]
Paranoiac
Member

Откуда: Saint Petersburg
Сообщений: 389
извините,мой косяк,видимо уже из-за недосыпа( lob'ы на месте,но в эту колонку не производится запись(
как можно это вылечить?
26 ноя 16, 13:22    [19937254]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить