Exporting dump from Oracle table with lob columns

Сайн байна уу,

Oracle Database 18c - дээр байгаа CLOB төрлийн багануудтай table -ыг expdp tool ашиглаж авах гэж оролдоход эхлээд 1-р error гарч байсан ба 1-р action авсаны дараа 2-р error гараад маш удаан ажиллаад авч чадахгүй алдаа зааж байна. CLOB төрлийн баганатай table-ыг ер яаж авбал зохистой вэ ? Энэ тохиолдолд export -ыг хурдан авах арга юу байна?

1-р Error Log:

ORA-31693: Table data object “TBAADM”.“PY_MSG_STAGING_DETAILS” 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 48 with name “_SYSSMU48_2122747253$” too small

1-р Action:

alter table TBAADM.PY_MSG_STAGING_DETAILS modify lob(PYMT_MSG) (retention);
alter table TBAADM.PY_MSG_STAGING_DETAILS modify lob(REASON_FOR_FAILURE) (retention);
alter table TBAADM.PY_MSG_STAGING_DETAILS modify lob(AS_IS_MSG) (retention);

undo_retention: 7200

2-р Error Log:

Job “EXPUSER”.“SYS_EXPORT_SCHEMA_01” stopped due to fatal error at Sat Sep 28 23:06:33 2019 elapsed 0 05:04:53

Lob - г их олон асуудал яригдана.

  • Lob агуулсан table - с яг lob - н create script - г аваад явуулаач?
  • Lob агуулсан table - г purge хийдэг үү?
  • Lob - н storage нь BasicFile, SecureFile аль нь вэ?

Default - р BasicFile storage - тэй Lob column байгаа байх. Lob - г аль болох жижигхэн, DML хурдан болгох maintaince-үүд маш сайн хийх шаардлагатай.

  1. Migrate basicFile to Securefile. (Апп дээр функциональ асуудал гарах эсэхийг чеклэх)
  • basicFile lob compress хийгдэдгүй, delete үйлдэл хийгдсэний дараа чөлөөлөгдсөн зайг автоматоор цэвэрлэдгүй. delete хийсэн ч гэсэн block нь used юм шиг үлдэнэ гэсэн үг. Тэгхээр SecureFile lob болговол дээрх асуудлууд шийдэгдэнэ.

  • Ачааллын бус цагаар table rename хийнэ. (Lob агуулсан table-г)

  • Шинээр create as table үүсгэнэ.
    CREATE TABLE TABLE_NAME(
    )
    LOB (SERVICE_DATA) STORE AS SECUREFILE SEC_LOB1 (
    TABLESPACE TBS_NAME
    ENABLE STORAGE IN ROW
    CHUNK 8192
    DEDUPLICATE
    COMPRESS HIGH
    NOCACHE
    LOGGING
    STORAGE (
    INITIAL 104K
    NEXT 1M
    MINEXTENTS 1
    MAXEXTENTS UNLIMITED
    PCTINCREASE 0
    BUFFER_POOL DEFAULT
    FLASH_CACHE DEFAULT
    CELL_FLASH_CACHE DEFAULT
    ))

  • Backup old table

  • Drop old table (drop хийхэд BasicLob агуулсан tablespace цэвэрлэгдэнэ.)

  • import some data from old to new table.

  1. Maintance жоб

Байнгийн DML үйлдэл хийгддэг бол high compression enable болсноор performance - д нөлөөлж магад, тэгвэл backup table үүсгээд шөнө бүр online table - с backup table - рүү сүүлийн X хоногийг үлдээгээд зөөдөг жоб тавих.

BasicFile storage Lob - г backup table - рүү зөөсний дараа, доорх коммандаар dirty block цэвэрлэж, tablespace - ээ цэвэрлэнэ…

   execute immediate 'alter table owner.table_name modify lob(lob_name) (deallocate unused)';
  execute immediate 'alter table owner.table_name modify lob(lob_name) (freepools 1)';
  execute immediate 'alter table owner.table_name modify lob(lob_name) (shrink space cascade)';
  1. Хэрвээ дээрх үйлдлүүдийг хийх боломжгүй бол, ачааллын бус цагаар доорх коммандаар lob - н dirty block - уудаа цэвэрлээд ахиад dump аваад үзээрэй.

execute immediate ‘alter table owner.table_name modify lob(lob_name) (deallocate unused)’;*
execute immediate ‘alter table owner.table_name modify lob(lob_name) (freepools 1)’;
execute immediate ‘alter table owner.table_name modify lob(lob_name) (shrink space cascade)’;

1 Like

Lob column -уудыг доорх байдлаар үүсгэсэн байна. SECUREFILE байгаа учраас dirty block цэвэрлэх шаардлагагүй гэсэн үг үү?

LOB (PYMT_MSG) STORE AS SECUREFILE (
TABLESPACE LOG_HISTORY
ENABLE STORAGE IN ROW
CHUNK 8192
NOCACHE
LOGGING
STORAGE (
INITIAL 104K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
))
LOB (REASON_FOR_FAILURE) STORE AS SECUREFILE (
TABLESPACE LOG_HISTORY
ENABLE STORAGE IN ROW
CHUNK 8192
NOCACHE
LOGGING
STORAGE (
INITIAL 104K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
))
LOB (AS_IS_MSG) STORE AS SECUREFILE (
TABLESPACE LOG_HISTORY
ENABLE STORAGE IN ROW
CHUNK 8192
NOCACHE
LOGGING
STORAGE (
INITIAL 104K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
))

Lob элементийг dedup болон compress боломжтой болно.(BasicFile Үед боломжгүй) Мөн auto space reclamation боломжтой болно, гэхдээ 11g дээр бол яг free block болохгүй байсан санагдаж байна, 18c дээр судлаад үзээрэй. Lob хэт томроод байдаг бол функциональ team - тэйгээ яриад тодорхой retention-р backup table - рүү жобоор зөөдөг болсон нь л дээрдээ.

аан танайх угаасаа SecureFile юм байнашд, Тэгвэл perfomance нь гайгүй гэвэл compress & dedup - г нь идэвхжүүлчээч хө,

Daily purge хийдэг бол tablespace нь цэвэрлэгдэж байна уу, улам л нэмэгдээд байна уу