با سلام
یکی از راهکارهای اوراکل برای انتقال اطلاعات از یک سرور بر روی سرور دیگر انتقال اطلاعات با استفاده از دستور expdp در ماشین مبدا و سپس دریافت اطلاعات با استفاده از دستورالعمل impdp در ماشین مقصد است. استفاده از این دستور در سطوح مختلفی می تواند اتفاق بیفتد و با توجه به نیازی که داریم باید نوع مناسب پارامترها را برای انتقال بهینه اطلاعات مورد استفاده قرار دهیم. به عنوان مثال می توانیم در سطح جدول، اسکیما، پایگاه داده به انتقال اطلاعات بین سرورهای مختلف بر روی کامپیوترهای جدا از هم و یا یک کامپیوتر واحد بپردازیم.
مثال 1 : انتقال اطلاعات در سطح بین دو اسکیما :
expdp system/password@db10g Schemas=sch1 directory=TEST_DIR dumpfile=DB10G.dmp logfile=expdpDB10G.log
impdp system/password@db10g Schemas=sch1 directory=TEST_DIR dumpfile=DB10G.dmp logfile=impdpDB10G.log
توجه داشته باشید که
1 آدرس دهی لوگ فایل لزوما ضرورتی در این دستور ندارد.
2- پارامتری که از آن به نام دایرکتوری یاد می گردد پارامتری است که قبل از نوشتن دستور باید برای اوراکل تعریف شده باشد. هدف از این پارامتر نسبت دادن آدرس یک فولدر به یک نام معین در دستورالعمل است که باید قبلا توسط کاربری که مجوز ایجاد دایرکتوری را دارد ایجاد شده باشد. مثالی از ایجاد دایرکتوری به شرح زیر می باشد:
CREATE OR REPLACE DIRECTORY bfile_dir AS '/usr/bin/bfile_dir';
توجه داشته باشید که آدرس فولدر باید در داخل '' قرار گیرد و این دستور از طریق یک ادیتور اس کیو ال مانند اس کیو ال پلاس قابل اجرا است.
3- توجه داشته باشید که وقتی می خواهید اطلاعات را از یک ورژن به ورژنی دیگر منتقل نمایید اگر از این دستور به همین صورت استفاده کنید دچار مشکل می شوید و معمولا Import موفقی نخواهید داشت. در نتیجه بهتر است هنگام اکسپورت کردن اطلاعات از پارامتر version استفاده کنید که نشاندهنده ورژن نسخه ای از پایگاه داده است که می خواهید اطلاعات را به آن ارسال نمایید.
مثال 2 : انتقال اطلاعات در سطح بین دو جدول :
expdp scott/tiger@db10g tables=EMP,DEPT directory=TEST_DIR dumpfile=EMP_DEPT.dmp logfile=expdpEMP_DEPT.log
impdp scott/tiger@db10g tables=EMP,DEPT directory=TEST_DIR dumpfile=EMP_DEPT.dmp logfile=impdpEMP_DEPT.log
توجه داشته باشید که در مثال فوق می توان از پارامتر TABLE_EXISTS_ACTION=APPEND استفاده کرد تا اطلاعات را به انتهای جداول فعلی با اطلاعات مشخص افزود.
مثال 3: انتقال اطلاعات در سطح پایگاه داده :
expdp system/password@db10g full=Y directory=TEST_DIR dumpfile=DB10G.dmp logfile=expdpDB10G.log
impdp system/password@db10g full=Y directory=TEST_DIR dumpfile=DB10G.dmp logfile=impdpDB10G.log
توجه داشته باشید که پارامتر Full نشاندهنده این است که انتقال اطلاعات باید به صورت کامل صورت پذیرد. پارامترهای دیگری مانند include و Exclude و Content و ... نیز موجود است که در صورت نیاز می توان آنها را مورد استفاده قرار داد.