ورود

View Full Version : مقاله: ترجمه مقاله ORACLE Export (exp) vs Datapump (expdp)



رسول_57
چهارشنبه 01 آذر 1391, 11:32 صبح
ORACLE Export (exp) vs Datapump : expdp


ORACLE Export (exp) vs Datapump : expdp


ORACLE provides two external utilities to transfer database objects from one database to another database. Traditional exports (exp /imp) are introduced before 10g. Then from 10g, ORACLE introduced datapump (expdp / impdp) as an enhancement to traditional export utility.

Traditional Export (exp/ imp)

This is an ORACLE database external utility, which is used to transfer database objects from one database server to another database server. It allows transferring the database objects over different platforms, different hardware and software configurations. When an export command is executed on a database, database objects are extracted with their dependency objects. That means if it extracts a table, the dependences like indexes, comments, and grants are extracted and written into an export file (binary format dump file). Following is the command to export a full database,

Cmd > exp userid=username/password@exportdb_tns file=export.dmp log=export.log full=y statistics=none

The above command will be exported the database to a binary dump file named export.dmp. Then imp utility can be used to import this data to another database. Following is the command to import,

Cmd > imp userid=username/password@importdb_tns file=export.dmp log=import.log full=y statistics=none

Datapump Export (expdp/ impdp)

This is also an ORACLE database external utility, which is used to transfer objects between databases. This utility is coming from ORACLE 10g database. It has more enhancements than the traditional exp/ imp utilities. This utility also makes dump files, which are in binary formats with database objects, object metadata and their control information. The expdp and impdp commands can be executed in three ways,

Command line interface (specify expdp/impdp parameters in command line)
Parameter file interface (specify expdp/impdp parameters in a separate file)
Interactive-command interface (entering various commands in export prompt)

There are five different modes of data unloading using expdp. They are,

Full Export Mode (entire database is unloaded)
Schema Mode (this is the default mode, specific schemas are unloaded)
Table Mode (specified set of tables and their dependent objects are unloaded)
Tablespace Mode (the tables in the specified tablespace are unloaded)
Transportable Tablespace Mode (only the metadata for the tables and their dependent objects within a specified set of tablespaces are unloaded)

Following is the way to export a full database using expdp,

Cmd > expdp userid=username/password dumpfile=expdp_export.dmp logfile=expdp_export.log full=y directory=export

Then impdp utility should be used to import this file to another database.



What is the difference between Traditional Export and Datapump?

• Datapump operates on a group of files called dump file sets. However, normal export operates on a single file.

• Datapump access files in the server (using ORACLE directories). Traditional export can access files in client and server both (not using ORACLE directories).

• Exports (exp/imp) represent database metadata information as DDLs in the dump file, but in datapump, it represents in XML document format.

• Datapump has parallel execution but in exp/imp single stream execution.

• Datapump does not support sequential media like tapes, but traditional export supports.

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




اوراکل دو روش جانبی برای انتقال اشیای پایگاه داده از یک پایگاه داده به پایگاه داده دیگر دارد . دستورiهای اکسپورت معمولی (exp/imp) که قبل از اوراکل 10g ارائه شد و دستورهای (expdp/impdp) که نسخه بهینه شده دستورات اکسپورت معمولی بود .



دستورهای اکسپورت معمولی (exp/imp) :
این دستورها ، ابزارهای جانبی پایگاه داده اوراکل هستند که برای انتقال اشیای پایگاه داده از یک سرور پایگاه داده به سرور پایگاه داده دیگر مورد استفاده قرار می گیرند . این دستورها برای انتقال اشیای پایگاه داده در پلاتفورمها و پیکره بندیهای سخت افزاری و نرم افزاری مختلف کاربرد دارد . هنگامیکه دستور اکسپورت بر روی یک پایگاه داده اجرا می گردد ، از اشیای پایگاه داده به همراه اشیای وابسته به آنها پشتیبان گرفته می شود یعنی اگر بخواهیم یک جدول را اکسپورت کنیم اشیای وابسته مانند ایندکس ها ، کامنت ها و حق دسترسی های مرتبط با آن نیز در فایل صادره که به صورت دودویی است نوشته می شوند .
با استفاده از دستور زیر از پایگاه داده به صورت کامل پشتیبان گرفته می شود :



Cmd > exp userid=username/password@exportdb_tns file=export.dmp log=export.log full=y statistics=none


دستور بالا پایگاه داده را به یک فایل دامپ دودویی به نام export.dmp ، اکسپورت می کند . از دستور imp برای ایمپورت پایگاه داده به یک پایگاه داده دیگر استفاده می شود . دستوری مانند دستور زیر :



Cmd > imp userid=username/password@importdb_tns file=export.dmp log=import.log full=y statistics=none


Datapump Export : expdp / impdp
این دستور نیز یک دستور جانبی اوراکل است ، که برای انتقال اشیا بین پایگاه های داده به کار می رود . این دستور از نسخه 10g به اوراکل اضافه شده است و نسبت به دستورات اکسپورت و ایمپورت معمولی بهینه سازی هایی بر روی آن صورت پذیرفته شده است . با استفاده از این دستور نیز فایل دامپی با فرمت دودویی ساخته می گردد که اشیای پایگاه داده ، متا داده مربوط به آن و اطلاعات کنترلی را نیز در بر می گیرد . دستورات expdp و impdp به صورت زیر مورد استفاده قرار می گیرند :
1-از طریق خط دستور : پارامترهای expdp , impdp در خط دستور مشخص می گردند .
2-از طریق فایل پارامتری : پارامترهای expdp , impdp در یک فایل مجزا مشخص می گردد .
3-از طریق واسط دستور بر هم کنشی : دستورات مختلف با سوال و جواب اعلام می گردد .


5 حالت مختلف برای اکسپورت داده با استفاده از expdp وجود دارد :
1- حالت کامل : تمام پایگاه داده اکسپورت می گردد .
2-حالت اسکیما : حالت پیش فرض است ، یک اسکیمای مشخص اکسپورت می گردد .
3-حالت جدول : مجموعه جدول های مشخص و اشیای وابسته به آن اکسپورت می گردد .
4-حالت تیبل اسپیس : جدوال در تیبل اسپیس مشخص اکسپورت می گردد .
5- حالت تیبل اسپیس قابل انتقال : تنها متا داده جداول و اشیای وابسته به آنها در مجموعه مشخصی از تیبل اسپیس ها اکسپورت می گردند .


با استفاده از دستور زیر پایگاه داده به صورت کامل اکسپورت می گردد :



Cmd > expdp userid=username/password dumpfile=expdp_export.dmp logfile=expdp_export.log full=y directory=export


حالا دستور impdp باید مورد استفاده قرار گیرد تا فایل مورد نظر به پایگاه داده دیگر وارد گردد .



چه تفاوتی بین اکسپورت معمولی و DataPump است ؟


* دیتاپامپ بر روی گروهی از فایل ها که مجموعه فایل های دامپ نامیده می شوند عمل می کند در حالیکه دستور اکسپورت معمولی بر روی یک فایل کار می کند .
*دیتا پامپ به فایل های سرور دسترسی دارد (از دایرکتوری های اوراکل استفاده می کند) ، در حالیکه اکسپورت معمولی به فایل های کلاینت و سرور دسترسی دارد ( از دایرکتوری های اوراکل استفاده می کند) .
*در دستورات اکسپورت معمولی ، اطلاعات متا داده پایگاه داده را به صورت DDL در فایل دامپ ذخیره می کند اما در دیتا پامپ ، این اطلاعات با فرمت XML ارائه می گردد .
*دیتاپامپ به صورت موازی اجرا می گردد اما imp/exp به صورت منفرد اجرا می گردد .
*دیتاپامپ از ابزارهای سریال مانند نوار پشتیبانی نمی کند ، اما اکسپورت معمولی از این ابزارها پشتیبانی می کند .

xxxxx_xxxxx
پنج شنبه 02 آذر 1391, 02:17 صبح
سلام،



There are five different modes of data unloading using expdp. They are,

Full Export Mode (entire database is unloaded)
Schema Mode (this is the default mode, specific schemas are unloaded)
Table Mode (specified set of tables and their dependent objects are unloaded)
Tablespace Mode (the tables in the specified tablespace are unloaded)
Transportable Tablespace Mode (only the metadata for the tables and their dependent objects within a specified set of tablespaces are unloaded)
در مورد آخری میشه بیشتر توضیح بدید؟
آخه تا جایی که من میدونم چهار Mode بیشتر نداریم. (Full, Tablespace, Schema, Table) و همه اینها رو میشه هم بصورت Metadata_only و هم بصورت Data_only اکسپورت کرد. یعنی مورد پنجم حالتی از چهار مورد اول هست.

منبع مقاله رو هم اگر میشه لطفاً ذکر کنید.

رسول_57
پنج شنبه 02 آذر 1391, 09:38 صبح
سلام،
در مورد آخری میشه بیشتر توضیح بدید؟
آخه تا جایی که من میدونم چهار Mode بیشتر نداریم. (Full, Tablespace, Schema, Table) و همه اینها رو میشه هم بصورت Metadata_only و هم بصورت Data_only اکسپورت کرد. یعنی مورد پنجم حالتی از چهار مورد اول هست.

منبع مقاله رو هم اگر میشه لطفاً ذکر کنید.

منبع مقاله : http://www.differencebetween.com/difference-between-oracle-export-exp-and-vs-datapump-expdp/

و البته در اینجا هم می توانید ببینید که سایت مرجع اوراکل هم هست : http://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_export.htm

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