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

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

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

Обана сказали мы и начали тащить от старой боевой в новую.
Все шло хорошо пока не произошло это при экспорте одной большой таблицы весом 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
24.09.2013, 08:47
    #38405489
ILoveCoffee
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
expdp -> lob corruption
Уралмаш,

А чего, задрать ретеншн и увеличить анду уже не помогает ?
...
Рейтинг: 0 / 0
24.09.2013, 08:50
    #38405492
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
expdp -> lob corruption
Уралмашя вообще не тем путем прошелся . 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
24.09.2013, 08:51
    #38405494
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
expdp -> lob corruption
ILoveCoffeeувеличить андуНу-ну.
...
Рейтинг: 0 / 0
24.09.2013, 08:54
    #38405497
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
expdp -> lob corruption
...
Рейтинг: 0 / 0
24.09.2013, 09:00
    #38405503
Мы Любим Отчёты
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
expdp -> lob corruption
Dblink у вас не сработает.

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

Дайте ссылку на этот квиз, пожалуйста.
...
Рейтинг: 0 / 0
24.09.2013, 17:08
    #38406366
Уралмаш
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
expdp -> 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.
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
25.09.2013, 09:37
    #38406808
beemer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
expdp -> lob corruption
Уралмаш,

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


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