MS SQL 2005 Systemdatenbanken wiederherstellen
Hallo Zusammen,
ich habe ein Problem das ich nun schon seit Wochen verfolge aber noch keine wirkliche Lösung finde. Folgendes Scenario: Ein MS SQL 2005 Server soll über ein komplettes Backup auf einen anderen Server mit neuem Namen umziehen. Das einspielen der entsprechenden Systemdatenbanken "master, model, msdb" funktioniert problemlos. Danach sind auch alle User da und alle Tasks wie Sicherungen usw. (eine ganze menge) Bei SQL 2000 musste danach in der Datenbank "msdb" in der Tabell "sysjobs" in der Spalte "originatin_server" der Server Name für jeden Job noch angepasst werden, danach liefen alle Jobs prächtig und ohne Fehler. In SQL 2005 gibt es dieses Feld nicht mehr (zumindest nicht in der Form). Die Jobs bekommen den Namen von Irgendwo her aber anscheinend nicht aus der "msdb" somit kann ich die Jobs weder richtig ändern oder löschen. Auserdem werden die Job Aktionen am Quellserver durchgeführt und nicht am lokalen SQL. Das einzige was ich gefunden habe ist in den Aufträgen selbst wenn man den entsprechenden Aktionsschritt öffnet und im Register "Datenquell" und "Befehlszeile" nachsieht. Dort steht der Servername. Ist das die einzige Möglichkeit die Jobs zu ändern oder habe ich da was übersehen?
Falls mir da jemand einen Rat hat sage ich schon mal im voraus Danke
ich habe ein Problem das ich nun schon seit Wochen verfolge aber noch keine wirkliche Lösung finde. Folgendes Scenario: Ein MS SQL 2005 Server soll über ein komplettes Backup auf einen anderen Server mit neuem Namen umziehen. Das einspielen der entsprechenden Systemdatenbanken "master, model, msdb" funktioniert problemlos. Danach sind auch alle User da und alle Tasks wie Sicherungen usw. (eine ganze menge) Bei SQL 2000 musste danach in der Datenbank "msdb" in der Tabell "sysjobs" in der Spalte "originatin_server" der Server Name für jeden Job noch angepasst werden, danach liefen alle Jobs prächtig und ohne Fehler. In SQL 2005 gibt es dieses Feld nicht mehr (zumindest nicht in der Form). Die Jobs bekommen den Namen von Irgendwo her aber anscheinend nicht aus der "msdb" somit kann ich die Jobs weder richtig ändern oder löschen. Auserdem werden die Job Aktionen am Quellserver durchgeführt und nicht am lokalen SQL. Das einzige was ich gefunden habe ist in den Aufträgen selbst wenn man den entsprechenden Aktionsschritt öffnet und im Register "Datenquell" und "Befehlszeile" nachsieht. Dort steht der Servername. Ist das die einzige Möglichkeit die Jobs zu ändern oder habe ich da was übersehen?
Falls mir da jemand einen Rat hat sage ich schon mal im voraus Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 113183
Url: https://administrator.de/contentid/113183
Ausgedruckt am: 25.11.2024 um 18:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
gib doch mal ein paar Informationen zu Deinem Server damit man sich ein klares Bild machen kann. Den Weg den Du hier einschlägst, ist m.E. ungewöhnlich bzw. sogar nicht möglich.
Interessant wäre zu wissen um welche Version es sich handelt, welchen Modus Du verwendest (Windows oder Mixed) usw. Kannst auch gerne als PM senden.
gib doch mal ein paar Informationen zu Deinem Server damit man sich ein klares Bild machen kann. Den Weg den Du hier einschlägst, ist m.E. ungewöhnlich bzw. sogar nicht möglich.
Interessant wäre zu wissen um welche Version es sich handelt, welchen Modus Du verwendest (Windows oder Mixed) usw. Kannst auch gerne als PM senden.
Ich verstehe immernoch nicht, warum Du die msdb mit nimmst. Handelt es sich bei dem Zielserver um ein dedizierten Server (2k3 mit sql 2005 SP3) oder ein SBS, EBS etc. So wie ich das bis jetzt lese, würde ich (persönlich) alles neu aufsetzen, entsprechende Service Packs, Hotfixes etc. einspielen und dann erstmal ganz genau schauen was rüber muss. Aucht auch darauf dass die entsprechende Collation übereinstimmt.
Wichtig ist auch, dass ein solcher Move nicht zu normalen "Business Hours" durchgeführt wird, sofern es sich hierbei um "Business Critical Data" handelt.
Im ersten Schritt wären das die Datenbanken (nicht Systemdatenbanken) die per Backup rüberkommen.
Im zweiten Schritt kümmerst Du dich um die User und die Jobs. Diese sind relativ einfach raus zu scripten.
Falls auf deiner Kiste dann noch Reporting Services und Analysis Services laufen können die Schritt für Schritt umgezogen werden.
Achte in jedemfall darauf, dass die Applikationen ebenfalls auf den richtigen Server zeigen, und lasse es am besten von einem dritten testen.
Bei Fragen einfach melden...
Gruß
Wichtig ist auch, dass ein solcher Move nicht zu normalen "Business Hours" durchgeführt wird, sofern es sich hierbei um "Business Critical Data" handelt.
Im ersten Schritt wären das die Datenbanken (nicht Systemdatenbanken) die per Backup rüberkommen.
Im zweiten Schritt kümmerst Du dich um die User und die Jobs. Diese sind relativ einfach raus zu scripten.
Falls auf deiner Kiste dann noch Reporting Services und Analysis Services laufen können die Schritt für Schritt umgezogen werden.
Achte in jedemfall darauf, dass die Applikationen ebenfalls auf den richtigen Server zeigen, und lasse es am besten von einem dritten testen.
Bei Fragen einfach melden...
Gruß
Hallo virtuelleruser,
wenn Du das Problem schon ne Weile mitschleppst, dann ist es ja hoffentlich nicht schlimm, daß die Antwort so spät kommt.
In sysjobs gibt es zwar nicht mehr den "originating_server", dafür aber die "originating_server_id". Diese ID verweist auf einen Server in sys.servers.
ID 0 ist normalerweise der lokale Server, wenn Du Verbindungsserver anlegst, dann landen die auch da drin. Dann brauchst Du also nur noch die "originating_server_id" anpassen.
Den Weg habe ich nicht getestet, der würde aber dem von Dir geschilderten entsprechen.
Gruß, Mad Max
wenn Du das Problem schon ne Weile mitschleppst, dann ist es ja hoffentlich nicht schlimm, daß die Antwort so spät kommt.
In sysjobs gibt es zwar nicht mehr den "originating_server", dafür aber die "originating_server_id". Diese ID verweist auf einen Server in sys.servers.
ID 0 ist normalerweise der lokale Server, wenn Du Verbindungsserver anlegst, dann landen die auch da drin. Dann brauchst Du also nur noch die "originating_server_id" anpassen.
Den Weg habe ich nicht getestet, der würde aber dem von Dir geschilderten entsprechen.
Gruß, Mad Max