Wir sind dabei, unseren SQL Server zu ersetzen, und haben entschieden, dass das Umbenennen des Servers selbst viel einfacher sein wird, als alles andere so zu ändern, dass es auf einen neuen Namen verweist. Wir haben Anweisungen zum Ändern des SQL Server-Instanznamens gefunden, um ihn an den Computernamen anzupassen, der folgendermaßen aussieht:
sp_dropserver 'OLDSERVER'
sp_addserver 'NEWSERVER', local
Obwohl SQL Enterprise Manager diese zusammen nicht zu mögen scheint. Ich musste es wie folgt ändern, damit es zusammenarbeitet:
sp_dropserver 'OLDSERVER'; GO
sp_addserver 'NEWSERVER', 'local'; GO
Was nicht schlecht ist, aber ich würde es vorziehen, wenn die Dinge automatisierter wären. Da @@ Servername den Namen der Instanz zurückgibt, habe ich herausgefunden, wie die erste Zeile automatisiert werden kann:
sp_dropserver @@ServerName; GO
Ich habe auch erfahren, dass SERVERPROPERTY ('Servername') den Computernamen zurückgeben soll, also dachte ich, ich könnte das vielleicht verwenden, um den zweiten Teil zu automatisieren, aber das hat nicht funktioniert:
sp_addserver SERVERPROPERTY('ServerName'), 'local'; GO
Ich habe versucht, eine Variable festzulegen, was ich sowieso tun muss, um die SQL Agent-Jobs zu aktualisieren, aber das hat auch nicht funktioniert:
DECLARE @srv sysname;
SET @srv = CAST(SERVERPROPERTY('ServerName') AS sysname);
sp_addserver @srv, 'local'; GO
Falsche Syntax in der Nähe von 'sp_addserver'.
Ich würde sehr gerne nicht den neuen Servernamen in das Skript fest codieren müssen, um dies einfacher wiederverwendbar zu machen. Hat jemand irgendwelche Ideen?
quelle
Antworten:
Hier ist ein Skript, mit dem Sie tun können, was Sie wollen:
Credits: http://www.myitforum.com/articles/5/view.asp?id=4983
quelle
Mit Hilfe von Magma und Sankar Reddy ist hier das fertige Drehbuch:
Der Artikel, den Magma gefunden hat, hatte einen kleinen Fehler: Es wurde versucht, den neuen Namen zu löschen und den alten Namen hinzuzufügen, anstatt den alten Namen zu löschen und den neuen Namen hinzuzufügen. Ich habe auch eine Aktualisierungsabfrage hinzugefügt, um die SQL Agent-Jobs zu korrigieren. Beachten Sie, dass dies nur in einer Umgebung mit mehreren Servern ordnungsgemäß für den Master-Server funktioniert. Meine Umgebung ist eine Einzelserverumgebung, daher funktioniert sie für meine Situation.
quelle
quelle