Fragensteller
SQL Server 2016 SMO Frage bzgl offline DBs

Frage
-
Hallo zusammen,
ich knobele gerade an einem kleinen Problem und ggf. kann der eine oder andere von Euch folgenden Sachverhalt mal nachstellen / verifizieren:
Auf einer SQL Server Instanz 2014 habe ich eine offline Datenbank. Wenn ich jetzt folgenden Code via Powershell direkt auf dem Server absetze:
[void][reflection.aSSEMBLY]::LoadWithPartialName("Microsoft.SQLServer.Smo" )
$server = New-Object -TypeName Microsoft.SQLServer.Management.Smo.Server "MeinServer"
$server.Databases.Item("MeineOfflineDB")Dann erhalte ich auch problemlos und vor allem schnell ein Result zurück.
Jetzt mache ich das Ganze Spielchen auch auf einem SQL Server 2016 (Build 13.0.4446).
Effekt ist, dass ich kein Ergebnis zurück bekomme. Stattdessen hab ich dann im SQL Server Log die Meldung Login failed... Failed to open the explicitly specified database.
Warum prüfe ich das Ganze gerade überhaupt: mir ist das aufgefallen, da das 3rd Party Backup für den 2016er Server auf einmal etwas länger gedauert hat. Nach Rücksprache mit dem Hersteller sind wir nun bei dem Punkt der SMOs und dass das 2016er SMO wohl irgendwie anders arbeitet...
Gruß Dirk
May you never suffer the sentiment of spending a day without any purpose
Alle Antworten
-
Hallo zusammen,
ich hab gerade mal die Gegenprobe mit einem SQL Server 2016 aus dem Azure Marketplace gemacht. Hier habe ich das Verhalten nicht.
Ergo werde ich erst mal ein wenig weiter suchen.
Gruß
Dirk
May you never suffer the sentiment of spending a day without any purpose
-
Guten Morgen zusammen,
sodelle, ich bin jetzt schon mal einen Tick schlauer.
Auf der Azure VM von gestern hat es geklappt, da das ausgelieferte Template aus dem Azure Marketplace schon ein aktuelles SQL Server Management Studio mitliefert und somit auch die aktuellsten SMOs in der 140er Version.
Somit klappte auch das Powershellscript problemlos.
Ergo hab ich jetzt bei mir noch mal einen etwas verbogenen Test gemacht.
Auf einem Testserver hab ich einen SQL 2016 mit SSMS 17
Jetzt lade ich explizit das 2016er SMO:
add-type -Path 'D:\Program Files\Microsoft SQL Server\130\SDK\Assemblies\Microsoft.SqlServer.Smo.dll'
(ja, Pfad D: ist bei mir korrekt, da ich die Installation umgebogen und nichts auf C: liegen habe)
und dann wieder der Mini Check auf die DB:
$server = New-Object -TypeName Microsoft.SQLServer.Management.Smo.Server "MeinServer"
$server.Databases.Item("MeineOfflineDB")
Es kommt kein Ergebnis und im SQL Server Log kommen die bekannten Login failed Meldungen.
Jetzt in einer neuen Powershell Session das Ganze mit dem Pfad auf die aktuelle Assembly:
add-type -Path 'D:\Program Files\Microsoft SQL Server\140\SDK\Assemblies\Microsoft.SqlServer.Smo.dll'
Und es geht so wie erwartet.
Daher jetzt einfach mal so die Frage in dem Raum: Ist euch etwas darüber bekannt, dass das 2016er Assembly da irgendwelche Schwierigkeiten hat/buggy ist?
Gruß Dirk
May you never suffer the sentiment of spending a day without any purpose
-
Hallo nochmal,
ich pushe das Thema kurz hoch. Können ggf ein paar Leute bestätigen, dass das 2016er SMO tatsächlich ein Problem mit dem Erkennen von offline DBs hat und mein o.g. Beispiel einmal durchexerzieren?
Ich weiß nur nicht, ob man dies beim Connect Nachfolger dann einkippen sollte oder nicht.
Gruß und ruhige Restwoche
Dirk
May you never suffer the sentiment of spending a day without any purpose