डीएमवी sysinos_os_performance_counters की क्वेरी पर शून्य पंक्तियाँ वापस आती हैं


9

मैं पर एक उपयोगकर्ता है SQL Server 2014 Standard Edition (RTM)साथ SYSADMINसर्वर देखें राज्य अनुमतियां साथ भूमिका लेकिन जब मैं DMV पर अमल sys.dm_os_performance_countersयह कोई रिकॉर्ड नहीं देता है।

किसी भी विचार क्या अनुमतियों के साथ गलत है?

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

@@ संस्करण का आउटपुट:

Microsoft SQL Server 2014 - 12.0.2000.8 (X64) 20 फरवरी 2014 20:04:26 कॉपीराइट (c) Microsoft NT मानक संस्करण (64-बिट) Windows NT 6.3 पर (बिल्ड 9600:) (हाइपरविजर)


यह काफी संभव है कि स्थापना के दौरान रजिस्ट्री काउंटर स्थापित नहीं हैं। यदि उपयोगकर्ता के पास sysadminअनुमति है, तो उसे view server stateDMV चलाने की अनुमति की आवश्यकता नहीं है, जो कि sysadmin भूमिका में शामिल है। ऊपर की रोशनी में यदि कोई पंक्तियाँ वापस नहीं आती हैं तो इसका मतलब है कि परफ़ॉर्मर काउंटर स्थापित नहीं हैं।
शांकी

@ शैंकी हमेशा नहीं, इसके 2 और संभावित कारण हैं। मेरे पास व्यक्तिगत रूप से रजिस्ट्री कारण हैं (एक कड़े सुरक्षा वातावरण में जहां जाहिरा तौर पर स्थापना के दौरान रजिस्ट्री में बदलाव ठीक से नहीं हुआ)
प्रतिक्रियाएं

जवाबों:


4

यदि आप सुनिश्चित हैं कि उपयोगकर्ता के पास सवाल है View Server State(और ऐसा लगता है कि आपके स्क्रीनशॉट में वह ऐसा करता है)।

फिर कई कारणों से पहले एक msdn ब्लॉग में डाल रहे हैं। से लेकर:

  1. SQL सर्वर स्थापना के दौरान प्रदर्शन ऑब्जेक्ट्स और काउंटर सेट-अप विफल हो गए।
  2. 64 और 32 बिट प्लेटफार्मों का मिश्रण।
  3. रजिस्ट्री अनुमतियों को तिरछा कर दिया गया है

इसे हल करने के लिए, हम एक अलग स्टैक-एक्सचेंज पोस्ट में प्रदर्शन काउंटर को फिर से स्थापित करने के लिए दिशानिर्देशों में उल्लिखित समान चरणों का उपयोग कर सकते हैं :

एक उन्नत व्यवस्थापक कमांड प्रॉम्प्ट का उपयोग करके निम्न चरणों का पालन करें।

  1. BINNजिस SQL ​​सर्वर आवृत्ति को आप सही करना चाहते हैं, उसकी निर्देशिका में पथ बदलें ।
    (उदाहरण: C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\Binn)
  2. unlodctr <<REGISTERED SERVER NAME>>
    उदाहरण के लिए निष्पादित करें : unlodctr MSSQL$SQL2008या SQLAgent$SQL2008...
  3. lodctr /T:<<perf-sql* matching the counters you desire to load>>
    उदाहरण के लिए निष्पादित करें : perf-MSSQL$SQL2008sqlctr.iniया perf-SQLAgent$SQL2008sqlagtctr.iniSQLAgent के लिए। /Tएक के रूप में एसक्यूएल सर्वर प्रदर्शन काउंटर प्रदाता लोड करने के लिए महत्वपूर्ण है पर भरोसा प्रदाता
  4. दूरस्थ रजिस्ट्री सेवा को साइकिल:
    net stop "Remote Registry"तबnet start "Remote Registry"
  5. winmgmt /resyncperfctr "<<PID>>"
    पीआईडी ​​की प्रक्रिया आईडी है WinPriv.exe( जहां आप टास्क मैनेजर से यह प्राप्त कर सकते हैं) का उपयोग करके एक WMI सिंक्रनाइज़ेशन को बाध्य करें

निम्नलिखित भी आवश्यक हो सकता है:

  • सुनिश्चित करें कि HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009
    रजिस्ट्री कुंजी को सही सुरक्षा अनुमतियाँ दी गई हैं :

    1. निर्माता मालिक के खाते पर पूर्ण नियंत्रण की अनुमति दें।
    2. व्यवस्थापकों के खाते में पूर्ण नियंत्रण की अनुमति दें।
    3. उस बॉक्स / नोड पर SQL प्रशासक को अनुमति पढ़ें।
    4. सिस्टम खाते को पूर्ण नियंत्रण अनुमतियाँ प्रदान करें

यह विधि SQL Server 2008 के लिए है 2014 के लिए भी यही है?
14

@ AA.SC हां, विधि ने AFAIK को नहीं बदला है।
14

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