بتاريخ: 24 يوليو 201510 سنة comment_264882 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 والله ولي التوفيق ، تقديم بلاغ
بتاريخ: 24 يوليو 201510 سنة comment_264883 معلومات قيمة ..جزاك الله خيراً على المشاركة ..التوفيق للجميع تقديم بلاغ
بتاريخ: 24 يوليو 201510 سنة كاتب الموضوع comment_264885 اخت ميسم أرجو مراسلتي بخصوص مشكلة صغيرة من فضلك تقديم بلاغ
بتاريخ: 24 يوليو 201510 سنة كاتب الموضوع comment_264889 مشكلتي هي اني نزلت الموضوع الأول ولم حبيت أعدل عليه لم أستطع ، ولم أجد الخيار تعديل ، التعديل كان لنسياني تنيهاً مهماً ، بس المسؤولية العلمية تحتم علي إعطاء معلومة كاملة أو الإشارة لما انتقص منها ، المهم الآن الموضوع التاني موجود بالمنتدى وياريت تتكرمي وتقومي بحذفه علشان اللبس الممكن يسببو مع مرور الوقت على المستخدمين ، بلغت عن الموضوع بنفسي لكن نظراً لغياب تيم الإشراف عن المنتدى "لا ألومهم طبعاً ، فالدنيا مشاغل " لا اتوقع ان اجد رداً عاجلاً ، ولاحظت انك ماشاء الله أكثر المشرفين نشاطاً ، ربنا يزيدك نشاط ، فقلت أكلمك وربما اجد عندك حل ، وهل توجد طريقة تمكن العضو من حذف موضوع قام بكتابته ؟ وشكراً جزيلاً لإهتمامك وسرعة الإستجابة تقديم بلاغ
بتاريخ: 25 يوليو 201510 سنة comment_264898 أشكر حرص حضرتك على إيصال المعلومة بشكل مكتمل لتعم الفائدة للجميع جزاك الله خيراً لفعل الخير وأشكر حضرتك للحرص على ان يكون المنتدى منظم ومنسق وموحد المعلومات قد أبلغت الإدارة بالموضوع والله يوفق الجميع تقديم بلاغ
بتاريخ: 27 يوليو 201510 سنة كاتب الموضوع comment_264965 مشكورة اخ ميسم ، المشكلة اتحلت والحمد لله ، جزاك الله كل خير ، مشكور يا feco407 على التفاعل الجميل تقديم بلاغ
بتاريخ: 29 يوليو 201510 سنة comment_265012 الرجاء من ذوي الخبرة مساعدتي في حل هذه المشكلة مع الشكر الجزيل 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], [], [], [], [], [], [], [] تقديم بلاغ
بتاريخ: 30 يوليو 201510 سنة comment_265022 الاخ قيس, لا ادري ماذا حدث معك ليتسبب في هذه المشكلة فأرجو ارسال تاريخ الحالة وال log file.. من البحث عن مشاكل مشابهة لمشكلتك فقد تحتاج الى عمل Recovery connect / as sysdba shutdown immediate; startup mount; alter database recover; alter database open; تقديم بلاغ
بتاريخ: 31 يوليو 201510 سنة comment_265036 مشكور أخي العزيز على ردك السريع فقد قمت بتطبيق ال recovery ولكن الخطأ استمر ولأحيطك علما هو اني قمت بفتح clone من فيرجن 4 لينكس الى 6 فظهرت هذه المشكلة علما اني طبقت جميع خطوات الترقية من فيرجن 10 ال 11 وكانت ناجحة على فيرجن 4 لينكس وعند الانتقال الى 6 ظهرت هذه المشكلة؟؟؟؟؟؟؟ فداتا بيز في حالة mount ولكنها ليست open تقديم بلاغ
بتاريخ: 4 أغسطس 201510 سنة كاتب الموضوع comment_265109 الرجاء من ذوي الخبرة مساعدتي في حل هذه المشكلة مع الشكر الجزيل 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 ; إختار الطريقة الأفضل والأسهل بالنسبة لك ، والله ولي التوفيق ، تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.