2010-07-03 6 views
8

मैं एक लेनदेन शुरू करता हूं।क्या मैं इनो डीडी लेनदेन के दौरान लंबित प्रश्नों को पुनर्प्राप्त कर सकता हूं?

फिर मुझे इसे रोलबैक करने की आवश्यकता है।

क्या मैं किसी भी तरह से उन प्रश्नों की एक सूची प्राप्त कर सकता हूं जो इस तरह से "त्याग" हो जाते हैं?

(पुनश्च: पाठ्यक्रम की मैं उनके बारे में पहले प्रवेश कर सकते हैं, यह एक अधिक "प्राकृतिक" तरीके से किया जा सकता है अगर मैं सोच रहा था)

+0

मुझे लगता है कि प्राकृतिक तरीका उन्हें पहले लॉग इन करना है। यदि आपको नहीं पता कि लेनदेन क्या कर रहा है, तो आप कैसे जान सकते हैं कि आप इसे वापस रोल करना चाहते हैं? –

उत्तर

1

आप InnoDB का उपयोग कर रहे हैं, तो InnoDB monitor पर एक नज़र और stderr। मुझे लगता है कि सबसे अच्छा अभ्यास उन्हें एप्लिकेशन (सर्वर) में स्टोर करना है, क्योंकि यह मंच पर निर्भर नहीं होगा।

2

आप हाल ही में एक MySQL 5.1 पर हैं, तो यह काम करना चाहिए:

शो इंजन InnoDB स्थिति InnoDB इंजन के लिए सक्रिय लेनदेनों की सूची में शामिल हैं। हर एक लेनदेन आईडी और एक प्रक्रिया आईडी के साथ उपसर्ग है, और इस तरह कुछ हद तक दिखता है:

---TRANSACTION 0 290328284, ACTIVE 0 sec, process no 3195, OS thread id 
34831 rollback of SQL statement 
MySQL thread id 18272 
<query may be here> 

MySQL धागा आईडी अपने सत्र की CONNECTION_ID() के अनुरूप होगा, कि आप संपूर्ण PROCESSLIST या INFORMATION_SCHEMA से प्राप्त कर सकते हैं .processlist, ताकि आप यह निर्धारित कर सकें कि कौन सा लेनदेन आपका है। आपको पाठ को पार्स करना होगा, और यदि यह मौजूद है, तो क्वेरी को इसके बाहर पार्स करना होगा।

यदि यह पर्याप्त नहीं है, तो आप प्रत्येक रोलबैक कथन से पहले SET @PROGRESS = @PROGRESS + 1 जैसे कुछ कोशिश कर सकते हैं, और उसके बाद लेनदेन से पहले कितनी दूर तक यह पता लगाने के लिए अपनी क्वेरी के अंत में डुएल से @PROGRESS चुनें एक रोलबैक मारा।

+0

अनजाने में 'त्रुटि 1227 (42000): एक्सेस अस्वीकार कर दी गई; आपको इस ऑपरेशन के लिए सुपर विशेषाधिकार की आवश्यकता है :( –

+0

इसके अलावा, कोई प्रश्न नहीं है:/ –

+0

यदि आपकी क्वेरी तेज है, तो यह इस विधि के लिए काम करने के लिए बहुत तेज़ी से फिसल सकता है। आप मार्कस द्वारा सुझाए गए इनो डीडी मॉनीटर को आजमा सकते हैं, लेकिन यदि आपकी क्वेरी तेज़ी से है, तो आपको मॉनीटर अंतराल को बहुत छोटा होने की आवश्यकता हो सकती है! –

संबंधित मुद्दे