SQL एजेंट नौकरी का विस्तृत आउटपुट प्राप्त करें


16

हमारे पास एक SQL सर्वर एजेंट काम है जो सर्वर पर डेटाबेस के सभी को फिर से जोड़ने के लिए एक रखरखाव योजना चलाता है। हाल ही में यह विफल हो गया है लेकिन नौकरी का इतिहास समस्या का निदान करने के लिए पर्याप्त जानकारी प्रदान नहीं कर रहा है।

नौकरी के इतिहास में यह कहा गया है कि नौकरी विफल रही। उपयोगकर्ता foo \ bar द्वारा कार्य को लागू किया गया था। चलाने के लिए अंतिम चरण चरण 1 (पुनर्निर्माण सूचकांक) था।

विवरण विंडो में निम्न फॉर्म में कई संदेश हैं:

Executing query "ALTER INDEX [something] ON [a...".: 0% complete  End Progress  Progress: 2015-03-15 22:51:23.67     Source: Rebuild Index Task

SQL स्टेटमेंट जो चल रहा है, वह छोटा है, और मैं मानूंगा कि स्टेटमेंट का आउटपुट भी छोटा है, जिससे मुझे यह पहचानने में सक्षम किया जा रहा है कि कौन सा स्टेटमेंट फेल हुआ है और क्यों। क्या इन संदेशों का पूरा पाठ निकालने का कोई तरीका है?


1
मुझे लगता है कि @kin आपके प्रारंभिक प्रश्न का उत्तर देने का अच्छा काम करता है, लेकिन मेरी राय में यह एक डिबगिंग मुद्दे से अधिक है। यदि आपको पता है कि यह सूचकांक विफल हो रहा है, तो मैं यह पहचानने की कोशिश करूंगा कि यह विशिष्ट सूचकांक क्यों विफल हो रहा है। क्या आप उपयोग किए गए sql कोड को देख सकते हैं? यह एक संग्रहित proc में है? इसे कम करने के लिए आप कई काम कर सकते हैं। केवल उस इंडेक्स के साथ एक नौकरी बनाएं। जब काम चल रहा हो तो sql ट्रेस चलाएँ। उपयोग किए गए sql को कैप्चर करें फिर समस्या को पुन: उत्पन्न करने का प्रयास करें।
सर स्वियर्स-ए-लॉट

जवाबों:


18

क्या इन संदेशों का पूरा पाठ निकालने का कोई तरीका है?

आप इसे 2 तरीकों से प्राप्त कर सकते हैं - नौकरी के चरण में जाएं और उन्नत टैब चुनें:

ए। फ़ाइल में आउटपुट (<== मेरी पसंदीदा विधि)

यहाँ छवि विवरण दर्ज करें

ख। "लॉग इन टेबल" और "इतिहास में चरण आउटपुट शामिल करें" (<== आपको msdb..sysjobhistoryलंबे समय में ट्रिम करने की आवश्यकता है क्योंकि संदेशों को nvarchar(max)इसके बजाय संग्रहीत किया जाता है nvarchar(1024))

यहाँ छवि विवरण दर्ज करें

अतिरिक्त लॉग की गई जानकारी को देखने के लिए आपको इस संग्रहीत कार्यविधि sp_help_jobsteplog का उपयोग करना होगा या आप msdb.dbo.sysjobstepslogsसीधे तालिका क्वेरी कर सकते हैं।

अधिक जानकारी यहाँ


चीयर्स, मैं इसे जाने दूँगा। बस आपको बता दें, उस तालिका का सही नाम msdb.dbo.sysjobstepslogs ('लॉग' के बजाय 'लॉग') है। मैंने उत्तर को संपादित करने की कोशिश की लेकिन एकल-वर्ण संपादन की अनुमति नहीं है।
टोरीन

1
@ टोरीन एन.पी. मैंने अपना उत्तर संपादित कर दिया है। यदि आपको लगता है कि मैंने आपके प्रश्न का उत्तर दे दिया है, तो कृपया उत्तर के रूप में वोट / मार्क करें।
परिजन शाह

1
मैंने काम फिर से चलाया और इसने केवल एक त्रुटि उत्पन्न की, जिसे उसने तालिका में वर्णित किया। दुर्भाग्य से क्वेरी का पाठ अभी भी छोटा था - क्या अधिक जानकारी प्राप्त करने का कोई तरीका है?
टोरीन

मुझे शक है। क्या आप आउटपुट फाइल मेथड 1 के साथ कोशिश कर सकते हैं जैसा कि मेरे उत्तर में वर्णित है।
परिजन शाह

1
@ टोरीन मुझे एक ही समस्या थी - लॉगिंग अभी भी छंटनी की गई थी, यहां तक ​​कि आउटपुट के साथ एक तालिका (विधि) (ऊपर) और पढ़ने के लिए sysjobstepslogs। यह इस समस्या के अधिकांश ऑनलाइन चर्चाओं की सिफारिश थी। लेकिन विधि (ए), एक फ़ाइल के लिए आउटपुट, में यह समस्या नहीं थी : पाठ फाइलें मुझे सभी नौकरी चरण लॉगिंग दिखा रही हैं, अंत में बिना ट्रंकेशन के! (मेरे मामले में, मेरे काम के चरण DTEXECकमांड हैं, एसएसआईएस पैकेज चला रहे हैं।) केवल दोष: केवल अंतिम रन दिखाई देता है, जब तक कि फ़ाइल में संलग्न नहीं किया जाता है। अपील करने के बजाय, मैं पहले के रनों पर छंटनी के साथ रहना चाहता हूं।
डग_इज़न

2

आप पूर्ण पाठ प्राप्त कर सकते हैं:

  1. नौकरी पर जाओ
  2. दाएँ क्लिक करें select properties
  3. नौकरी के चरण पर जाएं
  4. सेलेक्ट करें stepऔर editबटन पर क्लिक करें
  5. का चयन करें advanced। यहां आप लॉग पाथ देख सकते हैं।

अब इसका सरल मार्ग अपनाएं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.