پارامترهای کنترل job در ابزار EXPDP و IMPDP

همانطور که در مطلب “آشنایی با Data Pump” اشاره شد، پروسس master برای انجام عملیات، jobای را  ایجاد می کند که در طول عملیات export/import ، می توان با ارجاع به نام آن job، عملیات مربوطه را کنترل نمود. برای مثال می توان اجرای دستورات را موقتا متوقف کرد و یا بعد از توقف، عملیات را مجددا از سر گرفت.

قصد داریم در این متن پارامترهای مربوط به مانیتور و کنترل jobها را شرح دهیم.

نکته: برای مشاهده نام و وضعیت jobهای در حال اجرا ، می توان از ویو های dba_datapump_jobs  و یا dba_datapump_sessions استفاده نمود.

پارامتر JOB_NAME

JOB_NAME=jobname_string

با استفاده از پارامتر job_name می توان یک نام دلخواه برای job در نظر گرفت و با این نام، job مورد نظر را کنترل کرد.

مثال:

~]$  expdp  ali  dumpfile=test1.dmp   directory=dmpdir   job_name=test_exp_job1

نکته : درصورتی که نام مورد نظر دارای space باشد، می بایست نام در داخل دو کاراکتر ‘ محصور شود.

پارامتر ATTACH

ATTACH [=[schema_name.]job_name]

پارامتر attach، اجازه اتصال به job را از طریق sessionای غیر از session کاربری که ان را اجرا کرده است، امکان پذیر می کند. به مثال زیر توجه کنید:

~]$  expdp  naser/naser  attach=SYS_EXPORT_TABLE_03

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Job: SYS_EXPORT_TABLE_03

Owner: NASER       

.  .  .                 

export>

~]$  impdp  ali/123  attach=SYS_IMPORT_SCHEMA_02

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Job: SYS_IMPORT_SCHEMA_02

Owner: ALI       

.  .  .                 

import>

با اجرای دستورات بالا، ابتدا گزارشی درمورد job و وضعیت فعلی آن نمایش داده می شود و در انتها خط فرمان <export/import آماده دریافت دستورات تعاملی خواهد بود.

در صورت استفاده از پارامتر attach، بدون تعیین مقدار(نام job)، به job درحال اجرای کاربر جاری متصل خواهیم شد.

پارامتر ABORT_STEP 

ABORT_STEP=[n | -1]

این پارامتر سبب خواهد شد تا job بعد از ایجاد، متوقف شود که البته در زمان دیگری می توان آن را مجددا اجرا کرد(با دستور start_job که در ادامه توضیح داده خواهد شد).

همانطور که میدانید در جدول master اطلاعاتی در مورد اسامی آبجکت ها، حجم هرکدام و … قرار می گیرد. یکی از ستونهای این جدول، process_order است که ترتیب دامپ گیری را تعیین می کند:

SQL> select ex.object_type, ex.object_name, ex.object_schema, ex.size_estimate, ex.process_order  from  naser.SYS_EXPORT_TABLE_02  ex  where ex.original_object_schema  is  not null;

مقدار n در پارامتر abort_step (صفر یا بیشتر) ، سبب می شود تا job پس از رسیدن به آبجکتی که process_order آن برابر با n است متوقف شود. مقدار 1- باعث می شود تا job فقط ایجاد شده و در همان ابتدا بدون اجرا متوقف شود:

~]$ expdp naser directory=mydir  dumpfile=test.dmp  full=y  abort_step=-1

Export: Release 11.2.0.3.0 – Production on Tue Jan 1 09:59:01 2019

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Password:

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

FLASHBACK automatically enabled to preserve database integrity.

Job “NASER”.”SYS_EXPORT_FULL_01″ stopped by user request at 09:59:11

همانطور که دیده می شود job پس از ایجاد بصورت خودکار متوقف شده است.

پارامتر KEEP_MASTER

KEEP_MASTER=[YES | NO]

اطلاعات جدول master بلافاصله پس از اتمام کار job، در فایل دامپ کپی و جدول حذف خواهد شد، به عبارت دیگر مقدار پیشفرض پارامتر keep_master برابر no می باشد اگر بخواهیم این جدول پس اتمام job باقی بماند از پارامتر keep_master با مقدار yes استفاده می کنیم.

 

پارامتر STATUS

STATUS=[integer]

با این پارامتر می توان وضعیت فعلی job در حال اجرا را مشاهده کرد. عدد مقابل این پارامتر تعیین کننده فاصله زمانی بین هر نمایش وضعیت است(به ثانیه). مثلا status=300 باعث می شود هر 5 دقیقه وضعیت job نمایش داده شود.

در صورت عدم استفاده از این پارامتر یا status=0 ، وضعیت نمایش داده نمی شود.

نمونه نمایش وضعیت job :

Job: SYS_EXPORT_TABLE_03

  Operation: EXPORT                        

  Mode: TABLE                         

  State: EXECUTING                     

  Bytes Processed: 0

  Current Parallelism: 1

  Job Error Count: 0

  Dump File: /u01/dump/test.dmp

    bytes written: 155,648

Worker 1 Status:

  Process Name: DW00

  State: EXECUTING                     

  Object Schema: MID

  Object Name: TBL_PUB_PARV

  Object Type: TABLE_EXPORT/TABLE/TABLE_DATA

  Completed Objects: 1

  Total Objects: 1

  Completed Rows: 1,340,578

  Worker Parallelism: 1

دستورات یا پارامترهای تعاملی

پارامتر KILL_JOB

با کمک این پارامتر، می توان job ی که با پارامتر attach به آن متصل شده ایم را متوقف و حذف کنیم. بعد از صدور این دستور پیام هشداری صادر و پس از تایید، به فعالیت job جاری خاتمه داده می شود و جدول master و فایل دامپ مربوطه حذف خواهند شد اما logfile باقی می ماند.

پارامتر PARALLEL

PARALLEL=integer

این پارامتر جهت اضافه یا کم کردن تعداد پروسس های یک job استفاده می شود. اضافه کردن پروسس منوط به آن است که فایلی به ازای هر پروسس وجود داشته باشد. با کم کردن تعداد پروسس ها ، پروسس های اضافه صرفا در وضعیت idle قرار گرفته و پس از اتمام عملیات آزاد می شوند.

توجه داشته باشید که این پارامتر در اوراکل 11g به بعد قابل استفاده می باشد.

پارامتر STOP_JOB

STOP_JOB[=IMMEDIATE]

با این دستور job جاری موقتا متوقف می شود و می توان بعدا دوباره آنرا به کار انداخت.

یکی از پروسس های data pump که عملیات استخراج و بارگذاری را انجام می دهد، worker نام دارد که در هر لحظه قسمت خاصی از عملیات را انجام می دهد استفاده بدون مقدار دستور stop_job سبب می شود تا پروسس master (پروسس اصلی مدیریت کننده عملیات)، منتظر بماند تا پروسس worker فعالیت درحال انجام خود را تمام کند و سپس عملیات را متوقف کند، اما استفاده از stop_job=immediate موجب خواهد شد تا master منتظر اتمام کار پروسس worker نماند و در همان لحظه کار را متوقف کند.

پارامتر START_JOB

job ی که قبلا توسط دستور stop_job موقتا متوقف شده بود، با صدور این دستور مجددا اجرا شده و به کارش ادامه خواهد داد.

در زمان import اگر start_job=skip_current اجرا شود، موجب خواهد شد تا job قبلی که با خطا متوقف شده بود، مجددا از اول شروع به کار کند.

پارامتر STATUS

STATUS[=integer]

وضعیت فعلی job را نمایش می دهد.

 

آدرس کانال تلگرام: ORACLEDB@

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *