Tutorial: Systemportierung per Datenbank-Sicherung Version: 0.1 Autor: Anja Beuth Inhaltsverzeichnis 1 2 3 3.1 4 4.1 4.2 4.3 4.4 5 Voraussetzungen auf dem Zielsystem............................................................ Datenbank sichern.......................................................................................... Datenbanksicherung auf Zielsystem portieren................................................ Remote Desktop Verbindung.......................................................................... Datenbank auf Zielsystem wiederherstellen................................................... System Information korrigieren....................................................................... Benutzer auf neu angelegte Tabelle berechtigen............................................ Suchindex löschen.......................................................................................... Externe Accounts............................................................................................ Information Server neu starten....................................................................... 2 2 2 2 3 3 3 4 4 5 Voraussetzungen Der Entwickler benötigt für die Durchführung dieses Tutorials Administrationsrechte auf das SQL Server Management Studio des Quell- und Zielsystems. Beschreibung Wenn das Hosting-System für den späteren Website-Betrieb zu Beginn der Entwicklung noch nicht zur Verfügung steht, muss auf einem temporären, möglicherweise lokalen, System mit der Entwicklung begonnen werden. Später sollte der aktuelle Entwicklungsstand möglichst verlustfrei und unkompliziert auf das Zielsystem migriert werden. Da in onion.net fast alle Informationen Content sind und somit in der Datenbank liegen, geht die Portierung am einfachsten über eine Datenbank-Sicherung. Die nötigen Schritte für die Sicherung auf dem Quellsystem sowie die Wiederherstellung und Inbetriebnahme auf dem Zielsystem werden in diesem Tutorial beschrieben. Zeichenerklärung Text, der grün umrandet und mit dem Pfeil-Symbol gekennzeichnet ist, enthält konkrete Anweisungen, was als nächstes zu tun ist. Texte in solchen Kästchen enthalten Tipps und Tricks. Quellcode wird in solch blauen Boxen dargestellt. Tutorial: Systemportierung per Datenbank-Sicherung 1 1 Voraussetzungen auf dem Zielsystem 1 Voraussetzungen auf dem Zielsystem Bevor die Datenbank portiert wird, sollte im besten Fall auf dem Zielsystem bereits eine Standard onion.net Installation existieren und funktionieren. Dies gilt sowohl für den Editor als auch für eine Render Engine. Dies hat den Hintergrund, dass für das Funktionieren eines onion.net Systems mehr als nur eine korrekte Datenbankanbindung notwendig ist. Wenn vor der Portierung alles läuft, können zum Beispiel Konfigurationsfehler oder falsche Berechtigungen als Fehlerquellen ausgeschlossen werden. 2 Datenbank sichern Im ersten Schritt muss die zu portierende Datenbank gesichert werden. Verbinden Sie sich dazu zunächst auf den Datenbankserver. Dort starten Sie das SQL Server Management Studio. Im Kontextmenü der Datenbank finden Sie den Punkt "Tasks" und darunter die Option "Sichern". Die nachfolgende Abbildung verdeutlicht den Klickflow. Im anschließend erscheinenden Dialog können Sie in der Regel die Standardeinstellungen übernehmen. Sichern Sie die Datei auf der Festplatte. Hierfür müssen Sie durch Klick auf die Schaltfläche "Hinzufügen" einen Speicherort auswählen. Wichtig dabei ist, dass in dem erscheinenden Dialog auch der Name der Sicherungsdatei angegeben werden muss. Achten Sie darauf, die korrekte Dateiendung ".bak" anzugeben! 3 Datenbanksicherung auf Zielsystem portieren Je nachdem, wie gut das Zielsystem erreichbar ist, beziehungsweise wie die Anbindung funktioniert, stellt die Portierung kein unwesentliches Problem dar. Die Sicherungsdatei muss jedoch auf einem lokalen Speicherort des Zielsystems liegen, damit die Datei bei der Wiederherstellung ausgewählt werden kann. 3.1 Remote Desktop Verbindung Wenn eine RDP-Verbindung über den Microsoft Terminal Service Client (mstsc) hergestellt wird, kann in den Optionen der Verbindung eine lokale Platte eingebunden werden. Auf diese Weise kann dann die Sicherungsdatei auf einen lokalen Speicherort des Zielsystems kopiert werden. Tutorial: Systemportierung per Datenbank-Sicherung 2 4 Datenbank auf Zielsystem wiederherstellen 4 Datenbank auf Zielsystem wiederherstellen Starten Sie das SQL Server Management Studio auf dem Zielsystem und Verbinden Sie sich mit dem entsprechenden Datenbankmodul. Für den Fall, dass es bereits eine Datenbank mit demselben Namen gibt, sollten Sie entweder die vorhandene Datenbank sicherheitshalber löschen, bevor Sie die portierte einspielen. Oder Sie benennen die vorhandene um. In letzerem Fall passen Sie zunächst die Datenbank-Query in der web.config des Information Servers an und testen, ob Editor und Render Engine nach wie vor funktionieren. Im Kontextmenü des Punktes "Datenbanken" finden Sie den Eintrag "Datenbank wiederherstellen...". Tragen Sie in dem angezeigten Dialog den Namen der Datenbank ein. Als Quelle wählen Sie "Von Medium" aus und fügen die Sicherungsdatei hinzu. Diese erscheint dann in der Übersicht unten. Um Sie wiederherzustellen müssen Sie das Häkchen davor setzen. Damit die Datenbank auf dem Zielsystem funktioniert, sind dort noch einige Aufräumarbeiten zu erledigen. 4.1 System Information korrigieren Insbesondere wenn die Datenbank von einem Rechner auf einen anderen migriert wurde, muss die Tabelle, welche Systeminformationen zum Rechner enthält, aufgeräumt werden. Navigieren Sie dazu zur Tabelle "dbo.SystemInformation", öffnen Sie das Kontextmenü und wählen Sie den Eintrag "Oberste 200 Zeilen bearbeiten" aus. Löschen Sie die letzte Zeile, welche in der Spalte "slot" den Wert "system.current" enthält. Dies können Sie über einen Rechtsklick vor der Zeile erreichen. 4.2 Benutzer auf neu angelegte Tabelle berechtigen Der Datenbankbenutzer, mit dem sich der Informationserver zur Datenbank verbindet, wurde ebenfalls in die Datenbanksicherung mit eingeschlossen. Da es ja laut Voraussetzungen bereits im Datenbankmodul einen Benutzer gibt, mit dem die Datenbankverbindung erfolgreich funktioniert, sollte dieser auch für die importierte Datenbank genutzt werden. Tutorial: Systemportierung per Datenbank-Sicherung 3 4 Datenbank auf Zielsystem wiederherstellen Dazu navigieren Sie unterhalb der wiederhergestellten Datenbank in den Ordner "Sicherheit" > "Benutzer". Dort gibt es in der Regel einen Benutzer, der denselben Namen trägt wie die Datenbank. Löschen Sie diesen Benutzer und legen für die Datenbank einen neuen an. Dort tragen Sie den Anmeldenamen des vorhandenen Datenbankbenutzers ein. Wenn Sie den Anmeldenamen nicht kennen, können Sie diesen in der web.config des Information Server nachschauen. Dort ist der Benutzername in der Datenbank-Query enthalten. Als Standardschema tragen Sie dbo ein. Wichtig ist, dass er Benutzer die Datenbankrolle db_owner bekommt. 4.3 Suchindex löschen Der SQL Server erzeugt einen Suchindex für Datenbanken, damit beispielsweise die Volltextsuche in der Datenbank funktioniert und die Zugriffe schneller vonstatten gehen. Beim Importieren wurde der Index der Quelldatenbank mit übertragen. Dieser kann aber von der neuen SQL Server Instanz nicht verwendet werden. Wir löschen ihn daher, damit ein neuer erzeugt werden kann. Navigieren zum Ordner "Speicher" > "Volltextkataloge". Darunter sollte sich ein Objekt "ObjectFullText" befinden. Löschen Sie das Objekt. 4.4 Externe Accounts Bei der Datenbanksicherung wurden auch sämtliche Benutzeraccounts portiert, die es in dem onion.net System gab. Dabei kann es zu Problemen mit externen Benutzeraccounts kommen, beispielsweise wenn Sie für den Login ein Active Directory anbinden. Normalerweise werden die Passwörter der Zugänge verschlüsselt in der Datenbank-Tabelle "dbo.Users" abgelegt. Wenn für den Login jedoch eine externe Quelle angebunden ist, findet die Authorisierung auch in dieser externen Zugangsverwaltung statt. Tutorial: Systemportierung per Datenbank-Sicherung 4 5 Information Server neu starten Wenn nach der Portierung vom neuen System aus kein Zugriff mehr auf die exteren Zugangsverwaltung möglich ist, haben die betroffenen onion.net-Zugänge in der Datenbank den Wert "EXTERNAL" stehen. Für diese Zugänge muss manuell über den onion.net Editor mit Administratorberechtigung ein neues Passwort gesetzt werden. 5 Information Server neu starten Damit sowohl onion.net Render Engine(s) wie auch onion.net Editor(en) ab sofort ihre Daten aus der aktualisierten Datenbank beziehen, muss der onion.net Information Server (Windows Dienst) neu gestartet werden. Tutorial: Systemportierung per Datenbank-Sicherung 5