همانطور که در مطلب “آشنایی با 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 را نمایش می دهد.