Bất kỳ mối quan hệ giữa Tên dịch vụ máy chủ SQL và Tên trường hợp?


7

Tên đối tượng của SQL Server của tôi là SQLEXPRESS và Tên dịch vụ SQL Server trông giống như MSSQL $ SQLEXPRESS . Có bất kỳ mối quan hệ giữa tên thể hiện và tên dịch vụ? Tôi đang cố kiểm tra Trạng thái dịch vụ máy chủ SQL theo tên và tôi tự hỏi tên dịch vụ máy chủ SQL có thể khác trên các máy tính khác không?

Câu trả lời:


13

Có, tên dịch vụ luôn MSSQL$<Instance Name>dành cho một thể hiện được đặt tên và MSSQLSERVERcho một thể hiện mặc định. Tôi không tin hoặc có thể bị thay đổi hoặc ghi đè, tôi cũng không thể nghĩ ra bất kỳ lý do nào khiến bạn muốn.

Bạn có thể liệt kê các phiên bản đã cài đặt trên máy chủ thông qua sổ đăng ký, sử dụng Powershell chẳng hạn:

Get-ItemProperty 'HKLM:\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL'

+1 cho câu trả lời liên quan đến tên ví dụ. Điều đó đang được nói, tôi không thích sử dụng sổ đăng ký trực tiếp trong powershell trừ khi không có cách nào khác. Về phần đó, tôi thích cách tiếp cận được thực hiện bởi @ThomasStringer. Sử dụng WMI chắc chắn là một cách tiếp cận đáng tin cậy hơn.
Bắn súng McGavin

6

Mark đã chỉ cho bạn một cách để lấy thông tin này trực tiếp từ sổ đăng ký, nhưng một cách khác để làm điều này sẽ thông qua WMI, được PowerShell sử dụng:

Get-WmiObject -ComputerName "YourDestinationServer" -Namespace "root\microsoft\sqlserver\computermanagement11" -Class "SqlService" |
    Where-Object {$_.SQLServiceType -eq 1} |
    Select-Object ServiceName, DisplayName, 
        @{Name = "StateDesc"; Expression = {
            switch ($_.State) {
                1 { "Stopped" }
                2 { "Start Pending" }
                3 { "Stop Pending" }
                4 { "Running" }
                5 { "Continue Pending" }
                6 { "Pause Pending" }
                7 { "Paused" }
            }
        }}

Lệnh trên sẽ cung cấp cho bạn trạng thái của (các) dịch vụ công cụ Máy chủ SQL trên một máy cụ thể.


Sau đó tôi có thể giả sử rằng logic sau là chính xác sau đó cho các trường hợp được đặt tên và không tên là tên dịch vụ? svcname = instancename! = string.Empty? chuỗi.Format ("MSSQL $ {0}", tên bản quyền): "MSSQLSERVER";
Vas Gr
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.