بطور معمول و پیش فرض در هنگام import داده ها در بانک مقصد، جداول با همان نام قبلی و در همان schema و tablespace بارگذاری می شوند، مگر آنکه با استفاده از برخی پارامترها نام و مکان آنها را تغییر دهیم که در ادامه با این پارامترها آشنا می شویم.
پارامترهای کنترل job در ابزار EXPDP و IMPDP
همانطور که در مطلب “آشنایی با Data Pump” اشاره شد، پروسس master برای انجام عملیات، jobای را ایجاد می کند که در طول عملیات export/import ، می توان با ارجاع به نام آن job، عملیات مربوطه را کنترل نمود. برای مثال می توان اجرای دستورات را موقتا متوقف کرد و یا بعد از توقف، عملیات را مجددا از سر گرفت.
قصد داریم در این متن پارامترهای مربوط به مانیتور و کنترل jobها را شرح دهیم.
آشنایی با Data Pump
اوراکل با ارائه نسخه 10g، تکنولوژی قدرتمندی به نام Data Pump را ارائه کرد با استفاده از این تکنولوژی می توان حجم زیادی از اطلاعات را از دیتابیس استخراج کرد یا از یک بانک به بانک دیگر منتقل نمود.
Data Pump از نظر عملکرد همانند ابزارهای exp/imp قدیمی است ، ولی از نظر روش انجام کار، متفاوت است. exp/imp سنتی مبتنی بر کلاینت هستند در حالی که Data Pump کاملا مبتنی بر سرور پیاده سازی شده است.
تهیه دامپ از جداول auditing در اوراکل 12c
در اوراکل 11g، امکان گرفتن دامپ از جدول $aud با کمک data pump وجود ندارد:
[oracle@myhost ~]$ expdp directory=mrm dumpfile=aud.dmp tables=aud$
Export: Release 11.2.0.4.0 – Production on Sat Dec 8 17:30:47 2018
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting “SYS”.”SYS_EXPORT_TABLE_01″: sys/******** AS SYSDBA directory=mrm dumpfile=aud.dmp tables=aud$
Estimate in progress using BLOCKS method…
Total estimation using BLOCKS method: 0 KB
ORA-39166: Object SYS.AUD$ was not found.
ORA-31655: no data or metadata objects selected for job
Job “SYS”.”SYS_EXPORT_TABLE_01″ completed with 2 error(s) at Sat Dec 8 17:30:59 2018 elapsed 0 00:00:04
Data Masking از طریق Data Pump
در زمان انتقال اطلاعات از یک بانک عملیاتی به یک بانک تستی، ممکن است نیاز باشد تا اطلاعات حساس به طور شفاف به بانک مقصد منتقل نشوند در این صورت اگر از data pump برای جابجایی دیتا استفاده می کنیم، می توانیم در زمان برگرداندن دیتا با دستور impdp، داده های حساس را دستکاری کنیم. این کار، از طریق پارامتر REMAP_DATA و یک function(که از قبل در بانک تستی موجود است)، قابل انجام خواهد بود.
REMAP_DATA=[schema.]tablename.column_name:[schema.]pkg.function
Substitution Variableهای جدید برای expdp/impdp
در زمان تهیه دامپ به صورت همروند، خروجی دامپ در فایلهای متعددی قرار خواهد گرفت که در نسخه های قبل از 12cR2، اسامی هر کدام از این فایلها با کمک متغیر %U و با یک شماره از هم متمایز می شد به عبارت دیگر، ایجاد دامپ همروند تنها از طریق این Substitution Variable قابل انجام بود:
expdp \’sys/sy AS SYSDBA\’ directory=dr dumpfile=dump_%U.dmp schemas=usef parallel=4
Export: Release 11.2.0.4.0 – Production on Sun Apr 15 16:33:35 2018
Dump file set for SYS.SYS_EXPORT_SCHEMA_01 is:
/u01/oracle/dump_01.dmp
/u01/oracle/dump_02.dmp
/u01/oracle/dump_03.dmp
ده مثال کاربردی برای Data Pump
مثال 1: اجرای همروند دستور expdp و ذخیره دامپ فایل در دیسکهای مختلف:
SQL> create directory dir1 as ‘/disk1/dmp1′;
Directory created.
SQL> create directory dir2 as ‘/disk2/dmp2′;
Directory created.
SQL> create directory dir3 as ‘/disk3/dmp3′;
Directory created.
[oracle@DB ~]$ expdp usef/a dumpfile=dir1:dump1.dmp,dir2:dump2.dmp,dir3:dump3.dmp logfile=dir1:logdmp.txt full=y parallel=3
پارامتر remap_directory در دستور impdp
قبل از برگرداندن دامپ به صورت کامل(full=y)، باید مسیر دیتافایلها را ایجاد نمود در غیر این صورت، عملیات بازیابی در هنگام ایجاد tablespace با خطا متوقف خواهد شد:
ORA-39083: Object type TABLESPACE:”TBS2″ failed to create with error:
ORA-01119: error in creating database file ‘/db/oradata/datafile/tbs02.dbf’
اجرای exp/expdp در محیط data guard
برای تهیه دامپ در محیط data guard، می توان از ابزار Exp بصورت مستقیم و از ابزار Expdp به صورت غیرمستقیم(با کمک database link) استفاده کرد همچنین با تبدیل data guard به snapshot standby، هم می توان مجددا از ابزار Expdp به صورت مستقیم بهره گرفت.
در ادامه به بررسی این سه روش خواهیم پرداخت.
پارامتر views_as_tables در data pump
با این ویژگی، امکان گرفتن دامپ از خروجی یک ویو هم مهیا خواهد شد همچنین در زمان برگرداندن این ویو، جدولی در بانک مقصد ایجاد خواهد شد:
expdp usef/abc@pdb1 directory=usef dumpfile=test.dmp views_as_tables=usef_view1
Export: Release 12.1.0.2.0 – Production on Sat Jul 2 10:41:26 2016
Starting “USEF”.”SYS_EXPORT_TABLE_01″: usef/********@pdb1 directory=usef dumpfile=test.dmp views_as_tables=usef_view1
Total estimation using BLOCKS method: 16 KB
. . exported “USEF”.”USEF_VIEW1″ 163.3 KB 5086 rows
Master table “USEF”.”SYS_EXPORT_TABLE_01″ successfully loaded/unloaded
Job “USEF”.”SYS_EXPORT_TABLE_01″ successfully completed at Sat Jul 2 10:41:38 2016 elapsed 0 00:00:11
برگرداندن ویو به صورت جدول در بانک مقصد:
impdp usef/abc@pdb1 directory=usef dumpfile=test.dmp views_as_tables=usef_view1
Import: Release 12.1.0.2.0 – Production on Sun Jul 3 09:40:23 2016
Starting “USEF”.”SYS_IMPORT_TABLE_01″: usef/********@pdb1 directory=usef dumpfile=test.dmp views_as_tables=usef_view1
. . imported “USEF”.”USEF_VIEW1″ 163.3 KB 5086 rows
Job “USEF”.”SYS_IMPORT_TABLE_01″ successfully completed at Sun Jul 3 09:40:25 2016 elapsed 0 00:00:01