منتديات طلاب جامعة النيلين
مرحبا بكم فى منتديات طلاب جامعة النيلين كلية علوم الحاسوب وتقانة المعلومات مركز الحرية للتسيجل معنا اضغط على دخول للخروج اضغط اخفاء نرجو ان تكون معنا عضواء وشكرا
lol! lol! lol! lol!
مرحبــــــــــــــــــــــــــــا بكم فى منتديات طلاب جامعة النيلين
منتديات طلاب جامعة النيلين

مدير المنتدى عبدالرحيم على القيد
 
alhemoalhemo  الرئيسيةالرئيسية  مكتبة الصورمكتبة الصور  س .و .جس .و .ج  بحـثبحـث  المجموعاتالمجموعات  التسجيلالتسجيل  دخول  تحويل شرايط الفيديو الى اسطونات سى دىتحويل شرايط الفيديو الى اسطونات سى دى  

الف مبرووووووووووووك النجاح لطلاب جامعة النيلين كلية علوم الحاسوب مركز الحرية للاقسام التالية .تقانة المعلومات- نظم المعلومات - هندسة البرمجيات للعام 2011 الى 2012
--
<______download ______>

لمعرفة نتيجة جامعة النيلين حاسوب الفرقة الثانية تقانة معلومات للعام 2011 _2012اضغط هنا

للدخول للموقع الحيمو لتصميم المواقع اضغط هنا




اضغط هنا للدخول الفيس بوك
بحـث
 
 

نتائج البحث
 
Rechercher بحث متقدم
المواضيع الأخيرة
ازرار التصفُّح
 البوابة
  حيمو الرئيسية
 حيموقائمة الاعضاء
 البيانات الشخصية
 س .و .ج
  حيمو بحـــــث
لتحديث موقع الحيمو يرجى الضغط هنا
منتدى
التبادل الاعلاني برعاية حيمووووووووو

شاطر | 
 

 ماذا تعرف عن Transportable Tablespaces

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
alhemo web sit
مدير المنتدى
مدير المنتدى


عدد المساهمات : 115
تاريخ التسجيل : 14/05/2010
العمر : 30
الموقع : موقع طلاب جامعة النيلين كلية علوم الحاسوب وتقانة المعلومات

alhemo
الحيمو للمونتاج والدوبلاج:
الحيمو للمونتاج والدوبلاج
منتديات طلاب جامعة النيلين كلية علوم الحاسوب مركز الحرية

مُساهمةموضوع: ماذا تعرف عن Transportable Tablespaces   السبت سبتمبر 21, 2013 8:29 am

[rtl]أهلا بك عزيزي في هذا الموضوع الجديد والمثير والذي حييت أن أطرحه عليكم لتعم الفائدة ويستفيد الجميع من هذا الموضوع وهو هام لكل من يريد أن يحترف (DBA)[/rtl]

[rtl]أولا سأضع مقدمة للموضوع ومن ثم سوف أشرح الموضوع بالتفصيل ؟[/rtl]



[rtl]كل مستخدم لأوراكل يعلم أن هناك ما يسمى (Export and Import) ويعلم أننا نستطيع تصدير Export المعطيات من قاعدة بيانات ومن ثم نستوردها من قاعدة بيانات أخرى , كما أن هناك تصدير واستيراد على مستوى كامل full وهناك أيضا على مستوى الجدول وهناك أيضا على مستوى المستخدم وعلى مستوى tablespace .[/rtl]



[rtl]ما قرأته سابقا عبارة عن نقل بيانات من قاعدة بيانات إلى أخرى ولكن ماذا إذا أردت نقل tablespace من قاعدة بيانات إلى أخرى (هذا هو لب موضوعنا)[/rtl]



[rtl]إذا ما هو Transportable Tablespaces ؟[/rtl]

[rtl]هو نوع خاص من التصدير export الذي لا يصدر أي معطيات فعلية (كيف ذلك؟)[/rtl]



[rtl]عزيزي القارئ : لو تأملنا في أوراكل وبنيتها سنجد أن أوراكل لها بنية منطقية وبنية فيزيائية وكما تعلمون أن ال Tablespace عبارة عن بنية منطقية ليس لها أي وجود فيزيائي ولكنها تحتوي على بيانات ال datafile والتي تمثل البنية الفيزيائية , وكما تعلمون أن الـ metadata تخزن في ال data Dictionary وبالتالي ما سنقوم به هو تصدير ال metadata المرتبطة بالـ tablespace الذي نريد نقلة إلى dictionary file , كما تلاحظ أننا لن نصدر أي بيانات .[/rtl]

[rtl]إذا ما سنقوم به هو أن نصدر الـ metadata المرتبطة بهذا ال tablespace إلى ملف Dictionary ومن ثم نقوم باستيراده إلى قاعدة البيانات الأخرى وكذلك سنقوم بنسخ ملفات datafiles المرتبطة بهذا ال tablespace إلى قاعدة البيانات الأخرى (فمثلا تستطيع استخدام ال FTP لنسخ هذه الملفات )[/rtl]



[rtl]ملاحظة هامة : هذه الطريقة سوف تستخدم بين قاعدتي بيانات موجودة على أنظمة تشغيل متوافقة (فمثلا إذا كانت قاعدة البيانات الأولى موجودة على نظام تشغيل Unix Solaris لابد أن يكون نظام التشغيل الموجود على قاعدة البيانات الأخرى نفس نظام التشغيل )[/rtl]



[rtl]لهذه الطريقة العديد من الفوائد التي تميزها عن الطرق الأخرى لنقل البيانات ومنها ان هذه الطريقة سريعة جدا مقارنة بطريقة export and import والسبب أننا لا نقوم بنقل محتويات ال tablespace وأنما نقوم بنقل tablespace metadata ونظرا لان حجمها صغير جدا مقارنة مع محتويات ال tablespace والتي قد تقدر بالجيجا بايت .[/rtl]





[rtl]هناك بعض القيود عند استخدام هذه الطريقة :[/rtl]

[rtl]1- كلا من قاعدتي البيانات المصدر والوجهة لا بد أن يكون لها نفس block size ولكي تعرف ذلك تستطيع الاستعلام عنها من ال data dictionary أو من ملف init.ora .[/rtl]

[rtl]2- أن يكون لكلا قاعدتي البيانات نفس character set .[/rtl]

[rtl]3- لا تستطيع نقل ال tablespace في حال كانت قاعدة البيانات الوجهة (destination)تحتوي على نفس اسم ال tablespace .[/rtl]

[rtl]4- أن لا يحتوي ال tablespace المراد نقلة على replication objects or function-based indexes. .[/rtl]

[rtl]5- المالك (owner & user) للأغراض الموجودة في ال tablespace المراد نقلة لا بد أن يكون موجود في قاعدة البيانات الوجهة (أي إذا لم يكن موجود لا بد أن تنشأه) مع ملاحظة أننا لن ننقل user metadata ما سننقله فقط tablespace Metadata .[/rtl]



[rtl]خطوات لنقل ال tablespace من قاعدة بيانات إلى آخرى سهلة جدا ونلخصها بالتالي :[/rtl]

[rtl]1- إختيار مجموعة ال tablespaces المراد نقلها بشرط ان لا تحتوي على أغراض مرتبطة ب tablespace غير موجود في المجموعة المختارة .[/rtl]

[rtl]لشرح الفكرة : بفرض انك تريد نقل INVENTORY_DATA and INVENTORY_INDEXES tablespaces معا ولنفرض ان INVENTORY_INDEXES يحتوي على index مرتبط بالجدول employees والموجود على Employees tablespace في هذا السيناريو فأنك لن تستطيع نقل هذين الفضائين معا لان ال INVENTORY_INDEXES Tablespace يحتوي على index مرتبط بال Employees tablespace والذي لا نريد نقلة .[/rtl]



[rtl]2- انشئ dictionary file باستخدام export utility .[/rtl]

[rtl]3- انسخ الملف السابق مع datafiles المرتبطة بهذا بال tablespaces المراد نقلها إلى السيرفر الذي تتواجد علية قاعدة البيانات الوجهة .[/rtl]

[rtl]4- قم باستيراد dictionary file إلى قاعدة البيانات الوجهة.[/rtl]





[rtl]الطريقة العملية بالتفصيل :[/rtl]

[rtl]الهدف : نقل ال tablespaces باستخدام export and import utility .[/rtl]

[rtl]هذه الطريقة تستخدم لنقل ال tablespace من قاعدة بيانات إلى أخرى ولكن تستطيع محاكاتها على جهازك وان كنت تملك قاعدة بيانات واحدة فقط بفرض أن لديك tablespace مسمى RMAN فأنك تستطيع محاكة هذه الطريقة وذلك بتوليد Transport tablespace ومن ثم تقوم بحذف هذا ال tablespace ومن ثم استيراده مرة أخرى[/rtl]



[rtl]لذا دعنا نبدأ :[/rtl]

[rtl]قم بالدخول الى sqlplus بشرط ان يكون المستخدم sys ولدية الصلاحية SYSDBA[/rtl]

[rtl]1- لمعرفة حالة RMAN tablepace قم بتنفيذ الاستعلام :[/rtl]

SELECT tablespace_name, status

FROM dba_tablespaces

WHERE tablespace_name='WALEED';

[rtl]ستجد ان هذا ال tablespace في حالةonline وهو متاح للاستخدام العام .[/rtl]

[rtl]2- قبل نقل ال tablespace لا بد ان تكون متأكدا من أن الأغراض التي يحتويها لا ترتبط ب tablespace آخر وذلك باستخدام الاجرائية الموجودة في الحزمة DBMS_TTS كما ستلاحظ بالاسفل :[/rtl]

EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('WALEED',true);



[rtl]ستجد رسالة تقول لك : procedure successfully complete [/rtl]



[rtl]بعد الانتهاء من تنفيذ الاجرائية إذا كان هناك أي مشكلة ستقوم بتنفيذ الاستعلام التالي :[/rtl]



SELECT *

FROM transport_set_violations;

[rtl]إذا كانت النتيجة (no row selected) فأنت في safe side وشغلك إلى الآن صحيح وفي حال أعاد الاستعلام أي نتيجة فهذا يعني أن هناك أغراض من هذه ال tablespace مرتبطة ب tablespace آخر وبالتالي لن تستطيع نقلة .[/rtl]



[rtl]كما لاحظتم المثال الذي شرحته سابقا والتي قلنا لن تستطيع نقل ال tablespaces , الأصح انك تستطيع نقلها ولكن بعد أن تقوم بعمل disable للقيود constraints وهذا سوف يؤثر على استقرار البيانات .[/rtl]



[rtl]3- بعد التأكد من عدم ارتباط أي غرض من ال tablespace المراد نقلة مع أي أغراض من tablespace آخر لا بد ان تضع ال tablespace المراد نقلة في وضع readonly[/rtl]



Alter tablespace waleed read only;

[rtl]بعد تنفيذ التعليمة السابقة وللتأكد من ال rman tablespace في وضع read only قم بتنفيذ الاستعلام التالي :[/rtl]



SELECT tablespace_name, status

FROM dba_tablespaces

WHERE tablespace_name='RMAN';

[rtl]ولا بد أن تكون قيمة ال status هي read only .[/rtl]



[rtl]4- قم بالخروج من sqlplus ومن ثم افتح command prompt فإذا كنت تستخدم ويندوز أكتب cmd في run [/rtl]

[rtl]إذا ستقوم الآن بتوليد transportable tablespace export file بإستخدام هذا الأمر :[/rtl]



exp userid='sys/sys as sysdba' file=C:\app\tts_ora92_rman.dmp log=C:\app\tts_ora92_rman.log

transport_tablespace=y tablespaces=waleed



[rtl]كما تلاحظ اننا استخدمنا exp ولا بد من ان ندخل اسم المستخدم وهو sys ولا ننسى كلمة السر ومن ثم نضع مسار للملف الذي سوف نقوم بتصديره وكما تلاحظ المسار وهو C:\079176\ وكذلك اسم الملف , ووضعنا ال log في نفس المسار .[/rtl]

[rtl]لا بد أن تجد في السطر الأخير[/rtl]

Export terminated successfully without warnings.





[rtl]بعد الانتهاء هذا الأمر سيتولد لنا هذا الملف tts_ora92_rman.dmp وفي حال كنا نريد نقلها الى سيرفر آخر ما علينا سوى نقل هذا الملف و datafiles الى السيرفر المتواجد عليها قاعدة البيانات الاخرى .[/rtl]

[rtl]ولكن في حالتنا نحن نستخدم نفس ال database وبنفس الجهاز وبالتالي لا بد من حذف ال tablespace[/rtl]

[rtl]باستخدام التعليمة التالية في sqlplus :[/rtl]



DROP TABLESPACE rman INCLUDING CONTENTS;



[rtl]وللتأكد من أنه تم حذف ال tablespace بنجاح استخدم هذا الاستعلام :[/rtl]



SELECT tablespace_name, status

FROM dba_tablespaces

WHERE tablespace_name='RMAN';

[rtl]والنتيجة رح تكون No Row selected[/rtl]

[rtl]5- الان ستقوم باستيراد الملف الذي قمت بتصديره سابقا ولا تنسى ان تضع مسار ال datafiles [/rtl]



imp userid='sys/password as sysdba'

file=C:\079176\tts_ora92_rman.dmp

log=C:\079176\ts_ora92_rman_imp.log

transport_tablespace=y tablespaces=rman

datafiles=D:\oracle\oradata\ora92\rman01.dbf



[rtl]بعد تنفيذ هذا الأمر في command prompt إذا وجدت هذه الرسالة في السطر الأخير[/rtl]

Import terminated successfully without warnings.

[rtl]فهذا يعني أن عملية الاستيراد تمت بنجاح .[/rtl]



[rtl]وللتاكد من انه تم استيراد الtablespace بشكل صحيح نفذ هذا الاستعلام[/rtl]



SELECT tablespace_name, status

FROM dba_tablespaces

WHERE tablespace_name='RMAN';

[rtl]والنتيجة ستجد ان تم اعادة هذا ال tablespace وحالتة status هي read only .[/rtl]



[rtl]الآن لوضع ال tablespaces في وضع read write قم بتنفيذ هذه التعليمة :[/rtl]



Alter tablespace rman read write;

[rtl]وبهذا تكون قد تمت عملية الاستيراد والتصدير بنجاح .[/rtl]





[rtl]كما لاحظت عزيزي القارئ أننا قمنا بمحاكاة العملية على جهاز واحد ولدينا database واحدة لذا تستطيع أن تطبقها في حال أردت نقل ال tablespace إلى قاعدة بيانات موجودة على سيرفر آخر ولكن لا تنسى أن تنقل الملف الذي قمت يتصديره وكذلك ال datafiles المرتبطة بال tablespace لا بد من نقلها الى السيرفر المتواجد عليه قاعدة البيانات الوجهة وتحديد مسار الdatafiles في الأمر imp .[/rtl]
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://alhemozero.bigforumonline.com
 
ماذا تعرف عن Transportable Tablespaces
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات طلاب جامعة النيلين  :: الفئة الأولى :: يرجى التسجيل فى الموقع قبل الدخول-
انتقل الى: