الانتقال إلى المحتوى

How To Clone Database By Export


the_lifebook

Recommended Posts

اخواني احد الاعضاء سئلني عن موضوع database clone by export فقررت ان اكتب موضوع كامل عن هذه الطريقه



اولا قبل ان نبدا ما الفائده من نقل قواعد البيانات بهذه الطريقه بالرغم من انه يوجر طرق كثيره غيرها اسهل و ابسط في نقل قواعد البيانات
الجواب هوا ان هذه الطريقه هي الافضل لنقل قواعد البيانات بين انظمة التشغيل المختلفه على سبيل المثال نقل قواعد البيانات بين وندز و لينكس و العكس ايضا صحيح

الان لنبداء

اولا قواعد البيانات المصدر (source database)
---------------------------------------------------

1- عمل full export لقواعد البيانات المصدر

exp system/<system_pass>@<instance_name> file=<file_path>/<file_name>.dmp full=y



لا تنسا تعديل ال <file_path> <file_name> <instance_name>

2- اعمل create_tablespace.sql script الذي يحتوي على اوامر انشاء ال tablespaces عن طريق تنفيذ السكرت التالي

set pagesize 100
set linesize 1000
spool <path>/create_tablespace.sql
select 'create tablespace '||tablespace_name||' datafile '''||file_name||''' size '||bytes/1024/1024||'M autoextend '||AUTOEXTENSIBLE||';' from dba_data_files; spool off



لا تنسا تعديل ال <path>

الان نفتح الملف create_tablespace.sql و نقوم بالتالي:


a)نشطب كل الجمل التي لا تبدا في جملة create tablespace
b ) غير مسارات الملفات كما تحتاج
c) في اخر كل جمله غير YES ل ON و غير NO ل OFF
d) غير احجام الملفات لاقرب عدد صحيح

3- الان نفذ الامر التالي في قواعد البيانات لانشاء سكرت انشاء ال users

set pagesize 100
set linesize 1000
spool <path>/create_users.sql
select 'create user ' || username || ' identified by values ''' || password ||''' default tablespace '||default_tablespace||' temporary tablespace '||temporary_tablespace||';' from dba_users; spool off



لا تنسا تعديل ال <path>

الان فاتح الملف create_users.sql و قم بالتالي
a) الان افتح ال create_users.sql script و ازل كل الجمل التي لا تبدا ب create user
b ) الان اذا اردت تستطيع ان تغير ال default tablespace و ال temporary tablespace لل user

قواعد البيانات الهدف (destination database)
---------------------------------------------------

1-اولا تحتاج لبناء قواعد بيانات جديده
2-نفذ السكربت create_tablespaces.sql على قواعد البيانات الجديده كتالي

spool <path>/new_tbs.log
@<path>/create_tablespace.sql
spool off



لا تنسا تعديل ال <path>

الان افتح الملف new_tbs.log لترا اذا كان هنالك مشاكل في بناء ال new tablespaces
ملاحظات:
a)اذا ظهرت ال error التاليه فهذا معناه ان ال tablespace موجوده قبل عملية ال import

ORA-01543: tablespace <tablespace_name> already exists


b ) تجاهل الerror التاليه

ORA-13503: Creating SYSAUX tablespace with invalid attributes



لانه هذه ال error لها علاقه بال enterprise manager tablespace

2-نفذ السكربت create_users.sql على قواعد البيانات الجديده

3- الان عمل import للملف ال exported من قواعد البيانات المصدر

imp system<system_passowrd>@<databas_name> file=<file_path> full=y



اذا انتهت هذه العمليه بدون مشاكل نكون قد انتهينا من نقل قواعد البيانات
تستطيع تطبيقها في نقل قواعد بيانات في حالتين
في حالة نقل قوتعد بيانات بين انظمة تشغيل او نقل قواعد بيانات بين اصدارين من قواعد البيانات اوراكل

ارجو ان ينال الموضوع اعجابكم فقد تعبت و انا اجهه لكم

اذا كان عند اي احد استفسار عن الشرح انا جاهز لاجابته

تحياتي للجميع


رابط هذا التعليق
شارك

السلام عليكم ورحمه الله

الاخ:the_lifebook
جزاكم الله خير على تلبية الاجابة بالرد وجعل هذا الجهد فى ميزان حسناتك.

لدى بعد الاسئلة لو تكرمت :
-بالنسبة لى انا اريد اعمل clone database by Export كى تكون Devlopment test

بمعنى انا عندى داتا بيز بوردكشن اريد اعمل لها كلون بحيث اعمل داتا بيز اخرى للديفلوبر تيم حتى ينفذوا عليهم شغلهم قبل الانتقال للبوردكشن.

ولنفترض انا لدينا داتا بيز بوردكشن اسمها zain والاخرى التى نريد انشاها للديفلوبر اسمها DEV

بالنسبة لل DEV داتا بيز هنعمل NEW INSTNCAE اما ماذا ، ام ننزل السوفت وير بتاع اوركل فقط

حاضرتك بتقول نحتاج( اولا تحتاج لبناء قواعد بيانات جديده) معنى ذلك اننا هنعمل داتا بيز جديده طريق dbca ونفترض اننا على سيرفر واحد يعنى 2 instance

رابط هذا التعليق
شارك

اخي العزيز

اولا نعم يجب ان تبني قواعد بيانات بيدك عن طريق ال dbca
ثانيا سمي قواعد البيانات الجديده الاسم الذي تريده فهذه الطريقه لا تعتمد على اسم قواعد البيانات ولا كن انتبه عند ال import ال database_name هوا اسم قواعد البيانات الجديده
ثالثا لا يهم اين تبنيها ولاكن دائما الافضل ان تبني قواعد البيانات التي تستخدم لل development على server غير ال server المستخدم لقواعد البيانات لل production لتفادي حصول اي اخطاء

و اي سؤال ثاني انا جاهز لاجابته

تحياتي اخي العزيز

تم تعديل بواسطة the_lifebook
رابط هذا التعليق
شارك

السلام عليكم أخي الكريم
لدي بعض الاستفسارات التي ارجو أن يتسع لها صدرك.
أولا:
exp system/<system_pass>@<instance_name> file=<file_path>/<file_name>.dmp full=y
ماذا تقصد بكلمة system هنا وكيف احصل على system_pass وارجو التوضيح بمثال
. انا استخدم هذا الكود: exp USERID=scott/tiger FULL=y FILE=myfull.dmp
ما تعليقك على هذا الكود
ثانيـــا: بالنسبة لل.. create_tablespace.sql
set pagesize 100
set linesize 1000
spool <path>/create_tablespace.sql
select 'create tablespace '||tablespace_name||' datafile '''||file_name||''' size '||bytes/1024/1024||'M autoextend '||AUTOEXTENSIBLE||';' from dba_data_files; spool off
كيف أعمل create tablespace script
هل يتم ذلك ال SQL أم ماذا؟
ثالثـــا: أعتقد انه يوجد script لل Roles من فضلك أرجوا ان ترسل لى هذا الاسكريبت.
رابعــا: بالنسبة لل Database dev التي سأعمل فيها import هل المفروض انشاء يوزر يكون هو ال database owner ونعمل له grant DBA,resource to hr.؟
جزاكم الله خير.

رابط هذا التعليق
شارك

اخي العزيز اسئلتك هي اساسيات قواعد البينات اوراكل التي يجب ان تكون تعرفها قبل ان تحاول تطبيق الكلام الذي في الموضوع حتى لو شرحة لك اذا كنت لا تعرف ابسط القواعد لا افظل ان تجرب هذه الطريقه على production
و هذا جوابي على كل سؤال

السؤال الاول : system هوا عباره عن ال user system و هذا المستخدم تظع كلمة المرور له عند بناء قواعد البيانات ولاكن لو لم تعرف كلمة المرور ادخل لقواعد البيانات

/as sysdba


ثم غير كلمة المرور اما بنسبه للمثال

alter user system identified by sys



اما بنسبه لطريقه التي استخدمتها انت هي صحيحه ولاكن scott لا يسحب غير المعلومات الي مسموح له ان يراها وليس كل قواعد البيانات و ايضا في مثالك لا يوجد اسم قواعد بيانات و هذا غير مفظل حتى لا تاخذ export لقواعد بيانات اخرا بالخطاء هذا لو كان عندك على ال server اكثر من قواعد بينات ثالثا لم تعد بحاجة userid =

exp USERID=scott/tiger FULL=y FILE=myfull.dmp



السؤال الثاني:اخوي العزيز بنسبه عن ال create_tablespace.sql انا معطيك الطريقه بالحرف انا الكلام الي انا حاطه في الخطوه 2 رح يبني السكريت الي بيحتوي على create tablespace commands في ال path الذي انتا لازم تحدده و اكيد لازم يتنفذ في ال sql لو تطلع فوق الكود رح تلاحظ انه مكتوب sql code

السؤال الثالث: بنسبه لل roles اخوي العزيز من الاساسيات البسيطه التي يعرفها مدير قواعد البيانات ان ال full export سوف يسحب ايضا ال roles

السؤال الرابع:الخطوات واظحه و انا ما طلبت في الخطوات انه تبني اي user نفذ الخطوات بدون ما تزيد اي شيئ و ان شاء الله ما بيسير مشاكل

اخي العزيز انا افظل ان لا تطبق هذه الطريقه قبل ان تعرف اكثر في اوراكل لانه حسب الاسئله انتا لا تمتلك معلومات كافيه عن اوراكل تجعلك تطبق هذه الخطوات على production system لذالك انصحك ان لا تغامر لان اخطاء بسيطه على ال production قد تؤدي الى كوارث كبيره

تحياتي اخي العزيز

رابط هذا التعليق
شارك

اخي الكريم

انا اريد ان اعلق على موضوع السكربت
اخي العزيز الكسربت هو عبارة عن عبارات توضع داخل تكست فايل حتى
يتم التعامل معها فيما بعد عن طريق الاستدعاء اما عن طريق الاستدعاء المباشر
باستخدام حرف @ او بالاستدعاء من خلال باتش فايل مع استخدام الباث المناسب للبرنامج المنفذ
للعمليات التي تريد تنفيذها وهنا اريد ان اوضح التالي

ان الاوراكل يوجد بها تول تساعد على انشاء هذا السكربت(ملف التكست) وتسمى سبوول
السبول هو عبارة عن حافظة موقتة يستخدمها الاوراكل و بعد ذلك ينشىء من خلالها ملف تكست
يحتوي على الجمل و نتائج التنفيذ للجمل على السكيو ال

لذلك يتم حذف الكلام الزائد من الجمل المطلوبة حتى عند تنفيذ السكربت لا يحدث اخطاء

رابط هذا التعليق
شارك

  • بعد 4 أسابيع...

hello my friends
i recomended using dbms_datapump to transport data.

but if u want to use exp utility :
i highly recomended using consistent=y (specially when export from live production database)

Best Regards

تم تعديل بواسطة nighty
رابط هذا التعليق
شارك

  • بعد 3 شهور...

جزاك الله خير

رابط هذا التعليق
شارك

  • بعد 10 شهور...

Thanks for this info, we are using type to make testing environment with the same OS but its really taking alot of time because of the size of the datafiles.. also its taking too long on the indexing part, i will be appreciated if you could provide me with another way to make clone on testing environment in the fastest way

Thank again

رابط هذا التعليق
شارك

  • بعد 10 شهور...

اوك باشا انا جربت الطريقه دى بس الامبورت ضرب فى ايرور كتير اوى فى حاجه ليها علاقه ب sys داه عادى و لا ايه ؟

و معلش سوال تانى لو انتا كنت ناقل بكتج كتير اوى بتبقا كومبيلد و لا لازم اخش اعملها كومبيلد ببرنامج زى التود كده ؟

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية