24.05.2002

Wenn man von SQL 7.0 migrieren will, muss dieser Offline sein. Bei den Replikationsstrukturen muss man beachten, dass als erstes der Verteiler(Drehscheide), dann der Verleger(Ursprung) und als letztes von den dreien der Abonnent (eine Art Empfaenger) upgegraded werden.
In 65er-Systemen findet man hauptsaechlich eine Replikationsstruktur, welche man als Transfer Replikation nennt. Die Prozeduren laufen ueber Tasks gesteuert. Es werden Uebergabe-Tabellen erzeugt und diese transferiert. Danach werden sie in das Empfangssystem implementiert.

Datenbankarchitektur:

Wir haben gelernt, dass es mehrere Dateien gibt, welche mit den Datenbanken zusammenhaengen. Die .mdf-Dateien sind einmalig pro Datenbank vorhanden, die .ndf-Dateien sind mehrfach oder gar nicht vorhanden und sind sekundaere Datendateien. Die .ldf-Dateien sind die Log-Dateien. Der Speicherort der Datendateien wird in der Master-DB und in der Primaerdatei der Benutzerdatenbank aufgezeichnet. Das Implementieren von Dateien in eine DB ist problemlos ueber den Enterprise-Manager (EM) moeglich.
Die Transaktionsprotokoll wird nicht wie die Daten in einer Datenbank in Seiten gespeichert, sondern in Datenzeilen. Diese besitzen eine LSN (Log Sequence Number), worin sich die Zeilen voneinander unterscheiden.
Als Transaktionen bezeichnet man Abarbeitungen an der Datenbankdatei, welche in einem logischen Schritt erfolgen.
Folgendes Beispiel:
Ich habe eine Select-Anweisung geschrieben, welche alle Kunden mit dem Ortsnamen Hamburg entfernt. Nach der Haelfte der Datensaetze bemerke ich, dass ich das gar nicht wollte und breche ab. Oder ein Blitzschlag setzt meine Sicherung und damit meinen Rechner ausser Gefecht. Beim Starten des SQL-Servers checkt dieser das Transaktionsprotokoll und macht ein komplettes Rollback des letzten logischen Schrittes aufgrund der Eintraege. Waehrend dieser Zeit ist die Datenbank im EM ausgegraut und es steht der Eintrag (wiederhergestellt) dahinter. Das Rueckgaengigmachen der Eintraege wird ebenfalls wieder in meine Transaktionsprotokolle geschrieben. Deswegen ist es so wichtig, dass die Controller, worauf die Systeme laufen, moeglichst keinen Cache beinhalten.
Eine Aenderung wie zum Beispiel INSERT wird an die DB gereicht, welche sie an die Tabelle weitergibt. Diese gibt die Anfrage an den Puffercache des Transaktionsprotokolls, welcher sie niederschreibt, weiter. Erst nach dem Schreiben kommt das OK. Das wird an die Tabelle weitergegeben. Erst daraufhin wird der Datensatz geaendert und das Aenderungs-OK an den Puffercache zurueckgegeben. Genaugenommen sind das Ganze ca. 35 Schritte, allerdings sind sie an dieser Stelle nicht notwendig.
Aus diesem Grund wird der Transaktionsmechanismus in MS-SQL 2000 auch als Write-Ahaed-Transaktion bezeichnet.
Wie beim Exchange-Server werden alle Transaktionsprotokolle nach dem Neustart eines Servers (Serverdienstes) auf nicht vollstaendig abgelaufene Transaktionen ueberprueft und diese zurueckgesetzt (Rollback). Dazu sind Pruefpunkte in den Protokollen enthalten.
Der Befehl zum Setzen eines Pruefpunktes ist CHECKPOINT. Gesetzt werden die Pruefpunkte allerdings auch bei ALTER DATABASE oder beim manuellen Beenden einer Instanz. Zusaetzlich werden noch automatische Pruefpunkte gesetzt, welche sich nach der Zeit, Groesse der Datenbank oder nach der Menge der Veraenderungen der Datenbank richten. Auf die letzten drei Aktionen haben wir keinen Zugriff. Weiterhin gibt es ein aktives und ein inaktives Transaktionsprotokoll.

Wiederherstellungsmodelle:

Es gibt zum Beispiel das vollstaendige Wiederherstellungsmodell, welches alle Transaktionen speichert, auch aufwendigere wie BULK INSERT oder SELECT INTO. Mit dieser Wiederherstellung kann ich auf jede beliebige Zeit oder beliebigen Fehlerpunkt zurueckgehen.
Das massenprotokollierte WHM protokolliert einige aufwendigere Aktionen nicht mit. Die DB ist mit diesem WHM nicht auf Zeitpunkte zurueckfahrbar. Der Vorteil sind kleinere TP's.
Mit dem einfachen WHM kann man seine Datenbank nur bis zur letzten DB-Sicherung zurueckspielen. Alle Aenderungen, die nach der Sicherung erfolgten, sind verloren. Hier offenbart sich der Vorteil von den vollstaendigen WHM's, da die TP's verbunden werden und wirklich zu JEDEM Zeitpunkt zurueckgefahren werden kann.
Das einfache WHM ist gut bei stehenden Verbindungen, allerdings immer nur fuer einen Fall. Zum zweiten ist das einfache WHM sinnvoll, um nur die TP's bis zum letzten Pruefpunkt an einen anderen Server zu schicken. Das waere dann eine Transaktionsreplikation und schuetzt den verarbeitenden SQL-Server vor Performanceinbruechen.

vollstaendig massenprotokolliert einfach
  • Master
  • haeufig sensible Massenkopien
  • Zwischenglied (Abonnent)
  • Userzugriff, einzelne Datensaetze werden bearbeitet
 

Die Systemtabellen sind verteilt in der Master- und den Benutzer-DB's. Der Systemkatalog (er befindet sich in der Master-DB) besteht aus den Sysdatabases, welche alle Datenbanken auflistet und aus den Sysdevices, welche alle Sicherungsinfo's beinhaltet. Die Syslockinfo enthaelt Sperrinfo's. In der Syslogins oder Sysxlogins stehen Benutzerinfo's. Der Datenbankkatalog befindet sich in der BenutzerDB