Moawia.Mohammed بتاريخ: 24 يوليو 2015 تقديم بلاغ مشاركة بتاريخ: 24 يوليو 2015 CREATING CONTROL FILE السلام عليكم ورحمة الله تعالى وبركاتة ، اللهم صل وسلم وبارك على سيدنا محمد وعلى آله وصحبه أجمعين ... يواجه الكثير منا مشاكل مع ال control file لا سيما في المراحل البدائية من التعلم ، الطريقة الموضحة أدناه ليست حل أمثل لمشاكل ال control file فيجب أن لا نلجأ إليها مباشرة عندما نواجه مشكلة مع الcontrol file فأحياناً تكون المشكلة بسيطة جداً ويمكن تداركها ، هذه الطريقة نستخدمها في إحدى الحالات أدناه : فقدان جمــــيع نسخ ال control files ، وعدم وجود backup control file "طبعاً لتفادي الكثير من المشاكل يجب ان يكون لديك ع الأقل ثلاثة نسخ من ال control file مختلفة المواقع " . تريد تغيير اسم ال database . " مثلاً لتفادي تطابق أسم الداتا بيز مع أخرى على distributed environment " وأحياناً لتغيير قيم معينة مثل "تغير قيمة أقصى عدد من الآتي : redo log files - data files - instances ..." . الصيغة العامة لانشاء الملف موضحة بالمثال التالي : مثال رقم : 1 STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'E:\APP\ORACLEO\ORADATA\ORCL\REDO01.LOG' SIZE 50M BLOCKSIZE 512, GROUP 2 'E:\APP\ORACLEO\ORADATA\ORCL\REDO02.LOG' SIZE 50M BLOCKSIZE 512, GROUP 3 'E:\APP\ORACLEO\ORADATA\ORCL\REDO03.LOG' SIZE 50M BLOCKSIZE 512 DATAFILE 'E:\APP\ORACLEO\ORADATA\ORCL\SYSTEM01.DBF', 'E:\APP\ORACLEO\ORADATA\ORCL\SYSAUX01.DBF', 'E:\APP\ORACLEO\ORADATA\ORCL\UNDOTBS01.DBF', 'E:\APP\ORACLEO\ORADATA\ORCL\USERS01.DBF', 'E:\APP\ORACLEO\ORADATA\ORCL\EXAMPLE01.DBF', 'H:\APP\ORACLEO\FLASH_RECOVERY_AREA\ORCL\SYSAUX02.DBF', 'H:\APP\ORACLEO\FLASH_RECOVERY_AREA\ORCL\TESTTAB01.DBF' CHARACTER SET WE8MSWIN1252 ; المثال يوضح عملية انشاء الملف حسب العوامل التالية : لانريد تغير إسم ال database > بالتالي استخدمنا الأمر REUSE . توفر ال online redo files وصلاحيتها > وبالتالي استخدمنا الأمر NORESETLOGS وهو الأمر المعني بإخبار أوراكل ليتسخدم الملفات الموجود تحت العبارة LOGFILE "مثال رقم 1". "يعني بإختصار استخدم ملفاتي القديمة" عمل أرشفة لل redo log files قبل إستخدامها > وبالتالي استخدمنا الأمر ARACHIVELOG . كما يمكن تفعيل الarchive mode لاحقاً ، عن طريق alter database . مثال رقم : 2 STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'E:\APP\ORACLEO\ORADATA\ORCL\REDO01.LOG' SIZE 50M BLOCKSIZE 512, GROUP 2 'E:\APP\ORACLEO\ORADATA\ORCL\REDO02.LOG' SIZE 50M BLOCKSIZE 512, GROUP 3 'E:\APP\ORACLEO\ORADATA\ORCL\REDO03.LOG' SIZE 50M BLOCKSIZE 512 DATAFILE 'E:\APP\ORACLEO\ORADATA\ORCL\SYSTEM01.DBF', 'E:\APP\ORACLEO\ORADATA\ORCL\SYSAUX01.DBF', 'E:\APP\ORACLEO\ORADATA\ORCL\UNDOTBS01.DBF', 'E:\APP\ORACLEO\ORADATA\ORCL\USERS01.DBF', 'E:\APP\ORACLEO\ORADATA\ORCL\EXAMPLE01.DBF', 'H:\APP\ORACLEO\FLASH_RECOVERY_AREA\ORCL\SYSAUX02.DBF', 'H:\APP\ORACLEO\FLASH_RECOVERY_AREA\ORCL\TESTTAB01.DBF' CHARACTER SET WE8MSWIN1252 ; المثال يوضح عملية إنشاء الملف حسب العوامل التالية : نريد تغيير إسم ال DATABASE إلى "RAN" مثلاً ، عوضاً عن "ORCL" > وبالتالي استخدمنا الأمر SET عوضاً عن REUSE . عدم توفر ال online redo files > وبالتالي استخدمنا الأمر RESTLOGS وهو المعني باخبار الأوراكل ليقوم بتجاهل الملفات الموجود تحت عبارة LOGFILE وطالما اننا قد استخدمنا الأمر SET صار استخدام RESETLOGS ضرورياً "تغيير إسم الداتا بيز ليس بالأمر السهل " . وتباعاً يجب فتح ال DATABASE باستخدام الأمر OPEN RESETLOGS . لا نريد عمل أرشفة قبل الإستعمال > وبالتالي استخدمنا الأمر NOARCHIVELOG ، وهو الإعداد الإفتراضي "يمكن تجاهل كتابتها" . ملحوظة :-الأمر RESETLOGS أمر خطير جداً يجب التعامل معه بمسؤولية ، فهو يقوم بعمل تهيئة لل LOGS و إعادة ضبط الرقم المتسلسل "LOG SEQUENCE NUMBER" . اي ستبدأ عملية التسجيل من جديد . الآن كيف نعمل SCRIPT ليقوم بعمل الكنترول فايل عوضاً عنا ؟ إنشاء ملف trace من ال control file مع تحديد موقع إنشاء الملف "لتسهيل الوصول " : SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS 'H:\ctl.sql'; نقوم بفتح الملف بإستخدام ال notebad ، داخل الملف سنجد بعض الملاحظات المرفقة وتوضيح لحالتي ال RESETLOGS و ال NORESETLOGS , "ملاحظات جميلة جداً وشاملة ، ارجوك قم بقراءتها" . - قم بمسح جميع الملاحظات وكل شئ يبدأ بالعلامة -- ، وإختار اي الوضعين تحتاج لتطبيقة "RESETLOGS OR NORESETLOGS" . وقم بحذف الآخر. - انتبه ، لاتترك أي سطر فارغ بعد العبارة ولاحقتها ،،، خاصةً عند حذف العبارة "-- standyby log file" . طبعاً يمكن نسخ احد الأمثلة أعلاه (1و2) والتعديل عليها ، إذن ما ضرورة انشاء ملف trace ؟ انشاء ملف ال trace سيقوم بإعفائك من كتابة قيم المتغيرات ومواقع الملفات وكل هذه الخيارات ، لذا من الأفضل ان تقوم بهذه الخطوة ومن ثم تعدل بما يناسبك من المثالين 1 و 2 . - لمن لا يعرف طريقة إستخدام ال scripts ادخل على sql بحساب sys وقم بكتابة مسار الإسكربت مسبوقاً بعلامة @ على النحو التالي : SQL> @H:\ctl.sql والله ولي التوفيق ، 2 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ميسم الكرام بتاريخ: 24 يوليو 2015 تقديم بلاغ مشاركة بتاريخ: 24 يوليو 2015 معلومات قيمة ..جزاك الله خيراً على المشاركة ..التوفيق للجميع 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Moawia.Mohammed بتاريخ: 24 يوليو 2015 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 24 يوليو 2015 اخت ميسم أرجو مراسلتي بخصوص مشكلة صغيرة من فضلك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Moawia.Mohammed بتاريخ: 24 يوليو 2015 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 24 يوليو 2015 مشكلتي هي اني نزلت الموضوع الأول ولم حبيت أعدل عليه لم أستطع ، ولم أجد الخيار تعديل ، التعديل كان لنسياني تنيهاً مهماً ، بس المسؤولية العلمية تحتم علي إعطاء معلومة كاملة أو الإشارة لما انتقص منها ، المهم الآن الموضوع التاني موجود بالمنتدى وياريت تتكرمي وتقومي بحذفه علشان اللبس الممكن يسببو مع مرور الوقت على المستخدمين ، بلغت عن الموضوع بنفسي لكن نظراً لغياب تيم الإشراف عن المنتدى "لا ألومهم طبعاً ، فالدنيا مشاغل " لا اتوقع ان اجد رداً عاجلاً ، ولاحظت انك ماشاء الله أكثر المشرفين نشاطاً ، ربنا يزيدك نشاط ، فقلت أكلمك وربما اجد عندك حل ، وهل توجد طريقة تمكن العضو من حذف موضوع قام بكتابته ؟ وشكراً جزيلاً لإهتمامك وسرعة الإستجابة اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ميسم الكرام بتاريخ: 25 يوليو 2015 تقديم بلاغ مشاركة بتاريخ: 25 يوليو 2015 أشكر حرص حضرتك على إيصال المعلومة بشكل مكتمل لتعم الفائدة للجميع جزاك الله خيراً لفعل الخير وأشكر حضرتك للحرص على ان يكون المنتدى منظم ومنسق وموحد المعلومات قد أبلغت الإدارة بالموضوع والله يوفق الجميع 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
feco407 بتاريخ: 26 يوليو 2015 تقديم بلاغ مشاركة بتاريخ: 26 يوليو 2015 مشكور اخونا محمد معاوية على الموضوع المفيد 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Moawia.Mohammed بتاريخ: 27 يوليو 2015 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 27 يوليو 2015 مشكورة اخ ميسم ، المشكلة اتحلت والحمد لله ، جزاك الله كل خير ، مشكور يا feco407 على التفاعل الجميل اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
قيس قاسم بتاريخ: 29 يوليو 2015 تقديم بلاغ مشاركة بتاريخ: 29 يوليو 2015 الرجاء من ذوي الخبرة مساعدتي في حل هذه المشكلة مع الشكر الجزيل SQL> alter database open;alter database open*ERROR at line 1:ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],[274], [81308], [84640], [], [], [], [], [], [], [] اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
feco407 بتاريخ: 30 يوليو 2015 تقديم بلاغ مشاركة بتاريخ: 30 يوليو 2015 الاخ قيس, لا ادري ماذا حدث معك ليتسبب في هذه المشكلة فأرجو ارسال تاريخ الحالة وال log file.. من البحث عن مشاكل مشابهة لمشكلتك فقد تحتاج الى عمل Recovery connect / as sysdba shutdown immediate; startup mount; alter database recover; alter database open; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
قيس قاسم بتاريخ: 31 يوليو 2015 تقديم بلاغ مشاركة بتاريخ: 31 يوليو 2015 مشكور أخي العزيز على ردك السريع فقد قمت بتطبيق ال recovery ولكن الخطأ استمر ولأحيطك علما هو اني قمت بفتح clone من فيرجن 4 لينكس الى 6 فظهرت هذه المشكلة علما اني طبقت جميع خطوات الترقية من فيرجن 10 ال 11 وكانت ناجحة على فيرجن 4 لينكس وعند الانتقال الى 6 ظهرت هذه المشكلة؟؟؟؟؟؟؟ فداتا بيز في حالة mount ولكنها ليست open اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Moawia.Mohammed بتاريخ: 4 أغسطس 2015 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 4 أغسطس 2015 الرجاء من ذوي الخبرة مساعدتي في حل هذه المشكلة مع الشكر الجزيل SQL> alter database open; alter database open * ERROR at line 1: ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [274], [81308], [84640], [], [], [], [], [], [], [] السلام عليكم أخ قيس ، أولاً لمن يكون عندك مشكلة معينة ياريت لو تفرد ليها موضوع منفصل لتجنب اللبس وفصل المشاكل والمواضيع عن بعضها البعض ،،، ثانياً الخطأ العندك هو عبارة عن مشكلة مطقية في ال control file ، أمامك خيارين: - إتباع الخطوات المذكورة في البوست ، وانشاء control file من جديد بإستخدام الأمرNORESETLOGS - SQL>Startup mount ; - نفذ ال query التالي : select a.member,a.group#,b.status from v$logfile a ,v$log b where a.group#=b.group# and b.status='CURRENT'; "لمعرفة ال log الحالي " ، اكتب البيانات المخرجة على ملف text لا ستخدامها لاحقاً . - SQL>startup mount; - SQL>recover database using backup controlfile until cancel; -حيسالك من ال log ، حتدخل ال log location من ملف text "الخطوة الأولى " . -SQL> Alter database open resetlogs ; إختار الطريقة الأفضل والأسهل بالنسبة لك ، والله ولي التوفيق ، اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.