Banner Advertisement
 
Advertisements
 
پربيننده‌ترين مطالب
در هفت روز گذشته
 
آخرين خبرها
 
جديدترين مقالات
 
 
ارسال براي دوستان
نسخه مناسب چاپ
چگونگي انتقال اطلاعات در اوراكل 10g

امين صفائي‌
ماهنامه شبکه - شهريور ۱۳۸۶ شماره 79

اشاره :

در اوراكل 10g بر خلاف نسخه‌هاي قبلي كه تنها از ابزارهاي Export و Import استفاده مي‌شد، با استفاده از Data Pump Export/Import مي‌توان اطلاعات و ساختار پايگاه اطلاعاتي را از يك ماشين به ماشين ديگر انتقال داد. ولي در برخي موقعيت‌ها مانند وقتي كه مي‌خواهيم اطلاعات را از نسخه قبلي به صورت غيرمستقيم جابه‌جا كنيم، بايد از روش قبلي، يعني همان ابزارهاي ‌Import و ‌Export استفاده كنيم. در اين مقاله به صورت كلي روش انتقال اطلاعات در اوراكل را مورد بررسي قرار مي‌دهيم. به طور كلي از اين ابزار مي‌توان جهت كپي اطلاعات و بازآوري داده‌ها، انتقال يك بانك اطلاعاتي به بانك ديگر و انتقال داده از يك نسخه به نسخه بالاتر استفاده نمود. با استفاده از ابزار Import و Export مي‌توان از اطلاعات به صورت Incremental كپي پشتيبان گرفت و مجدداً ذخيره نمود. مي‌توان يك يا چند بخش از پايگاه داده را انتقال داد. مي‌توان اطلاعات را از يك سيستم‌عامل به سيستم عامل ديگر منتقل كرد. به علا‌وه، امكان ذخيره داده‌ها در فايل‌هاي سيستم‌عاملي نيز وجود دارد. در واقع ابزار Export در بانك اطلاعاتي جست‌وجو مي‌كند و خروجي را در فايلي به نام Export Dump مي‌نويسد. با اين ابزار مي‌توانيم همه بانك اطلاعاتي، اطلاعات كاربر خاص يا حتي جدول مشخصي را ذخيره نماييم. با كمك اين ابزار حتي مي‌توانيم اشياي Tablespace و Indexها را نيز انتقال دهيم. ابزار Import از طرف ديگر اطلاعات باينري فايل Dump را كه ابزار Export آن را درست كرده است، اجرا مي‌كند. نكته مهم اين است كه لازم نيست اين اطلاعات در پايگاه اطلاعات مشابه يا Schema مشخصي كه اطلاعات از آن برداشته شده است، منتقل شود. حتي مي‌توان قسمتي از اطلاعات Export شده را برداشت نمود.


‌صادر كردن اطلاعات با Export

Export را كه بعضاً به آن كپي پشتيبان منطقي نيز مي‌گويند، تعاريف DDL اشياي بانك اطلاعاتي و داده‌هاي بانك اطلاعاتي را در خود ذخيره مي‌كند. اين ابزار چهار سطح دارد:

˜ Full Mode: تمامي Data Dictionary خوانده مي‌شود و تمامي ديتابيس export مي‌شود و تمامي DLLهايي كه براي ايجاد مجدد كل ديتابيس نياز است، در فايل Dump نوشته مي‌شود. اجزاي اين فايل از دستوراتي تشكيل شده است كه براي ساخت تمامي اجزا، كاربران، Tablespaceها، مجوزها و همه چيزهاي لازم در پايگاه داده جديد نياز است.

˜ Tablespace Mode: تمامي ايندكس‌ها و اجزاي مورد نياز كپي مي‌شود.

˜ User Mode: اشياي متعلق به كاربر خاص و داده‌هاي آن انتقال مي‌يابد.

˜ Table Mode: جدول مشخص به همراه ايندكس‌ها، ساختار آن انتقال مي‌يابد.

براي export كردن مي‌توانيد به خط دستوري Command Line برويد و عبارت exp را مستقيماً وارد كنيد. اما بهتر است براي يك Export كامل و بدون اشكال از فايل پارامتري استفاده شود. شكل 1 نمونه‌اي از اين فايل را نشان مي‌دهد (فايل scr_exp.exp را در درايو C به وجود آوريد).

شکل 1

جدول 1 پارامترهايي را مشخص كرده است كه مي‌توانيد در دستور exp از آن استفاده كنيد. (پارامترهايي كه در كارايي بانك اطلاعاتي تأثير دارند، با رنگ متفاوت مشخص شده‌اند).

 پارامتر

توضيح پارامتر 

USERID 

نام کاربر که مجوز Export دارد. USERID=traffic_admin@traffic 

BUFFER 

اندازه بافري که براي واکنش رکوردها از بانک اطلاعاتي تعيين مي‌گردد. اين مقدار حافظه‌اي است که براي Export نياز است. معمولاً بافرهاي بالا کارايي بالاتري دارند. 

FILE 

نام فايلي که Export مي‌سازد.

GRANT 

اگر اين پارامتر را مساوي Y قرار دهيم، مجوزها در فايل Dump ذخيره مي‌شوند. 

INDEXES

ايندکس‌ها در فايل Export ذخيره مي‌شوند. 

 ROWS

اگر مقدار اين پارامتر را مساوي Y قرار دهيم، رکوردهاي جدول در فايل ثبت خواهد شد. 

 CONSTRAINTS

مي‌توانيم Constraintsها را با Y ثبت و با N غيرفعال کنيم. 

 COMPRESS

اگر مقدار اين پارامتر را مساوي Y قرار دهيم، باعث بازنويسي مجدد پارامتر Storage جداول و Indexها مي‌گردد. استفاده از اين پارامتر باعث يکپارچگي داده‌ها و جداول خواهد شد.

 FULL

با استفاده از اين پارامتر تمامي Schemaهاي بانک اطلاعاتي در فايل Export ذخير مي‌گردد. 

 OWNER

با انتخاب اين گزينه مي‌توانيم کاربران اشياي بانک اطلاعاتي را انتخاب کنيم که مي‌خواهيم اطلاعاتشان را منتقل کنيم. 

RECORD LENGTH

موقع انتقال اطلاعات از يک سيستم از يک سيستم‌عامل به سيستم‌عامل ديگر بايد از اين پارامتر براي مشخص نمودن اندازه طول رکورد فايل (براساس بايت) استفاده کنيم.

INCTYPE

اگر بخواهيم از Full Mode استفاده کنيم، مي‌توانيم از اين پارامتر استفاده کنيم و مشخص کنيم که تمامي اطلاعات را مي‌خواهيم Backup بگيريم؛ يعني INCTYPE=COMPLETE. اگر بخواهيم تنها جداول تغيير يافته Backup شوند، از انتخاب‌هاي Comulative و Incremental استفاده کنيم.

RECORD

با استفاده از اين پارامتر مي‌توانيم مشخص کنيم که ثبت اطلاعات incremental در جداول SYS.INCEXP و SYS'INCID صورت گيرد يا خير.

PARFILE

نام فايل پارامتري.

LOG

نام فايلي که اطلاعات مربوط به LOG در آن ذخيره مي‌شود.

CONSISTENT

اين پارامتر مشخص مي‌کند که آيا جدولي که Export شده است، نياز به اعمال Read_consistent دارد يا خير.

STATISTICS

با مقادير Estimate و Compute اطلاعات آماري مربوط به جداول و ايندکس‌ها در زمان Import.

DIRECT

براي لود مستقيم اطلاعات به کار مي‌رود که سرعت بيشتري دارد.

FEEDBACK

اگر مثلاً مقدار اين پارامتر را دويست تعيين کنيد، آن‌گاه به ازاي هر دويست رديفي که Export مي‌شود، يک نقطه در نمايشگر نمايش داده مي‌شود.

FILESIZE

حداکثر اندازه فايل Export با بايت

TABLE SPACE

فهرست تمامي Tablespaceهايي که بايد Export شود.

VOLSIZE

حداکثر اندازه در هر Volume بر حسب بايت

جدول 1- پارامترهاي قابل استفاده براي Export

مثلاً تصور كنيد مي‌خواهيم تمامي اشياي مربوط به كاربر HOTELMANAGER را از بانك اطلاعاتي HOTEL جمع‌آوري كنيم يا به اصطلاح Backup بگيريم. ابتدا به RUN مي‌رويم و CMD را انتخاب مي‌كنيم تا به محيط Command Lineبرويم.

حال همان‌‌طور كه در شكل 2 نشان داده شده است،‌ در خط دستوري دستور exp را وارد مي‌كنيم. سپس سيستم از ما مي‌خواهد نام كاربر و رمز ورودي را وارد كنيم. سپس نام فايل Dump را سؤال مي‌كند. پس از آن همان‌طور كه مشاهده مي‌كنيد، سيستم سؤال مي‌كند كه مي‌خواهيد از كدام  Export استفاده كنيد.

شکل 2

مثلاً مي‌گوييم مي‌خواهيم User را كپي كنيم. سپس نام كاربر را وارد مي‌كنيم. اگر بخواهيم تنها يك كاربر را منتقل كنيم، نام كاربر را وارد مي‌كنيم و اگر سيستم دوباره سؤال كرد كه كاربر بعدي را وارد كنيد، كافي است يك دات  (نقطه) وارد كنيد. سپس سيستم فايل Dump را براي شما مي‌سازد.

وارد كردن اطلاعات با Import

در حقيقت دستور Import فايل Export Dump را مي‌خواند و دستورات آن را اجرا مي‌كند و اشيا و كاربراني كه در  فايل Export وجود دارند را به بانك اطلاعاتي جديد معرفي مي‌كند. جدول 2 برخي از مهم‌ترين پارامترهايي كه در دستور ‌Import مورد استفاده قرار مي‌گيرد را نشان مي‌دهد.

پارامتر 

توضيح پارامتر 

 Userid

نام کاربر داراي مجوز USERID=traffic_admin;traffic Import

 Buffer

اندازه بافري که در استخراج اطلاعات يک Row استفاده مي‌شود. 

 File

نام فايلي که بايد Import شود. 

 Show

اگر مقدار اين پارامتر را Y قرار دهيم، محتواي فايل نشان داده مي‌شود. 

 Ignore

ناديده گرفتن خطاهايي که موقع Create ايجاد مي‌شود. 

 Grant

اگر مقدار اين پارامتر را Y قرار دهيم، Grantهاي اشياي پايگاه‌داده هم وارد بانک جديد مي‌شوند. 

 Indexes

ايندکس‌هاي جداول 

 Rows

با انتخاب Row،Yهاي بانک اطلاعاتي به بانک جديد اضافه مي‌شوند و در غير اين صورت، فقط فايل‌هاي DLL اشياي پايگاه‌داده اجرا مي‌شود. 

 Log

اسم فايلي که لوگ Import در آن ذخيره مي‌شود. 

 Full

با قرار دادن اين پارامتر مساوي Y تمامي اطلاعات فايل انتقال مي‌يابد. 

 Fromuser

اسامي کاربراني که بايد از فايل خوانده شود. 

 Touser

اسامي کاربراني که اطلاعات بايد به آن‌ها داده شود. 

 Tables

فهرست جداولي که بايد Import شوند. 

 Commit

وقتي اين پارامتر Y باشد، بعد از هر تغيير در بانک اطلاعاتي به صورت خودکار تغييرات ذخيره مي‌شود. 

 Parfile

نام فايل پارامتري که در Import مورد استفاده قرار مي‌گيرد.

 Constraints

وقتي اين مقدار مساوي Y قرار مي‌گيرد، Constraintsهاي جداول هم به بانک جديد منتقل مي‌شوند.

 Indexfile

اين گزينه دستوراتي مانند Create Cluster، Create Table و... را به جاي آن که اجرا کند، در فايلي قرار مي‌دهد و آن را اجرا نمي‌کند. 

 Feedback

اعداد رکوردهايي که در مرحله Import نمايش داده مي‌شود. اگر مقدار اين پارامتر را صفر قرار دهيم، هيچ Feedback تا وقتي که تمام Import انجام نشود، نمايش داده نخواهد شد. 

 Filesize

حداکثر اندازه فايل Dump 

 Resumable

مشخص مي‌کند که آيا Session بعد از وجود خطا به کار خود ادامه دهد يا خير. 

 Compile

کامپايل Procedureها، Functionها و... بعد از Import 

 Volsize

حداکثر اندازه بايت در يک فايل 

 Datafiles

فهرست DataFileهايي که بايد به Database انتقال يابد. 

 جدول 2- پارامترهاي قابل استفاده براي Import

براي اين‌كه بتوانيم اطلاعات موجود در فايل Export را به بانك اطلاعاتي جديد وارد كنيم، بايد از دستور Importاستفاده كنيم. تصور كنيد كه در دستگاه ديگري اوراكل نصب كرده‌ايد و مي‌خواهيد فايل خود را Import كنيد. كافي است ابتدا به RUN برويم و CMD را انتخاب مي‌كنيم تا به محيط Command Line برويم.

سپس دستور IMP را وارد مي‌كنيم. سپس سيستم از شما مي‌خواهد اسم فايلي را وارد كنيد كه Export آن را توليد كرده است. سپس سؤالاتي در مورد پارامترهايي كه در جدول 2 در مورد آن صحبت شد، به عمل خواهد آمد و در ادامه سيستم نام كاربري را مي‌خواهد كه مي‌خواهيد آن را Import كنيد.

پس از وارد كردن نام كاربر، اگر نخواهيد كاربر ديگري را اضافه كنيد، كافي است يك دات (نقطه) وارد كنيد‌. سپس سيستم اشياي كاربر مورد نظر را به بانك اطلاعاتي جديد منتقل مي‌نمايد. (شكل 3)

شکل 3

استفاده از Data Pump در Export و Import

پمپ اطلاعات در نسخه 10g به عنوان امكان انتقال اطلاعات معرفي گرديد. Data Pump ابزار Import و  Export تحت سرور را مهيا مي‌كند. اين ابزار هم از نظر كارايي و معماري از ابزار معمولي Import و Export اطلاعات عملكرد بهتري دارد. در اين ابزار امكان شروع و خاتمه Jobها، ديدن عملكرد Jobها و محدود كردن اطلاعات وجود دارد.

نكته مهم اين است كه Data Pump مي‌تواند از فايل‌هاي توليد شده از مدل معمولي Export  استفاده كند. اما ابزار Import معمولي نمي‌تواند از فايل‌هاي توليد شده از Data Pump Export استفاده كند. Data Pump رويه‌اي است كه در سرور اتفاق مي‌افتد. در نتيجه پروسه كلاينتي كه يك Job را شروع كرده است مي‌تواند موقتاً اتصال را معلق نمايد و بعد از اتصال مجدد كار خود را انجام دهد.

از آن جايي كه در اين روش اطلاعات لازم نيست توسط برنامه  كلاينت پروسس شود و استخراج و Load اطلاعات به صورت هم‌زمان انجام مي‌پذيرد كارايي در اين روش بسيار بالا تر از مدل معمولي Export و Import است كه قبلاً در مورد آن توضيح داده شد.

براي استفاده از Data Pump بايد يك دايركتوري براي فايل‌هاي اطلاعات و Logها توليد گردد. براي اين كار همان‌طور كه در كدهاي زير مشاهده مي‌كنيد، بايد با استفاده از دستور Create Directory دايركتوري مربوطه را ايجاد كنيم و به كاربراني كه مي‌خواهند به فايل‌هاي Data Pump دسترسي داشته باشند، مجوزهاي مناسب را براي نوشتن و خواندن اطلاعات را بدهيم. مثال زير دايركتوري DumpDir را با Grantهاي خواندن و نوشتن براي اسكيماي ‌Systemنشان مي‌دهد.

;'create directory dumpdir as 'c:\dumpdir
;grant read on directory dumpdir to system
grant write on directory dumpdir to system


پنج مدل براي Data Pump Export وجود دارد:

˜ Full Export: براي استخراج تمام اطلاعات پايگاه داده و Metadata
˜ Schema Export: براي استخراج اطلاعات و Metadata از اسكيماي خاص
˜ Tablespace Export: براي استخراج اطلاعات و Metadata از Tablespaceها
˜ Table Export: براي استخراج اطلاعات و Metadata از جدول‌ها و پارتيشن آن‌ها
˜ Transportable Export: براي استخراج اطلاعات و Metadata از Tablespaceهاي خاص‌

نكته مهمي كه بايد در Data Pump Export به آن توجه شود اين است كه privilege يا اختيار EXP_FULL_DATABASE را بايد به كاربري كه مي‌خواهد Transportable Export را انجام دهد اضافه نمود.

در حقيقت وقتي كه كاربر يك Job را ارسال مي‌كند، اوراكل يك نام كه خود آن را ساخته است، براي آن Job مي‌سازد (البته مي‌توان نام Job را با پارامتر ‌Job_name نيز تعيين كرد، ولي بايد مراقب Conflict شدن نام‌ها باشيم). وقتي Data Pump در حال كار است، اوراكل يك جدول براي آن Job مي‌سازد كه هم نام Job است.

براي شروع كار Data Dump Export مي‌توانيم از فايل پارامتري استفاده كنيم. مثلاً نام اين فايل را pumpexp.par  مي‌گذاريم و دستورات زير را در آن تايپ مي‌كنيم:

DIRECTORY=c:\dumpdir
DIRECTORY=c:/metadata.dmp
CONTENT=METADATA_ONLY

سپس دستور زير را براي اجراي Data Pump Export اجرا مي‌كنيم:

Expdp system/system parfile=c:/pumpexp.par

بعد از اجراي اين دستور اگر با اشكالي مواجه نشويد، يك فايل به نام metadata.dmp توليد خواهد شد كه حاوي اطلاعات XML از ساختار اسكيما است.

براي Import كردن اطلاعات مي‌توانيم مستقيماً از دستور impdp يا از طريق فايل پارامتري استفاده كنيم و‌ آبجكت‌هاي اسكيماي توليد شده در فايل metadata.dmp را به هر پايگاهي كه مايليم  Import كنيم. البته در Export و Import نكاتي از قبيل چگونگي Stop كردن و دوباره شروع كردن Jobها نيز وجود دارد كه مي‌توانيد اطلاعات خوبي را در اين زمينه از نشاني زير دريافت نماييد:
http://download.oracle.com/docs/cd/B12037_01/server.101/b10825/dp_overview.htm

     
   
مطالب مرتبط
نگاهي به اوراكل 11g
( Oracle - Database - ديتابيس )
پايگاه‌داده‌ها؛ قلب سيستم‌هاي اطلاعاتي‌ - آشنايي با SQL Server 2005
( ديتابيس - Database )
نگاهي كوتاه به امنيت در اوراكل
( Oracle - ديتابيس )
بررسي معماري اوراكل 10g
( ديتابيس - Database - Oracle )
مقايسه فني مهم‌ترين بانك‌هاي اطلاعاتي جهان؛ Oracle و SQL Server
( اوراکل )
جيتكس ۲۰۰۷ / اوراکل از نسخه 11 بانک اطلاعات خود رونمایی می‌کند
( Oracle - ديتابيس )
Replication در پايگاه‌ داده MySQL
( ديتابيس - Database )
بي‌جانشين - ‌روش خاص لا‌ري اليسون براي مديريت اوراكل‌
( Oracle )
بزرگ‌ترين بانك‌هاي اطلاعاتي جهان‌
( Database - Oracle )
جيتكس ۲۰۰۶ / اوراكل از برنامه های بهبود يافته خود پرده برداری میکند
( Oracle )
بازار رو به هوشمندي كسب‌ و كار
( Database )
ابزارهاي ويژوال‌ در MySQL
( Database - ديتابيس )
مهاجرت به MySQL
( Database )
راهكارهايي براي‌ افزايش سرعت در بانك‌هاي اطلاعاتي SQL Server
( ديتابيس - Database )
اوراکل 82 نقيصه امنيتي در محصولات خود را برطرف کرد!
( اوراکل - Oracle )
اوراکل نرم‌افزار بانک اطلاعاتي مجاني عرضه کرد
( Oracle )
پسورد بانک اطلاعاتي اوراکل قابل هک شدن است
( Database )
كنفرانس JavaOne را دريابيد!
( Oracle )
مديريت پايگاه داده ها در SQL Server - قسمت سوم: انتقال اطلاعات با Replication
( Database )
مديريت پايگاه داده ها در SQL server - قسمت دوم : نظارت بر عملكرد سيستم
( Database )
اتحاد IBM و اوراكل براي ارائه پايگاه داده اپن سورس
( Oracle )
MySQL 5.0، بزرگترين رويداد دنياي Open Source
( Database )
اصول طراحي بانك اطلاعاتي رابطه اي - قسمت اول
( Database )
اصول طراحي بانك هاي اطلاعاتي رابطه اي - قسمت دوم
( Database )
اصول طراحي بانك هاي اطلاعاتي رابطه اي - قسمت سوم
( Database )
اصول طراحي بانك هاي اطلاعاتي رابطه اي - قسمت چهارم
( Database )
اصول طراحي بانك هاي اطلاعاتي رابطه اي - قسمت آخر
( Database )
ميانگين نظر خوانندگان از ميان 7 نظر ارسال شده :
خيلي ضعيف
متوسط
عالي
نظر شما درباره این مطلب چیست و به آن چه امتیازی می دهید؟ اگر پيرامون موضوع مطرح شده در اين مطلب (صرف ‌نظر از چگونگي ارائه آن در اينجا) نظر يا عقيده‌اي داريد، مي‌توانيد ديدگاه خود را با ما در ميان بگذاريد.
يادآوري:
1 - مجله شبکه هر ماه گزيده‌اي از نظرات، پيشنهادات و انتقادات بازديدکنندگان سايت را در بخش ويژه‌اي تحت عنوان "روي خط شبکه" به چاپ مي‌رساند.
2 - اگر مايليد پاسخ پيام شما را درصورت لزوم برايتان بفرستيم، حتما آدرس ايميل خود را بنويسيد.
3 - مي‌توانيد بدون نوشتن مشخصات و نظر خود يا همراه با آن، به اين مطلب نمره بدهيد - براي نمره دادن کافي است يکي از شش گزينه زير را انتخاب و دکمه ارسال را فشار دهيد
نام
Email
آدرس سايت
اگر از سيستم‌عامل ويندوز و مرورگر IE استفاده مي‌کنيد وضعيت صفحه کليد خود را در حالت انگليسي نگهداريد و از Ctrl+Shift براي تغيير زبان استفاده کنيد
 
نظر (حداکثر 1000 کاراکتر)
پيام شما شامل 0 کاراکتر است
 
 
 

کلیه حقوق مادی و معنوی این سایت متعلق به ماهنامه شبکه می باشد

© 1998-2007 Shabakeh Magazine. All Right Reserved.

|
|
|
|
|
|