پارامتر 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’

در صورتی که ایجاد مسیر قبلی دیتافایل در محیط جدید امکان پذیر نباشد، می توان از پارامتر remap_datafile کمک گرفت تا این مسیر را تغییر داد:

remap_datafile=’/db/oradata/datafile/tbs02.dbf’:’/usefdb/mydatafile/tbs02.dbf’

حال اگر تعداد دیتافایلهای بانک قابل توجه باشد استفاده از این پارامتر(remap_datafile)،پیچیدگی هایی را همراه خواهد داشت پس در این شرایط باید به فکر راهکاری بود تا همه دیتافایلهای موجود در مسیر x در مسیر y ایجاد شوند.این کار از طریق پارامتر remap_directory که از اوراکل 12cR2 ارائه شد، قابل انجام می باشد.
مثال زیر را ببینید:

مسیر اصلی دیتافایلهای غیر سیستمی:

SQL> select name from v$datafile where name like ‘%tbs0%’;
NAME
———————————————————————————
/db/oradata/datafile/tbs01.dbf
/db/oradata/datafile/tbs02.dbf

تعریف پارامتر فایل به همراه پارامتر remap_directory:

vi par
directory=dr
dumpfile=dump.dmp
remap_directory=”‘/db/oradata/datafile/’:’/usefdb/mydatafile/'”
full=y

اجرای دستور impdp:

impdp usef/u parfile=par

Import: Release 12.2.0.1.0 – Production on Sun Apr 15 15:12:38 2018
. . exported “USEF”.”TBL” 5.312 KB 5 rows
Job “SYS”.”SYS_IMPORT_FULL_02” completed with 17 error(s) elapsed 0 00:16:54

مسیر دیتافایلهای غیرسیستمی در بانک جدید:

SQL> select name from v$datafile where name like ‘%tbs0%’;
NAME
———————————————————————————
/usefdb/mydatafile/tbs02.dbf
/usefdb/mydatafile/tbs01.dbf

پ.ن: استفاده همزمان پارامترهای REMAP_DIRECTORY و REMAP_DATAFILE سبب رخ دادن خطای زیر خواهد شد:

ORA-39050: parameter REMAP_DIRECTORY is incompatible with parameter REMAP_DATAFILE

ارتباط با نویسنده مطلب:vahidusefzadeh@ کانال تخصصی اوراکل و لینوکس: OracleDB@

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد.