Wie wirkt sich das Ändern der Windows-SID auf SQL Server aus?

11

Unsere Windows-Administratoren haben ein Problem mit der Art und Weise festgestellt, wie sie Windows-Server klonen. Anscheinend haben einige der geklonten Server auf Betriebssystemebene dieselbe SID. Ich habe gehört, Microsoft unterstützt keine Server mit doppelten SIDs. Daher müssen die SIDs auf diesen Servern geändert werden.

Ich bin gespannt, wie sich das auf SQL Server auswirkt. Irgendwelche Ideen? Wie wirkt es sich auf Cluster-Datenbankserver aus?

Ra Osolage
quelle
Es gibt viele Gründe, Fenster nicht zu klonen, aber die SID gehört nicht dazu
Jim B

Antworten:

9

Lassen Sie die SID in Ruhe. NewSID wurde in den Ruhestand versetzt, weil Mark Russinovich etwas gegraben hat und festgestellt hat, dass die gesamten "doppelten SIDs == schlecht!" Linie, die wir alle in den letzten zehn Jahren in unsere Schädel getrommelt haben, ist nur eine Menge Unsinn.

Siehe Marks neuesten Blogeintrag: The Machine SID Duplication Myth .

ThatGraemeGuy
quelle
6

Ich würde definitiv empfehlen, die SID nicht zu ändern, bis Sie gelesen haben: Ändern der Maschinen-SID mit NewSID bricht SQL Server (und wie man es behebt)

Anscheinend haben einige der geklonten Server auf Betriebssystemebene dieselbe SID.

Ich würde vermuten, dass ALLE Ihre geklonten Systeme dieselbe SID haben. GhostWalk kann SIDs für Sie neu generieren. Die Verwendung von sysprep für Ihr erstes Klon-Image kann Sie auch auf zukünftigen Systemen retten.

Wenn Sie SQL Server installiert haben, ÄNDERN SIE DIE SID NICHT. Es werden schlimme Dinge passieren.

Joseph Kern
quelle
+1 für SysPrep, AFAIK, die unterstützte Lösung für solche Szenarien.
Michael Stum
1
-1, weil nicht erwähnt wird, dass Sid-Änderungen nicht unterstützt werden - einschließlich Sysprep, wenn SQL installiert ist.
Jim B
Wenn der Server ausgeführt wurde und Dinge installiert haben, würde ich sagen, dass Sie ziemlich abgespritzt sind. Sie sollten die SID ändern, sobald Sie den Server geklont haben. Ich bin erstaunt, dass Sie zwei Server mit derselben SID mit der Domain verbinden können!
Nick Kavadias
2

Sie können sysinternals NewSID verwenden: http://technet.microsoft.com/en-us/sysinternals/bb897418.aspx

Ändern Sie den Computernamen in SQL:

use master
sp_dropserver '<old computer name>'
GO
sp_addserver '<new computer name>', local
GO

sp_helpserver -- will show you the new computer name

Starten Sie dann den SQL Server-Dienst neu.

Dave
quelle
Vielen Dank für den Hinweis auf die manuelle Umbenennung des SQL-Servers. Es wird oft in SQL-Klonen vergessen (ich klone meine mit sysprep)
Precipitous
2

Wenn Ihre Datenbank Remotetransaktionen mit Microsoft Distributed Transaction Coordinator ausführt, beachten Sie, dass geklonte Computer auch dieselbe MSDTC-ID haben, die nicht die SID ist und nicht von NewSID geändert wird.

Sie sehen dies in der Ereignisanzeige:

Der lokale MS-DTC hat festgestellt, dass der MS-DTC auf SERVER dieselbe eindeutige Identität wie der lokale MS-DTC hat. Dies bedeutet, dass die beiden MS DTC nicht miteinander kommunizieren können. Dieses Problem tritt normalerweise auf, wenn eines der Systeme mit nicht unterstützten Klonwerkzeugen geklont wurde. MS DTC erfordert, dass die Systeme mit unterstützten Klon-Tools wie SYSPREP geklont werden. Durch Ausführen von 'msdtc -uninstall' und anschließend von 'msdtc -install' an der Eingabeaufforderung wird das Problem behoben. Hinweis: Wenn Sie 'msdtc -uninstall' ausführen, verliert das System alle MS DTC-Konfigurationsinformationen.

Ich löse es so:

msdtc -uninstall

Warten Sie dann ein paar Minuten

msdtc -install
sc config msdtc start= auto
sc start msdtc
crb
quelle
1
Aus irgendeinem seltsamen Grund benötigt "sc config" ein Leerzeichen zwischen "start =" und "auto", dh "sc config msdtc start = auto".
ThatGraemeGuy
Danke - ich hatte diesen Platz dort, habe ihn aber bearbeitet, als ich dachte, es sei ein Tippfehler :)
crb
2

Verwenden Sie das jetzt von Microsoft betriebene Tool NewSID oder sysprep, das Windows neu installiert, ohne dass alle Dateien kopiert werden müssen.

Ich glaube nicht, dass Sie zwei Computer mit derselben SID derselben Domäne hinzufügen können. Daher würde ich sagen, dass Cluster-SQL-Server keine Chance haben, da sich Server in einer Domäne befinden müssen.

Nick Kavadias
quelle
1

Die einzige unterstützte Möglichkeit, ein System zu klonen, ist sysprep. Es gibt eine Reihe von Gründen, warum Sie einen SQL Server nicht klonen sollten:

-Es wird von Microsoft CSS nicht unterstützt.

-SQL funktioniert nicht richtig, bis es "umbenannt" wird.

-Wenn Sie über Berichtsservices verfügen, wird dieser ebenfalls abgespritzt.

-Die System- und Netzwerkdienstkonten erhalten neue SIDs und Kennwörter. Wenn Sie diese also als Dienstkonten verwendet haben, treten einige Probleme auf.

-SQL Server erstellt einige lokale Gruppen mit dem Format. SQLServer2005MSSQLUser $$ MSSQLSERVER. Es wird nicht unterstützt, diese umzubenennen

Um die Situation zu korrigieren, würde ich-

Brechen Sie den Cluster, erstellen Sie das System neu, installieren Sie SQL, erstellen Sie einen neuen Cluster, führen Sie eine Sicherung auf dem Server durch, der nicht neu erstellt wurde. Stoppen Sie ihn dann, stellen Sie die Sicherung im neuen Cluster wieder her, zeigen Sie die Anwendung auf den neuen Cluster und erstellen Sie den verbleibenden neu Server und fügen Sie es dem neuen Cluster hinzu

- Alternativ (wahrscheinlich einfacher) können Sie einen neuen Server mit einem neuen Namen erstellen (dies löst potenzielle Probleme mit SIDs jeglicher Art) und dann die Cluster-Installations-SQL-Verbindung zum Cluster trennen, ein Failover in dieses Feld durchführen und den Vorgang wiederholen Übrigens keine Ausfallzeiten und keine Notwendigkeit für Backup / Restore (obwohl ich vorschlagen würde, dass Sie dies trotzdem getan haben). Wir verwenden zznode1, zznode2 und einen Clusternamen. Auf diese Weise ist es einfach, zznode3 zu erstellen und mit dem Cluster zu verbinden, da der Knoten im Cluster nicht referenziert wird. Ich hoffe, das hilft.

Jim B.
quelle