Zero Rows trở lại khi truy vấn DMV sys.dm_os_performance_counters


9

Tôi có một người dùng SQL Server 2014 Standard Edition (RTM)với SYSADMINvai trò với Quyền truy cập trạng thái máy chủ nhưng khi tôi thực thi DMV sys.dm_os_performance_countersthì nó không trả về bản ghi nào.

Bất cứ ý tưởng những gì là sai với quyền?

nhập mô tả hình ảnh ở đây

Đầu ra của @@ Phiên bản:

Microsoft SQL Server 2014 - 12.0.2000.8 (X64) 20 tháng 2 năm 2014 20:04:26 Bản quyền (c) Microsoft Corporation Standard Edition (64-bit) trên Windows NT 6.3 (Build 9600 :) (Hypervisor)


Hoàn toàn có thể trong quá trình cài đặt, các quầy đăng ký không được cài đặt. Nếu người dùng có sysadminquyền thì anh ta không yêu cầu view server statequyền chạy DMV, nó được bao gồm trong vai trò sysadmin. Trong ánh sáng ở trên nếu không có hàng nào được trả về, điều này có nghĩa là bộ đếm perfmon không được cài đặt.
Shanky

@Shanky Không phải lúc nào, có thêm 2 lý do có thể. Cá nhân tôi đã có các lý do đăng ký (trong một môi trường bảo mật cứng, trong đó rõ ràng đăng ký thay đổi trong quá trình cài đặt không được thực hiện đúng cách)
Trả lời

Câu trả lời:


4

Nếu bạn chắc chắn rằng người dùng trong câu hỏi có View Server State(và có vẻ như trong ảnh chụp màn hình của bạn, anh ta sẽ làm như vậy).

Sau đó, có một số lý do trước đây được đưa vào một blog msDN. Khác nhau từ:

  1. Các đối tượng hiệu suất và bộ đếm thiết lập trong quá trình cài đặt Máy chủ SQL không thành công.
  2. Một hỗn hợp của nền tảng 64 và 32 bit.
  3. Quyền đăng ký đã bị sai lệch

Để giải quyết vấn đề này, chúng tôi có thể sử dụng các bước tương tự được nêu trong hướng dẫn cài đặt lại bộ đếm hiệu suất trong một bài trao đổi ngăn xếp khác nhau:

Sử dụng dấu nhắc lệnh quản trị viên nâng cao thực hiện các bước sau.

  1. Thay đổi đường dẫn đến BINNthư mục của phiên bản SQL Server mà bạn muốn sửa.
    (Ví dụ C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\Binn:)
  2. Thực thi unlodctr <<REGISTERED SERVER NAME>>
    Ví dụ: unlodctr MSSQL$SQL2008hoặc SQLAgent$SQL2008...
  3. Thực thi lodctr /T:<<perf-sql* matching the counters you desire to load>>
    Ví dụ: perf-MSSQL$SQL2008sqlctr.inihoặc perf-SQLAgent$SQL2008sqlagtctr.inicho SQLAgent. Điều /Tquan trọng là tải nhà cung cấp bộ đếm hiệu suất SQL Server làm nhà cung cấp đáng tin cậy .
  4. Chu kỳ dịch vụ đăng ký từ xa:
    net stop "Remote Registry"sau đónet start "Remote Registry"
  5. Buộc đồng bộ hóa WMI bằng cách sử dụng winmgmt /resyncperfctr "<<PID>>"
    PID là id quy trình của WinPriv.exe(bạn có thể lấy thông tin này từ Trình quản lý tác vụ)

Những điều sau đây cũng có thể được yêu cầu:

  • Đảm bảo rằng các quyền bảo mật chính xác đã được cấp cho HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009
    khoá đăng ký:

    1. Cấp quyền kiểm soát hoàn toàn cho tài khoản Chủ sở hữu người tạo.
    2. Cấp quyền kiểm soát hoàn toàn cho tài khoản Quản trị viên.
    3. Cấp quyền Đọc cho Quản trị viên SQL trên hộp / Nút đó.
    4. Cấp quyền kiểm soát hoàn toàn cho tài khoản hệ thống

Phương pháp này dành cho SQL Server 2008 có giống với năm 2014 không?
AA.SC

@ AA.SC Có, phương pháp đã không thay đổi AFAIK.
Tái lập

@@ Khách hàng của Reaces đã cập nhật hệ thống RTM của mình lên SP1, điều này đã giải quyết được vấn đề.
AA.SC
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.