the_lifebook بتاريخ: 3 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 3 ديسمبر 2009 اخواني احد الاعضاء سئلني عن موضوع 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 tablespaceb ) غير مسارات الملفات كما تحتاج c) في اخر كل جمله غير YES ل ON و غير NO ل OFFd) غير احجام الملفات لاقرب عدد صحيح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 userb ) الان اذا اردت تستطيع ان تغير ال 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 tablespace2-نفذ السكربت create_users.sql على قواعد البيانات الجديده3- الان عمل import للملف ال exported من قواعد البيانات المصدر imp system<system_passowrd>@<databas_name> file=<file_path> full=y اذا انتهت هذه العمليه بدون مشاكل نكون قد انتهينا من نقل قواعد البيانات تستطيع تطبيقها في نقل قواعد بيانات في حالتين في حالة نقل قوتعد بيانات بين انظمة تشغيل او نقل قواعد بيانات بين اصدارين من قواعد البيانات اوراكلارجو ان ينال الموضوع اعجابكم فقد تعبت و انا اجهه لكم اذا كان عند اي احد استفسار عن الشرح انا جاهز لاجابته تحياتي للجميع 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
waziry بتاريخ: 4 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 4 ديسمبر 2009 السلام عليكم ورحمه الله الاخ:the_lifebookجزاكم الله خير على تلبية الاجابة بالرد وجعل هذا الجهد فى ميزان حسناتك.لدى بعد الاسئلة لو تكرمت :-بالنسبة لى انا اريد اعمل clone database by Export كى تكون Devlopment testبمعنى انا عندى داتا بيز بوردكشن اريد اعمل لها كلون بحيث اعمل داتا بيز اخرى للديفلوبر تيم حتى ينفذوا عليهم شغلهم قبل الانتقال للبوردكشن.ولنفترض انا لدينا داتا بيز بوردكشن اسمها zain والاخرى التى نريد انشاها للديفلوبر اسمها DEVبالنسبة لل DEV داتا بيز هنعمل NEW INSTNCAE اما ماذا ، ام ننزل السوفت وير بتاع اوركل فقط حاضرتك بتقول نحتاج( اولا تحتاج لبناء قواعد بيانات جديده) معنى ذلك اننا هنعمل داتا بيز جديده طريق dbca ونفترض اننا على سيرفر واحد يعنى 2 instance اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
the_lifebook بتاريخ: 4 ديسمبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 4 ديسمبر 2009 (معدل) اخي العزيز اولا نعم يجب ان تبني قواعد بيانات بيدك عن طريق ال dbca ثانيا سمي قواعد البيانات الجديده الاسم الذي تريده فهذه الطريقه لا تعتمد على اسم قواعد البيانات ولا كن انتبه عند ال import ال database_name هوا اسم قواعد البيانات الجديدهثالثا لا يهم اين تبنيها ولاكن دائما الافضل ان تبني قواعد البيانات التي تستخدم لل development على server غير ال server المستخدم لقواعد البيانات لل production لتفادي حصول اي اخطاء و اي سؤال ثاني انا جاهز لاجابتهتحياتي اخي العزيز تم تعديل 4 ديسمبر 2009 بواسطة the_lifebook اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
waziry بتاريخ: 5 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 5 ديسمبر 2009 السلام عليكم أخي الكريملدي بعض الاستفسارات التي ارجو أن يتسع لها صدرك.أولا: 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.sqlset pagesize 100set linesize 1000spool <path>/create_tablespace.sqlselect '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.؟ جزاكم الله خير. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
the_lifebook بتاريخ: 6 ديسمبر 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 ديسمبر 2009 اخي العزيز اسئلتك هي اساسيات قواعد البينات اوراكل التي يجب ان تكون تعرفها قبل ان تحاول تطبيق الكلام الذي في الموضوع حتى لو شرحة لك اذا كنت لا تعرف ابسط القواعد لا افظل ان تجرب هذه الطريقه على 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 قد تؤدي الى كوارث كبيرهتحياتي اخي العزيز اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
anas_almasri بتاريخ: 6 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 6 ديسمبر 2009 اخي الكريمانا اريد ان اعلق على موضوع السكربت اخي العزيز الكسربت هو عبارة عن عبارات توضع داخل تكست فايل حتىيتم التعامل معها فيما بعد عن طريق الاستدعاء اما عن طريق الاستدعاء المباشرباستخدام حرف @ او بالاستدعاء من خلال باتش فايل مع استخدام الباث المناسب للبرنامج المنفذللعمليات التي تريد تنفيذها وهنا اريد ان اوضح التاليان الاوراكل يوجد بها تول تساعد على انشاء هذا السكربت(ملف التكست) وتسمى سبوولالسبول هو عبارة عن حافظة موقتة يستخدمها الاوراكل و بعد ذلك ينشىء من خلالها ملف تكستيحتوي على الجمل و نتائج التنفيذ للجمل على السكيو ال لذلك يتم حذف الكلام الزائد من الجمل المطلوبة حتى عند تنفيذ السكربت لا يحدث اخطاء اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
nighty بتاريخ: 30 ديسمبر 2009 تقديم بلاغ مشاركة بتاريخ: 30 ديسمبر 2009 (معدل) 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 تم تعديل 30 ديسمبر 2009 بواسطة nighty اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
scince بتاريخ: 26 أبريل 2010 تقديم بلاغ مشاركة بتاريخ: 26 أبريل 2010 جزاك الله خير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
OmarMusallam بتاريخ: 3 مارس 2011 تقديم بلاغ مشاركة بتاريخ: 3 مارس 2011 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 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
shalata بتاريخ: 11 يناير 2012 تقديم بلاغ مشاركة بتاريخ: 11 يناير 2012 اوك باشا انا جربت الطريقه دى بس الامبورت ضرب فى ايرور كتير اوى فى حاجه ليها علاقه ب sys داه عادى و لا ايه ؟ و معلش سوال تانى لو انتا كنت ناقل بكتج كتير اوى بتبقا كومبيلد و لا لازم اخش اعملها كومبيلد ببرنامج زى التود كده ؟ اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.