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

۳ مطلب در تیر ۱۳۹۵ ثبت شده است

در نسخه 12CR1  یک پارامتر جدیدی بنام LOGTIME  به DataPump اضافه شده است، که باعث میشود پیغام هایی که در طول عملیات export و import می آیند به همراه یک timestamp نمایش داده شوند.                   

کاربرد :

شما میتوانید با استفاده از این timestamp متوجه شوید که زمان سپری شده بین فازهای مختلف عملیات DataPump چقدر است . چنین اطلاعاتی میتواند در تشخیص مشکلات مربوط به Performance و همچنین تخمین زمان عملیات های مشابه در آینده مفید واقع شود.


مقادیری که میتوان به این پارامتر اختصاص داد به شرح زیر میباشد :

-          NONE : در طول عملیات export/import یا در logfile هیچ timestamp نمایش داده نشود ( که به صورت پیش فرض این گزینه فعال میباشد)

-          timestamp : STATUS فقط در هنگام اجرای عملیات export/import نمایش داده شود.

-          timestamp : LOGFILE فقط در logfile نمایش داده شود.

-          ALL : هم در logfile ، هم هنگام اجرای عملیات export/import نمایش داده شود.   

 

مثال :

expdp  scott/tiger  directory=DATA_PUMP_DIR  dumpfile=SCOTT.dmp  logfile=SCOTT.log  LOGTIME=ALL

 

قسمتی از خروجی دستور بالا به صورت زیر است :

16-JUL-16 11:18:47.254: Starting "SCOTT"."SYS_EXPORT_SCHEMA_01":  scott/******** directory=DATA_PUMP_DIR dumpfile=SCOTT.dmp logfile=SCOTT.log LOGTIME=ALL

16-JUL-16 11:18:48.321: Estimate in progress using BLOCKS method...

16-JUL-16 11:18:53.041: Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA….

 

 

n        منابع 


1-https://docs.oracle.com/database/121/SUTIL/GUID-56B6B4EA-5A2B-45B8-9B41-8966378C2C3D.htm#SUTIL4281

2-https://oracle-base.com/articles/12c/data-pump-enhancements-12cr1

 

 

  • راهله شاکری

در دیتابیس اوراکل ، شما ممکن است هنگام اجرای (DataPump job (expdp or impdp  با خطاهای زیر مواجه شوید:


ORA-31634: job already exists

ORA-31664: unable to construct unique job name when defaulted

 

این خطا به دلایل زیر رخ میدهد :

-  در دستور  expdp/impdp از یک JOB_NAME مشخص استفاده نکرده باشید و datapump مجبور شود که از یک نام پیش فرض استفاده کند و آن نام به هر دلیلی از قبل وجود داشته باشد. 

-  یا اینکه چند datapump job را با هم به صورت همزمان اجرا کرده باشید و تعداد آن jobها بیشتر از 99 تا باشد ، در چنین حالتی datapump نمیتواند یک job جدید ایجاد کند.


در چنین حالتی برای رفع این مشکل یا باید از یک JOB_NAME مشخص در دستور expdp/impdp استفاده کنید:

expdp system/system SCHEMA=scott DIRECTORY=data_pump_dir DUMPFILE=exp_scott.dmp JOB_NAME=exp_jo

 

و یا اینکه JOBهای قبلی را که وضعبت آنها NOT RUNNING است و اصطلاحا به آنها orphaned datapump jobs گفته میشود را حذف نمایید، که برای اینکار باید مراحل زیر را طی کنید:

1)       شناسایی datapump jobهای موجود در دیتابیس که وضعیت آنها NOT RUNNING است.

 select owner_name, job_name, operation, job_mode, state,     attached_sessions

  from dba_datapump_jobs

 'where owner_name = '&SCHEMA

    'and state = 'NOT RUNNING

  ;order by 1, 2

بجای &SCHEMA باید نام اسکیمایی که expdp/impdp با آن انجام میشود نوشته شود.

 

2)       شناسایی جداول اصلی مرتبط  با آن jobها

  select o.status, o.object_id, o.object_type, o.owner||'.'||object_name "OWNER.OBJECT",o.created,j.state

   from dba_objects o, dba_datapump_jobs j

 where o.owner=j.owner_name

    and o.object_name=j.job_name

    'and o.owner='&SCHEMA

    'and j.state='NOT RUNNING

  ;order by 4,2

 

3)       پاک کردن جداولی که در مرحله 2 تولید شده اند. 

;<drop table <tablename

 

n        منابع 


1- http://oracledba-duniya.blogspot.com/2013/05/resolving-ora-31634-job-already.html 

2- Running DataPump Jobs Results In ORA-31634 ORA-31664 (Doc ID 138416)

  • راهله شاکری

تا قبل از اوراکل 12C ، ماکزیمم سایزی که برای data typeهای VARCHAR2, NVARCHAR2 ,RAW میشد در نظر گرفت به صورت زیر بود:


 VARCHAR2 : 4000 bytes -   

NVARCHAR2 : 4000 bytes -   

RAW : 2000 bytes -   


از اوراکل 12C ، ماکزیمم مقادیر این پارامترها به صورت زیر تغییر پیدا کرده است :


   - VARCHAR2 : 32767 bytes

   - NVARCHAR2 : 32767 bytes

   - RAW : 32767 bytes


برای اینکه بتوانید از مقادیر جدید این پارامترها در اوراکل 12C  استفاده کنید باید مقدار پارامتر  MAX_STRING_SIZE  را از STANDARD  به  EXTENDED  تغییر دهید .


   CONN / AS SYSDBA

   SHUTDOWN IMMEDIATE;

   STARTUP UPGRADE;

   ALTER SYSTEM SET max_string_size=extended;

   @?/rdbms/admin/utl32k.sql

   SHUTDOWN IMMEDIATE;

   ;STARTUP   

   

نکته 1)  شما نمیتوانید مجددا مقدار پارامتر MAX_STRING_SIZE را از EXTENDED  به STANDARD  تغییر دهید.

نکته 2)  در صورت تغییر سایز DataTypeها نمی توانید مجددا سایز رو به مقدار قبلی تغییر بدهید.

  • راهله شاکری