دیتابیس اوراکل

دیتابیس اوراکل
طبقه بندی موضوعی

حل خطاهای ORA-31693,ORA-02354,ORA-01555 موقع گرفتن Full Export از دیتابیس

یکی از دیتابیسها (ورژن 12.2.0.1) موقع Full EXPDP با خطای زیر مواجه میشد:

 

ORA-31693: Table data object "USER1"."BC_DRAFT" 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 17 with name "_SYSSMU17_1955885910$" too small

 

برای حل این مشکل کارهای زیر انجام گرفت: 

 

  • پیداکردن مقدار فعلی پارامتر undo_retention

SQL> show parameter undo

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

undo_retention                       integer     4107

 

  • پیدا کردن زمان اجرای طولانی ترین کوئری در دیتابیس

SQL>  select max(maxquerylen) from v$undostat;

 

MAX(MAXQUERYLEN)

----------------

           18695

 

  • تغییر دادن پارامتر undo_retention بر اساس زمان اجرای طولانی ترین کوئری در دیتابیس

SQL> alter system set undo_retention=20000 scope=both;

 

  • چون این جدول که با خطا مواجه شده، دارای ستونهای از نوع lob هم هست، مقدار retention آن ستونها نیز باید افزایش پیدا کند.

 

select column_name,retention

  from dba_lobs

 where owner='USER1'

   and table_name='BC_DRAFT';

 

select 'alter table PARGAR.BC_DRAFT_BODY modify lob('||column_name||') (pctversion 5);'

  from dba_lobs

 where owner='USER1'

   and table_name='BC_DRAFT';

  

select 'alter table PARGAR.BC_DRAFT_BODY modify lob('||column_name||') (retention);'

  from dba_lobs

 where owner='USER1'

   and table_name='BC_DRAFT';

 

  • راهله شاکری

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
تجدید کد امنیتی