lukluk
Goto Top

MS SQL Server 2016 - Zugriff auf Instanz fehlgeschlagen

Hallo zusammen,

ich habe die Tage einen frischen Windows Server 2016 auf einem Hyper-V aufgesetzt.
Darauf habe ich dann einen Microsoft SQL Server 2016 inkl. Reporting Services installiert. Danach die Management Tools.
Grundsätzlich läuft das ganze in der Testumgebung. Datenbanken können erstellt und zugegriffen werden und im Prinzip ist alles gut.

Gerne würde ich jedoch die Datenbanken per PowerShell sichern, dazu gibt es ja entsprechende Module, die ich über "Install-Module -Name SqlServer" erfolgreich installieren konnte.

Gebe ich nun folgenden Befehl ein:
Backup-SqlDatabase -ServerInstance Servername\MSSQLSERVER -Database ReportServer -BackupAction Database -BackupFile "C:\DB-Backup\ReportServer.bak"  
bzw.
Backup-SqlDatabase -ServerInstance localhost\MSSQLSERVER -Database ReportServer -BackupAction Database -BackupFile "C:\DB-Backup\ReportServer.bak"  

Backup-SqlDatabase : Fehler beim Herstellen einer Verbindung mit dem Server "Servername\MSSQLSERVER".  
In Zeile:1 Zeichen:1
+ Backup-SqlDatabase -ServerInstance Servername\MSSQLSERVER -Database Re ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Backup-SqlDatabase], ConnectionFailureException
    + FullyQualifiedErrorId : Microsoft.SqlServer.Management.Common.ConnectionFailureException,Microsoft.SqlServer.Man
   agement.PowerShell.BackupSqlDatabaseCommand

Kann sich das jemand erklären?


Die Instanz heißt definitiv MSSQLSERVER (Standard-Wert)
Die PowerShell habe ich unter Admin-Rechten ausgeführt
Der Admin-Account ist bei der DB ReportServer als Owner eingetragen, jedoch scheint es mir, das sich gar nicht zur Database durchkomme.

Gibt es irgendwo eine Checkbox, die ich für den Zugriff per PowerShell setzen muss? Oder übersehe ich etwas grundsätzliches?

Übrigens: ich habe Zugriff auf einen Online-Server (ohne Domäne) mit 2014er SQL-DB drauf und dort klappt der oben zitierte Befehl. D.h. es wird nicht an der Syntax liegen. Konfiguriert habe ich den Server jedoch nicht deswegen wiess ich nicht, was dort für den Zugriff gedreht wurde.

Für hilfreiche Tipps wäre ich euch sehr dankbar.
Grüße, LL

Content-ID: 348214

Url: https://administrator.de/contentid/348214

Ausgedruckt am: 25.11.2024 um 16:11 Uhr

Tektronix
Lösung Tektronix 05.09.2017 um 09:15:08 Uhr
Goto Top
Hallo,
ist im SQL Configurations Manager als Netzwerkprotokol NamedPipes aktiv?
LG
sabines
sabines 05.09.2017 um 09:16:06 Uhr
Goto Top
Moin,

kommst Du mit dem Account mit dem Du die PS ausführst über das Studio auf die DB?
Prüf bitte mal über die Konfigurationstools den genauen Namen der Servers und der Instanz und welche Protokolle aktiv sind.
Eventuell 1433 als Port mit angeben.

Gruss
lukluk
lukluk 05.09.2017 um 09:42:09 Uhr
Goto Top
Hallo Tektronix, Hallo sabines,
Danke für Eure Antworten.


NamedPipes war als Protokoll standardmäßig deaktiviert. Ich habe es nun aktiviert und erst den SQL-Dienst und dann den ganzen Server neu gestartet - ohne Erfolg. Das Fehlerbild verändert sich nicht.
In der Konfiguration des Protokolls steht als Pipe Name "\\.\pipe\sql\query" drin.
Keine Abhilfe schaffen folgende Einträge
\\.\pipe\MSSQLSERVER\sql\query
\\.\pipe\MSSQL$MSSQLSERVER\sql\query

--


ja mit dem Acc komme ich drauf. Über die Windows-Authentifizierung kann ich mich mit dem aktuellen Account problemlos über das Management Studio verbinden und als Admin alle Optionen verwalten. Der Acc ist auch als DB Owner eingetragen.

Der Name stimmt definitiv. "MSSQLSERVER" finde ich auch als Bezeichnung im SQL-Konfigurations-Manager.

Als Protokolle sind "Shared Memory", "Named Pipes" und "TCP/IP" aktiviert. Wobei die Named Pipes erst gerade von mir aktiviert wurden.
Wo soll ich 1433 als Port mit angeben?

--

Der Zugriff der PowerShell erfolgt direkt vom Server auf dem SQL installiert ist, also quasi von Localhost.

Grüße, LL
lukluk
lukluk 05.09.2017 um 09:48:44 Uhr
Goto Top
Ich glaube, ich habe eine Lösung - erklären kann ich sie mir jedoch nicht.

Beim Prüfen der "Verbindungseigenschaften" stand als Servername der richtige Name drin, der Eintrag "Instanzname" ist jedoch leer.
Deswegen habe ich den Backup-Befehl wie folgt angepasst:
PS SQLSERVER:\SQL\SQLServerName\DEFAULT> Backup-SqlDatabase -ServerInstance SQLServerName -Database ReportServer -BackupAction Database -BackupFile "C:\DB-Backup\ReportServer.bak"  

Und damit hat es funktioniert.

Woran es liegt? Kein Plan, evtl. kann es mir einer von euch sagen?
Evtl. benötigt er die Angabe der Instanz nicht, wenn man den Standardnamen wählt? Oder wenn es nur eine Instanz gibt die Läuft...?

Grüße, LL