بتاريخ: 10 أغسطس 200619 سنة comment_76287 السلام عليكم ورحمة الله وبركاتهسبق وان رأيت نظام كبير لدى إحدى الشركات قد عمل فيه شاشة تعمل على إظهار جميع من يعمل lock للنظام بمعنى أن أي أحد يكون متصل بالنظام تظهر عنه الملعومات التالية session id object_id(serial) lock object_name machinبحيث انه لو أحد مثلا فاتح شاشة الموظفين وباقي يعدل على سجل وهناك شخص آخر يحاول ان يعمل اما تعديل على نفس السجل او على الجدول يبقى الشخص الآخر مقفل عليه لحين انتهاء الأول وليس هذا هو الهدف الأساسي لها حسب كلامهم حيث انهم قالوا انه هذه الشاشة تفيد حين يكون هناك ضغط على النظام وتكثر العمليات عليه يتوقف النظام او " يهنّق " فيقومون بعمل انهاء لجميع العمليات على النظام او على عمليه معينه يتم من خلالها alter system kill session فتظهر رسالة للمستخدم انه تم التراجع عما قمت به rollback ويرجع النظام لحالته الطبيعيةكيف يمكننا عمل ذلك حيث ان العملية هذه تتم على جدول منشا خاص لهذه الفكرة وإما ان تكون هناك دالة او روتين تقوم بتخزين جميع session في هذا الجدول ..؟ تقديم بلاغ
بتاريخ: 12 أغسطس 200619 سنة comment_76460 اخي يمكن التعامل مع هذا الموضوع عن طريق ال ORACLE ENTERPRISE MANAGER --- OEM حيث توجد شاشات لهذا الغرض او عن طريق ال SQL*PLUS بإستعراض مايلي V$SESSIONV$LOCKتحياتي تقديم بلاغ
بتاريخ: 13 أغسطس 200619 سنة كاتب الموضوع comment_76472 ردك جميل.. لكن من الصعب أن تجعل المستخدمين او المشرف على النظام وهو غير DBA ان تكون عنده OME ولو كانت موجوده كيف انا اقدر آخذ البيانات منها واضعها في جدول على شاكلة ماسبق واعطاء صلاحية لمشرف النظام وهو بالطبع ليس DBA بتنفيذ هذه العمليةياليت لو اجد إجابة تقديم بلاغ
بتاريخ: 15 أغسطس 200619 سنة كاتب الموضوع comment_76618 نداء الى جميع أعضاء منتدلا DBA هل من مجيب...؟ تقديم بلاغ
بتاريخ: 15 أغسطس 200619 سنة comment_76620 يمكنك إستخدام هذه الجمله Select oracle_username os_user_name, locked_mode, object_name, object_type, session_id, serial# From V$locked_object a,dba_objects b,v$session cWhere a.object_id = b.object_idand a.session_id=c.sid ;فتكون قد حصلت علىserial#,SIDبعد ذلك ;(alter system kill session (x,yWHEREx=SIDy=serial# تقديم بلاغ
بتاريخ: 15 أغسطس 200619 سنة comment_76645 u can make it a job on db or if the Apps is 11i make an alert runs every period then i kills old locks and inactive sessions تقديم بلاغ
بتاريخ: 16 أغسطس 200619 سنة كاتب الموضوع comment_76702 شكرا للجميعجاري العمل على هذه الجملة تقديم بلاغ
بتاريخ: 17 أغسطس 200619 سنة comment_76801 غالبا وفي الوضع الطبيعي يجب الا يحدث ذلك ،، الا لوكانت هناك مشكلة في القرائه من هذه الجدول ،، لان اي عمليه تتم عن طريق application يحدث لها commit على طول ،،، لتوضيح اكثر :تخيل ان الجدول المقصود يحتوي على عدد كبير جدا من record والـ column اللذي تقول بالتعديل عليه لايوجد عليه اي index ،، مما سيجعل عمليه البحث تستغرق زمن (10 ثواني مثلاً)، في الاوقات العاديه لن يشعر المستخدمين بذلك ،، لاكن في اوقات الذروه سيشعر بذلك وسيكون ذلك واضح جدا ،، وقد ينتج عن ذلك ايظا dead-lockقم بأخذ statspack report وقت حدوث هذه المشكلة وقم بتحميله، وان شاء الله المشكلة بسيطه. how to make the statspack report : 1- login with perfstat user. 2- run the following package ( exec statspack.snap(i_snap_level=>10). 3- wait for 30 minits, then run the command again. 4- run the spreport script ( @?/rdbms/admin/spreport.sql) قم بتحميل ملف alert_log ايظاً تقديم بلاغ
بتاريخ: 20 أغسطس 200619 سنة كاتب الموضوع comment_76908 بصراحة وصلت الى ما اريد مع جملة اخي mohammedelsheikh لانها اهي ماكنت ابحث عنه بالضبظ لان الفكرة يمكن ان تجربها بالآتي اذا انت تعمل على الفورم قم بحذف سجل من اي جدول بدون ان تعمل له commit فقط مجرد delete_record وقمت باستخدام جملة اخي mohammedelsheikh ستجد ان تم حفظ معلومات عنك وفي اي جدول انت واي شخص آخر ليمكن ان يقوم باي تعديل على الجدول اذا انت لم تقم بعمل تثبيت وانها طلبك اما بالتثبيت او عمل تراجع لذلك ولو عمل ذلك جميع لعاملين على برنامج معين في اكثر من جهاز لتوقف النظام بأسره..من الآخر شكرا للجميع وبالاخص جملة اخي mohammedelsheikh تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.