تهیه دامپ از جداول 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

غیرفعال سازی logging بهنگام impdp

برای بهبود سرعت برگرداندن اطلاعات dumpfile، می توان از پارامتر logging به هنگام اجرای دستور impdp استفاده کرد و با تنظیم این پارامتر(که از اوراکل 12c ارائه شد) به مقدار DISABLE_ARCHIVE_LOGGING:Y، مانع از ایجاد آرشیولاگ در زمان impdp شد:

 impdp directory=usef dumpfile=c.dmp schemas=usef  TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y

Import: Release 12.1.0.2.0 – Production on Tue Jul 5 15:02:28 2016

. . imported “USEF”.”COM_LOC”                      533.490 MB    226333 rows

در صورت استفاده از data guard در چنین محیطی، اطلاعات import شده به سمت data guard منتقل نخواهند شد و با رجوع به این جدول در محیط data guard، با خطای زیر مواجه خواهیم شد:

select count(*) from usef.com_loc

ORA-01578: ORACLE data block corrupted (file # 6, block # 555)

ORA-01110: data file 6: ‘/u02/oradata/usef2/datafile/users.258.916411623’

ORA-26040: Data block was loaded using the NOLOGGING option

البته اگر دیتابیس در حالت force logging قرار داشته باشد، امکان استفاده از چنین ویژگی ای وجود ندارد(معمولا قبل از راه اندازی data guard، اوراکل تاکید دارد تا این گزینه فعال شود).

 این ویژگی در سطح ایندکس هم قابل استفاده می باشد:

TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y:INDEX

data pump و RAC

در محیط RAC، این امکان وجود دارد تا از چند instance برای اجرای data pump بهره گرفته شود. برای این کار باید شرایط زیر رعایت شود:

  1. دایرکتوری که فایل دامپ قرار است در آنجا قرار گیرد، در فضای مشترک بین نودها ایجاد شود.
  2. پارامتر cluster به y و پارامتر parallel به مقداری بیشتر از یک تنظیم شود.
  3. Logها در مسیر local مربوط به نودها ایجاد شوند.

(بیشتر…)