Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

MS SQL 2005 Systemdatenbanken wiederherstellen

Frage Entwicklung Datenbanken

Mitglied: virtuelleruser

virtuelleruser (Level 1) - Jetzt verbinden

03.04.2009, aktualisiert 14:20 Uhr, 6436 Aufrufe, 5 Kommentare

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
Mitglied: InShaDan
03.04.2009 um 15:09 Uhr
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.
Bitte warten ..
Mitglied: virtuelleruser
03.04.2009 um 15:20 Uhr
Wenn die "msdb" nicht gebraucht wird (wenn nur Backup DB und Transaktionslog drinn sind) ist dass die einfachste Möglichkeit den Server paralell unter einem neuen Namen aufzusetzen. Wenn die Datei Struktur die Gleiche ist dann kann mann die Userdatenbanken vorher trennen und rüberkopieren dann muss mann nach dem einspielen der Master DB nicht mal die user DBs wiederherstellen. Auch gibt es keine Verwaisten User die per sp wieder der DB zugewiesen werden müssen.
Die einfachen Jobs erstelle ich neu und habe somt in kürzester Zeit einen Identischen Server unter anderem Namen für Tests oder Fehler analysen usw.

Nur die "msdb" bereitet mir schwierigkeiten. Wie gesagt unter SQL 2000 wahr das einfach.


Anbei meine SQL Daten:
Windows SQL 2005 Standart/Enterprise SP3
Authentifizierung Mixed Mode
lokale SQL User Berechtigungen auf DB
AD Gruppen Berechtigungen auf DB
Bitte warten ..
Mitglied: InShaDan
03.04.2009 um 15:36 Uhr
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ß
Bitte warten ..
Mitglied: MadMax
08.04.2009 um 12:33 Uhr
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
Bitte warten ..
Mitglied: virtuelleruser
09.04.2009 um 12:37 Uhr
Danke erst mal für die Antwort. Dass mit der ID werde ich ausprobieren wenn ich wieder im Geschäft bin. Nochmal zu der Thematik mitnehmen der "msdb". Dies kommt in erster Linie aus dem Desaster Recovery. Dort wird der gesammte Server unter seinem alten Namen wiederhergestellt. Wenn ich nun in meinem Scenario den Server für einen Test benötige (wie es in diesem Fall ist) der, bis auf den Name, absolut Identisch ist (In der msdb sind 35 verschieden Jobs angelegt die zum Teil Daten sammeln zum Teil Daten und Tabellen automatisch auswerten) dann ist es doch in meinen Augen die einfachste Vorgehensweise es so zu machen. Vor allem wenn mann sich wie in meinem Fall nicht gern mit scripten herumschlagen will. In diesem Sinne wünsche ich allen ein frohes Osterfest.

Gruß
virtuelleruser
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Datenbanken
MS-SQL-Server + T-SQL+Batch (4)

Frage von kallewirsch zum Thema Datenbanken ...

Datenbanken
gelöst Täglicher Export einer View aus MS SQL 2008 in Excel oder CSV (9)

Frage von Arafat zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...