الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

لو عندي Lock بيحصل كيف اتتبعه

Featured Replies

بتاريخ:

السلام عليكم
إخواني
أنا أعمل كاديفيلوبير واحيانا بيحصل عندي lock وأحيانا اخرى بيكون عندي ريبورتات بتاخد وقت كبير جدا

كيف اعمل trace واسمع هذا المصطلح كثيرا
وكيف اتتبع الlock
شكرا جزيلا

بتاريخ:

اخى العزيز
اما بالنسبه ل Trace فالموضوع كبير ويطول شرحه ..حاول تحدد عايز تعمل trace لايه ...وممكن تاخد معلومات عن الموضوع من هنــــــــــــــا
بخصوص موضوع ال Lock ...هنـــــــــــــــــا
تحياتى

بتاريخ:

أخي الفاضل

بداية ما كان لي أن أرد بعد رد المهندس الرائع أحمد حمدي لكونه أستاذنا جميعا بالفعل وبعد تلفي رسالتك دعني ادردش معك

كما اسلف الموضوع المرفق lock في أبسط مفاهيمه وأنواعه أن في 2 sessions بيحاولوا بعملوا عملية علي جدول واحد او تعديل في بيان واحد طيب اوراكل حتصدق مين لو انت بتقولوا update ahmed's salery set it = 1000 وزميل لك بيقول update وخليه ب 2000
وانت ما عملتش commit قبل ما هو يعمل update بتعته

الله؟
لما ييجي يحفظ حيصدق مين فقالت اوراكل والله ما صدقه حد خاعمل قفل عليهم الاتنين لحد ما واخد يغير رايه وينسحب أو مدير قاعدة البيانات ينهي العمليه ويرجع واحد فيهم بس هو اللي يشتغل

دا توضيح بسيط جدا لتقارب الموضوع

تعالي نعمل مثال سوا

انا مبرمج 1 فتحت
وكتبت
update tset set NAME ='ali';
وانت من جهازك علي نفس الجدول رحت تعمل نفس الكلام

update tset set NAME ='tamer';
تمام؟

لا مش تمام

مجرد ما تكتب الامر ال session الخاصة بك حتقف ومن يأتي صويت الموظفين الحق النظام hang

علشان الموضوع يحل
الاول لو عمل commit;
فورا الثاني مشكلته اتحلت واشتغل زي الفل لانه ما عاد فيه lock

لا
خلينا تاني نرجع للحاله الاولي يعني فيه lock نعمل ايه

ممكن تستخدم ال script التاليه حيطلع لك الاتنين اللي خابطين بعض

script that shows locks 
select session_id "sid",SERIAL#  "Serial",
substr(object_name,1,20) "Object",
 substr(os_user_name,1,10) "Terminal",
 substr(oracle_username,1,10) "Locker",
 nvl(lockwait,'active') "Wait",
 decode(locked_mode,
   2, 'row share',
   3, 'row exclusive',
   4, 'share',
   5, 'share row exclusive',
   6, 'exclusive',  'unknown') "Lockmode",
 OBJECT_TYPE "Type"
FROM
 SYS.V_$LOCKED_OBJECT A,
 SYS.ALL_OBJECTS B,
 SYS.V_$SESSION c
WHERE
 A.OBJECT_ID = B.OBJECT_ID AND
 C.SID = A.SESSION_ID
ORDER BY 1 ASC, 5 Desc
/




النتيجة

sid Serial Object Terminal Locker Wait Lockmode
--------- --------- -------------------- ---------- ---------- -------- -------------------
Type
-------------------
141 57006 TSET Administra TEST active row exclusive
TABLE

157 6052 TSET Administra TEST active row exclusive
TABLE

لاحظ الاول له sid ورقمه 141 وله serial# وهو 57006

انت كمدير قاعدة بيانات حابب تنهي اتصالهم لانه ممكن يعمل اضافة بيان فاتورة ويروح وزميله عاوز يعدل علي الفاتوره دي مش حيعرف الا لما ييجي الاول الصباح أو انت كمدير قاعدة بيانات تنهي اتصال اللي ساب الدنيا واقفه من غير ما يحفظ وروح

ALTER SYSTEM KILL SESSION 'sid,serial#';



زي

SQL> ALTER SYSTEM KILL SESSION '157,6052';



بالتالي sessions can be killed locking
أرجوا ان اكون قد أجبت علي تساؤلك في رسالتك الخاصة لي

والله الموفق

بتاريخ:
  • كاتب الموضوع

أخي الكريم احمد حمدي
معلشي الرابط الاول لايعمل وجزاك الله كل خير
--------------
استاذنا أحمد عبدالمجيد بارك الله بك

وماذا عن ال trace

بتاريخ:

السلام عليكم ورحمة الله وبركاته

في البدايه أحب أشكر مشرفينا الكرام على ردودهم

وأحب أضيف أنا استخدم هذه الطريقه إن شاء الله إنها تفيدك

كيف أعرف إنه عندي deadlock من خلال الإستعلام اللي في الأسفل إذا فيه deadlock راح يرجع بيانات


select * from v$LOCK where request>0 or block>0


REQUEST:Lock mode in which the process requests the lock:


0 - none


1 - null (NULL)


2 - row-S (SS)


3 - row-X (SX)


4 - share (S)


5 - S/Row-X (SSX)


6 - exclusive (X)


BLOCK:The lock is blocking another lock
----------------------------------------------

طيب كيف اتبع deadlock لقيت مثال إن شاء الله يفيدك على الرابط التالي

http://www.oracle-base.com/articles/misc/Deadlocks.php
  • بعد 2 أسابيع...
بتاريخ:

بل الشكر لك وعلي مجهودك الرائع ... نتمني أن نجدك دوما

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.