आप SSMS के बिना SQL सर्वर संस्करण / संस्करण कैसे स्थापित करते हैं?


20

प्रबंधन स्टूडियो स्थापित किए बिना यह कैसे पता करें कि कौन सा संस्करण स्थापित है? मेरे पास एक सर्वर है जो किसी अन्य सॉफ़्टवेयर के लिए लाइसेंस प्रबंधक के रूप में कार्य करता है। एक उच्च रैम उपयोग चेतावनी की जांच करने पर, मैंने पाया कि sqlservr.exe प्रक्रिया लगभग 2 जीबी रैम ले रही है।

मैंने कार्यक्रम मेनू के माध्यम से देखा और पाया कि कॉन्फ़िगरेशन प्रबंधक स्थापित किया गया था, अन्यथा, यह बहुत नंगे हड्डियां हैं। मैंने EXE फ़ाइल के गुणों पर क्लिक किया और 10.50.1600.1 पाया, लेकिन वहाँ कोई जगह नहीं है जो मैंने पाया है कि यह एक्सप्रेस, देव, एसटीएन, ईएनटी, आदि है।

अगर मुझे अनुमान लगाना था, तो यह एक एक्सप्रेस संस्करण है, लेकिन मैं जानना चाहता था कि क्या कोई स्पष्ट कहानी है।

अपडेट: @ थोबा - फ़ाइल मुझे बताती है कि मुझे क्या पता है, संस्करण नहीं।

@valo - जब मैं उस कमांड को चलाता हूं तो मुझे निम्न त्रुटि मिलती है और मैंने सत्यापित किया कि नामित पाइप सक्षम था:

HResult 0x35, Level 16, State 1 नामित पाइप्स प्रदाता: SQL सर्वर से कनेक्शन नहीं खोल सका [53]। Sqlcmd: त्रुटि: Microsoft SQL सर्वर मूल क्लाइंट 10.0: SQL सर्वर से कनेक्शन स्थापित करते समय एक नेटवर्क-संबंधित या उदाहरण- विशिष्ट त्रुटि उत्पन्न हुई है। सर्वर> नहीं मिला या सुलभ नहीं है। जाँच करें कि क्या उदाहरण नाम सही है और यदि दूरस्थ कनेक्शन की अनुमति देने के लिए SQL सर्वर कॉन्फ़िगर किया गया है। अधिक जानकारी के लिए SQL Server पुस्तकें ऑनलाइन देखें। Sqlcmd: त्रुटि: Microsoft SQL सर्वर मूल क्लाइंट 10.0: लॉगआउट समय समाप्त हो गया।

@thomas - मैंने प्रश्न पूछने से पहले स्टॉक कीपिंग यूनिट का नाम देखा , लेकिन यह बहुत आसान लग रहा था, मुझे लगता है कि मेरा प्रारंभिक संदेह सही था।

जवाबों:


18

यह WMI के माध्यम से किया जा सकता है (मेरे नीचे उदाहरण में PowerShell के माध्यम से पहुँचा)। मैं जो कुछ कर रहा हूं वह SqlServiceAdvancedPropertyवर्ग के माध्यम से SQL सर्वर सेवा की एक संपत्ति ("SKUNAME") को देख रहा है । ध्यान दें, कुछ पर्यावरण-विशिष्ट चर हैं जिन्हें कोड के शीर्ष पर तदनुसार सेट करना होगा।

$ComputerName = "YourComputerName"
$ServiceName = 'YourEngineServiceName'
$PropertyName = "SKUNAME"

# retrieve the most current version of the ComputerManagement namespace
#
$ComputerManagementNamespace =
    (Get-WmiObject -ComputerName $ComputerName -Namespace "root\microsoft\sqlserver" -Class "__NAMESPACE" |
        Where-Object {$_.Name -like "ComputerManagement*"} |
        Select-Object Name |
        Sort-Object Name -Descending |
        Select-Object -First 1).Name
 
if ($ComputerManagementNamespace -eq $null) {
    Write-Error "ComputerManagement namespace not found"
}
else {
    $ComputerManagementNamespace = "root\microsoft\sqlserver\" + $ComputerManagementNamespace
} 

# get the property and its value
#
Get-WmiObject -ComputerName $ComputerName -Namespace $ComputerManagementNamespace -Class "SqlServiceAdvancedProperty" |
    Where-Object {
        $_.ServiceName -eq $ServiceName -and
        $_.PropertyName -eq $PropertyName
    } |
    Select-Object @{Name = "ComputerName"; Expression = { $ComputerName }},
        ServiceName,
        @{Name = "PropertyValue"; Expression = {
            if ($_.PropertyValueType -eq 0) {
                $_.PropertyStrValue
            }
            else {
                $_.PropertyNumValue
            }
        }}

इसी तरह, यह वही जानकारी सीधे SQL सर्वर कॉन्फ़िगरेशन प्रबंधक उपकरण में पाया जा सकता है। एक बार जब आप इसे खोलते हैं, तो अपनी SQL सर्वर सेवा पर राइट-क्लिक करें और गुण में जाएं । फिर एडवांस्ड टैब पर क्लिक करें और स्टॉक कीपिंग यूनिट नेम को देखें । आप पाएंगे कि आप किस संस्करण का उपयोग कर रहे हैं।


23

आप कमांड लाइन टूल आज़मा सकते हैं:

C:\>sqlcmd -S [SERVER] -d [DB_NAME] -E -Q "SELECT @@VERSION"

18

यदि SQL सर्वर सेवा चल रही है (जो आपके विवरण के आधार पर है, तो) SQL सर्वर त्रुटि लॉग की जाँच करें। ऐसा करने के लिए आपको SSMS स्थापित करने की आवश्यकता नहीं है क्योंकि यह केवल एक पाठ फ़ाइल है। यह कैसे स्थापित किया गया था इसके आधार पर फ़ाइल स्थान भिन्न हो सकता है, लेकिन पुस्तकें ऑनलाइन यहां डिफ़ॉल्ट स्थान दिखाती हैं

लॉग में पहली प्रविष्टि में संस्करण / संस्करण की जानकारी होनी चाहिए।

संपादित करें: उपरोक्त प्रश्न में टिप्पणी के बावजूद, यह सबसे निश्चित रूप से आपको संस्करण बताता है:

2014-06-08 00:05:00.050 spid158      Microsoft SQL Server 2012 (SP1) - 11.0.3381.0 (X64) 

Aug 23 2013 20:08:13 

Copyright (c) Microsoft Corporation

Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

12

शीघ्र जवाब

बस निम्नलिखित चलाएँ:

{InstanceHome}\MSSQL\Binn\sqlservr.exe -v [-s InstanceName]

NOTE ABOUT SQL Server Express LocalDB: LocalDB can only be determined by the
existence of the following folder:

C:\Program Files\Microsoft SQL Server\{SQL Server Version: 110, 120, etc}\LocalDB\Binn

Running "sqlserver.exe -v" doesn't help as it reports as being "Developer Edition", and
searching the Registry it reports as being "Express Edition".

यह विधि हमेशा अन्य समाधानों के विपरीत काम करती है, जो तब काम नहीं करेंगे जब:

  • आप एक कार्यक्रम (उदाहरण के लिए, PowerShell) लिखना नहीं चाहते हैं?
  • क्लाइंट उपकरण स्थापित नहीं किया गया है (SQLCMD.EXE का उपयोग करने के लिए आवश्यक)?
  • कोई SQL सर्वर लॉग फ़ाइल नहीं है, या कोई लॉग फ़ाइल नहीं है जिसमें कोई प्रारंभ / पुनरारंभ ईवेंट हों?
  • SQL सर्वर नहीं चल रहा है (इसलिए SELECT @@VERSION;कोई विकल्प नहीं है)?

उदाहरण 1
यदि आपके पास केवल एक ही इंस्टेंस है, तो आपको -sस्विच का उपयोग करने की आवश्यकता नहीं है :

C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn>sqlservr.exe -v

यह दिखाता है:

2015-08-01 11:40:11.63 Server      Logging to event log is disabled. Startup option '-v' is supplied, either from the registry or the command prompt.
2015-08-01 11:40:11.63 Server      Microsoft SQL Server 2012 - 11.0.5343.0 (X64)
        May  4 2015 19:11:32
        Copyright (c) Microsoft Corporation
        Developer Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

2015-08-01 11:40:11.63 Server      (c) Microsoft Corporation.
2015-08-01 11:40:11.63 Server      All rights reserved.
2015-08-01 11:40:11.63 Server      Server process ID is 3824.
2015-08-01 11:40:11.63 Server      System Manufacturer: '{CompanyName}', System Model: '{ModelNumber}'.
2015-08-01 11:40:11.63 Server      Authentication mode is MIXED.
2015-08-01 11:40:11.63 Server      The service account is '{AccountName}'. This is an informational message; no user action is required.
2015-08-01 11:40:11.63 Server      SQL Server shutdown has been initiated

उदाहरण 2
यदि आपके पास मशीन पर कई इंस्टेंसेस स्थापित हैं, तो आपको यह -sनिर्दिष्ट करने के लिए भी स्विच का उपयोग करने की आवश्यकता है कि आप किस इंस्टेंस में रुचि रखते हैं, अन्यथा यह संस्करण जानकारी को इंटरमिट कर सकता है:

C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS2014\MSSQL\Binn>sqlservr.exe -v
       -s SQLEXPRESS2014

यह दिखाता है:

2015-08-01 12:01:13.13 Server      Logging to event log is disabled. Startup option '-v' is supplied, either from the registry or the command prompt.
2015-08-01 12:01:13.13 Server      Microsoft SQL Server 2014 - 12.0.4213.0 (X64)
        Jun  9 2015 12:06:16
        Copyright (c) Microsoft Corporation
        Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

2015-08-01 12:01:13.13 Server      UTC adjustment: -4:00
2015-08-01 12:01:13.13 Server      (c) Microsoft Corporation.
2015-08-01 12:01:13.13 Server      All rights reserved.
2015-08-01 12:01:13.13 Server      Server process ID is 1712.
2015-08-01 12:01:13.13 Server      System Manufacturer: '{CompanyName}', System Model: '{ModelNumber}'.
2015-08-01 12:01:13.13 Server      Authentication mode is WINDOWS-ONLY.
2015-08-01 12:01:13.13 Server      The service account is '{AccountName}'. This is an informational message; no user action is required.
2015-08-01 12:01:13.13 Server      SQL Server shutdown has been initiated

अतिरिक्त जानकारी

किसी प्रोग्राम की संस्करण जानकारी को निर्धारित करने का सबसे तेज़, सबसे आसान और सबसे विश्वसनीय तरीका बस उस प्रोग्राम से जानकारी का अनुरोध करना है। अधिकांश कार्यक्रमों ( * .COM और * .EXE ) में एक कमांड-लाइन स्विच / फ्लैग / पैरामीटर / विकल्प / बहरी-मा-बॉब है जो मदद और / या संस्करण जानकारी प्रदर्शित करेगा।

कार्यक्रम के आधार पर, कमांड-लाइन स्विच निम्नलिखित में से एक के साथ उपसर्ग किया जाएगा:

  • [कुछ भी नहीं / नाडा]
  • -
  • -
  • /

और, फिर से कार्यक्रम के आधार पर, कमांड-लाइन स्विच निम्न में से एक होगा:

  • सबसे आम:
    • v
    • संस्करण
  • कभी-कभी सामान्य सहायता जानकारी में शामिल होते हैं:
    • ?
    • मदद

{SQL सर्वर उदाहरण ऊपर दिखाए गए}

दूसरी ओर, कमांड-लाइन उपयोगिता SQLCMD.EXE, -vचर स्क्रिप्ट को SQL स्क्रिप्ट में पारित करने के लिए स्विच का उपयोग करता है , इसलिए यह केवल सामान्य जानकारी डिस्प्ले में संस्करण जानकारी प्रदर्शित करता है:

C:\>sqlcmd /?
Microsoft (R) SQL Server Command Line Tool
Version 11.0.2100.60 NT x64
Copyright (c) 2012 Microsoft. All rights reserved.

usage: Sqlcmd            [-U login id]          [-P password]
  [-S server]            [-H hostname]          [-E trusted connection]
  ...
  [-v var = "value"...]  ...
  ...
  [-? show syntax summary]

नोटपैड, हालांकि, केवल कमांड-लाइन स्विच का एक बहुत सीमित सेट है , और उनमें से कोई भी संस्करण जानकारी प्रदर्शित नहीं करता है।


वैकल्पिक, नहीं-उपद्रव के तरीके:

  • रजिस्ट्री की जाँच करें:

    कुंजी: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL सर्वर \ {VersionNumber} \ Tools \ सेटअप
    नाम: संस्करण :

    • यदि आप संस्करण संख्या (उदाहरण के लिए SQL Server 2012 = 110, SQL सर्वर 2014 = 120, आदि) जानते हैं, तो आप इसके लिए विशेष रूप से कमांड प्रॉम्प्ट पर निम्नलिखित को चलाकर संस्करण को ले सकते हैं:

      REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\{VersionNumber}\Tools\Setup" /v /e /f Edition

      निम्नलिखित के समान एक प्रविष्टि लौटाता है:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup
          Edition    REG_SZ    Developer Edition
    • यदि आप जो कुछ भी स्थापित करने के लिए संस्करण देखना चाहते हैं, तो कमांड प्रॉम्प्ट पर निम्नलिखित को चलाएँ:

      REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server" /s /v /e /f Edition

      ऊपर और नीचे दिखाए गए के समान एक या अधिक प्रविष्टियाँ लौटाता है:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\Setup
          Edition    REG_SZ    Express Edition
  • स्थापना लॉग की जाँच करें:

    C: \ Program Files \ Microsoft SQL Server \ {SQL Server संस्करण: 110, 120, आदि} \ Setup बूटस्ट्रैप \ Log \ {date_time} \ Detail.txt

    "IsExpressSku" स्ट्रिंग के लिए:

    (०३) २०१४-०९ -१५ १६:५३:४४ वर्ग: - प्रभावी जासूस: इस्सप्रसेस्कु = सच

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