Data Pump ابزاري هستند كه توسط اراكل ارائه گرديده است. مي توان از اين ابزارها براي Backup و Restore كردن داده ها، انتقال سریع داده هاي يك بانك به بانك اطلاعاتي ديگر و همچنين انتقال داده ها از يكVersion به Version بالاتر بانك اطلاعاتي، استفاده نمود.
و دارای اجزای زیر می باشد :

1. دستورات خط فرمان expdp و impdp
2. DBMS_DATAPUMP , pl/sql pacageای که به نام Data Pump API شناخته می شود
3. DBMS_METADATA , pl/sql pacage ای که به نام Metadata API

ابزار خط فرمان Data pump که از دستورات expdp و impdp استفاده می کند بسیار شبیه به ابزار imp/exp اراکل می باشد ولی این دو ابزار کاملا متفاوت و جدا از هم هستند.
برای استفاده از این ابزار باید دارای مجوزهای زیر باشید : EXP_FULL_DATABASE و IMP_FULL_DATABASE

برخي از فوايد Import و Export Data pumpعبارتند از:

 ذخيره داده هاي بانك اطلاعاتي در فايل هاي سيستم عاملي ( dump file )
 ذخيره تعاريف اشياء بانك اطلاعاتي (دستورات DDL كه اشياء بانك اطلاعاتي را تعريف مي كند)
 انتخاب يك و يا چند بخش بانك اطلاعاتي براي Backup
 امکان تغییر ساختار بانک اطلاعاتی هنگام import داده ها در سطح schema , tabalespace و بانک اطلاعاتی .
 انتقال اشياء يك Schemaي بانك اطلاعاتي در Schemaي ديگر بانك
 انتقال داده هاي بانك اطلاعاتي از يك سيستم عامل به سيستم عامل ديگر
 انتخاب نسخه database مقصد برای انتقال اطلاعات
 امكان Backup به صورت Incremental و ذخيره مجدد آن


Export از اشياء بانك اطلاعاتي دو تعريف زير را ذخيره مي كند:
• تعاريف DDL اشياء بانك اطلاعاتي
• داده هاي بانك اطلاعاتي كه به صورت كد شده در فايل Export قرار گرفته است.


Data pump Export شامل اطلاعاتي درباره جداول و يا اشياء *بانك اطلاعاتي و داده هاي ذخيره شده در جداول مانند دستور ايجاد جدول، Indexهاي جداول، مجوزهاي واگذار شده به ساير كاربران، Constraintهاي ايجاد شده بر روي ستونهاي جدول، اطلاعات مربوط به فضاهاي فيزيكي جدول (مانند اندازه Initial Extent ، Next Extent ، ...) و... مي باشد. Export Data pump اين اطلاعات را دريك فايل سيستم عاملي ذخيره مي كند. فايل سيستم عاملي كه توسط Export Data pump ايجاد مي گردد، DUMP فايل ناميده مي شود. فايل هايDUMP به فرمت باينري بوده و عمدتاً در عمل Import Data pump مورد استفاده قرار مي گيرند. مي توان براي فايل هاي ايجاد شده توسط Export Data pump از طريق سيستم عامل يك نام در نظر گرفت. نام پيش فرضي كه براي فايل Export Data pump در نظر گرفته مي شود EXPDAT.DMP مي باشد.

فايل هاي ايجاد شده توسط Data pump Export، مي توانند بعنوان Backupهاي بانك اطلاعاتي نگهداري شوند. اين فايل ها بر روي ديسك و يا ساير ساختار هاي ذخيره سازي داده قابل نگهداري مي باشند و از اين اطلاعات ذخيره شده براي عمل Import و يا Recovery بانك اطلاعاتي استفاده مي شود.

 Import Data pump فقط مي تواند فايل هاي ايجاد شده توسط Export Data pump را بخواند و قادر به خواندن dump file تولید شده توسط ابزار imp/exp نمی باشد


 قواعد Export Data pump عبارتند از :
• هر کاربر بدون نیاز به مجوز می تواند از اشیا Shema ی خود Export بگیرد.
• برای Export از اشیا سایر کاربران بانک باید مجوز DBA و یا Exp_Full_ Database واگذار شود.


مثال زير اجرا *دستور *Export را نشان مي دهد:

C:\> expdp hr/hr TABLES=employees,jobs DUMPFILE=dpump_dir1:table.dmp NOLOGFILE=y


مثال زير اجرا Export را از طريق يك فايل پارامتري نشان مي دهد :

C:\>Exp userid = system/manager DUMPFILE=dpump_dir1 parfile=filename

استفاده از فايل پارامتري

مي توان از فايل پارامتري براي Export Data pump و Data pump Import استفاده نمود. اين عمل باعث سهولت و جامعيت بيشتر در انجام اعمال Export Data pump و Import Data pump مي گردد. علاوه بر استفاده از فايل پارامتري جهت تعيين پارامترهاي Export Data pump و يا Import Data pump ، از طريق خط فرمان سيستم عامل نيز تعيين تمامي پارامترهاي مورد نياز، ممكن مي باشد. ولي ممكن است يك يا چند پارامتر فراموش شده و يا بطور كامل ليست جداول مورد نياز در نظر گرفته نشود.

پارامترهاي Export Data pump

جدول زير پارامترهاي قابل انتخاب براي عمل Export Data pump را مشخص مي كند. اين پارامترها به صورت تركيبي در خط فرمان اجراي Export Data pump ، برحسب نياز قابل انتخاب مي باشند.
Export داراي 3 متد مي باشد که عبارتند از:

 FULL : Export ازتمامي Schemaهاي بانک اطلاعاتي
 Owner : انتخاب يک يا چند Schemaهاي بانک اطلاعاتي با انتخاب نام کاربران برايExport
 TABLES : انتخاب يك يا چند جدول و يا پارتيشن هاي جدول براي Export Data pump
 Tablespace : انتخاب انتخاب یک یا چند tablespace برای Data pump export

فیلتر کردن داده ها و ساختار بانک در زمان Datapump Export

Datapump Export این امکان را می دهد که داده ها و ساختار را در هنگام export فیلتر کنیم برای داده ها از پارامتر Query استفاده میکنیم به مثال زیر توجه کنید :
C:\> expdp hr/hr QUERY=employees:'"WHERE department_id > 10 AND salary > 10000"'
NOLOGFILE=y DIRECTORY=dpump_dir1 DUMPFILE=exp1.dmp

و برای اعمال سطح Datapump Export یا همان فیلتر کردن ساختار بانک اطلاعاتی از پارامتر های include و exclude استفاده می شود به این معنی که dump file ما schema , tablespace ,users,grant و ... شامل شود یا شامل نشود .
به مثال زیر توجه کنید :
C:\> expdp hr/hr EXCLUDE=INDEX:\"LIKE \'EMP%\'\" DUMPFILE=dpump_dir1:exp.dmp
NOLOGFILE=y
و یا مثال زیر :
file.par
SCHEMAS=HR
DUMPFILE=expinclude.dmp
DIRECTORY=dpump_dir1
LOGFILE=expinclude.log
INCLUDE=TABLE:"IN ('EMPLOYEES', 'DEPARTMENTS')"
INCLUDE=PROCEDURE
INCLUDE=INDEX:"LIKE 'EMP%'"
expdp hr/hr parfile=hr.par


Keyword شرح
CONTENT

مشخص می کند که فایل dump شامل داده ها شود یا شامل ساختار یا هر دوی آنها
DIRECTORY مسیری را که data pump Export فایل های dump یا logfile را می نویسد مشخص می کند
DUMPFILE نام و مسیر فایل dump را مشخص می کند
EXCLUDE این امکان را می دهد اشیایی که می خواهیم در dump file داشته باشیم در این پارامتر مشخص می کنیم
FILESIZE بیشینه مقداری که یک dump file می تواند داشته باشد را مشخص می کند
FULL با این پارامتر می توانید به صورت کامل از بانک اطلاعاتی expdp بگیرید
HELP با help = y دستورات و پارامتر های Export Data pump را به ما نشان می دهد
INCLUDE اشیایی که باید در dump file باشند را مشخص می کند
LOGFILE نام و مسیر logfile را مشخص می کند
PARFILE نام و مسیر فایل پارامتری را مشخص می کند
QUERY برای فیلتر کردن داده ها استفاده می شود
SCHEMAS مشخص می کندکه در سطح schema , expdp می گیرید
TABLES مشخص می کندکه در سطح table , expdp می گیرید
TABLESPACES مشخص می کندکه در سطح tablespace , expdp می گیرید
VERSION Version بانک اطلاعاتی مقصد را برای انتقال اطلاعات مشخص می کند.

مقایسه ای بین پارامتر های موجود بین ابزار Data pump Export و ابزار imp/exp

Original Export Parameter Comparable Data Pump Export Parameter
BUFFER مورد نیاز نمی باشد به صورت خودکار انجام می شود
COMPRESS مورد نیاز نمی باشد به صورت خودکار انجام می شود
CONSISTENT مورد نیاز نمی باشد به صورت خودکار انجام می شود
CONSTRAINTS EXCLUDE=CONSTRAINT متناظر است با INCLUDE=CONSTRAINT
DIRECT مورد نیاز نمی باشد به صورت خودکار انجام می شود
FEEDBACK STATUS متناظر است با
FILE DUMPFILE متناظر است با
FILESIZE FILESIZE متناظر است با
FLASHBACK_SCN FLASHBACK_SCN متناظر است با
FLASHBACK_TIME FLASHBACK_TIME متناظر است با
FULL FULL متناظر است با
GRANTS EXCLUDE=GRANT and INCLUDE=GRANT متناظر است با
HELP HELP متناظر است با
INDEXES EXCLUDE=INDEX and متناظر است با INCLUDE=INDEX
LOG LOGFILE متناظر است با
OBJECT_CONSISTENT مورد نیاز نمی باشد
OWNER SCHEMAS متناظر است با
PARFILE PARFILE متناظر است با
QUERY QUERY متناظر است با
RECORDLENGTH مورد نیاز نمی باشد به صورت خودکار انجام می شود
RESUMABLE مورد نیاز نمی باشد به صورت خودکار انجام می شود
RESUMABLE_NAME مورد نیاز نمی باشد به صورت خودکار انجام می شود
RESUMABLE_TIMEOUT مورد نیاز نمی باشد به صورت خودکار انجام می شود
ROWS=N CONTENT=METADATA_ONLY متناظر است با
ROWS=Y CONTENT=ALL متناظر است با
STATISTICS مورد نیاز نمی باشد به صورت خودکار انجام می شود
TABLES TABLES متناظر است با
TABLESPACES TABLESPACES متناظر است با
TRANSPORT_TABLESPACE TRANSPORT_TABLESPACES متناظر است با
TRIGGERS EXCLUDE=TRIGGER متناظر است با INCLUDE=TRIGGER
TTS_FULL_CHECK TRANSPORT_FULL_CHECK متناظر است با

VOLSIZE مورد نیاز نمی باشد به صورت خودکار انجام می شود