Verteilte Abfragen und Transaktionen
SQL- Server ermöglicht, Datenquellen, die über mehrere Instanzen verteilt sind, aus einer Query abzufragen. Dazu sind für alle Instanzen, die die Daten bereitstellen, als sog. Verbindungsserver in der Instanz einzurichten, von der aus die Abfrage ausgeführt wird (Enterprisemanager/Instanz/Sicherheit/Verbindungsserver).
In den Abfragen, die auf die verteilten Datenquellen zugreifen, sind diese wie folgt zu spezifizieren:
<SERVERNAME>[\<INSTANZNAME>].<datenbank>.<user>.<objekt>
Beispielsweise kann die Tabelle KONTEN der Datenbank BANK auf dem Server FILIALE1 wie folgt von einem entfernten Server abgefragt werden:
select * from FILIALE1.BANK.dbo.KONTEN go
Verteilte Transaktionen
Implementiert werden die verteilten Transaktionen vom Distributet Tansaction Coordinator (MS DTC) . Dieser ist Bestandteil von Win2000 und kann über Start/programme/Verwaltung/Komponentendienste/Computer/Arbeitsplatz administiert werden.
SET XACT_ABORT ON
Gibt an, ob Microsoft SQL Server für die aktuelle Transaktion automatisch ein Rollback ausführt, wenn eine Transact-SQL-Anweisung einen Laufzeitfehler auslöst
TSQL
Sollen eine Reihe von verteilten TSQL- Anweisungen als Transaktion ausgeführt werden, dann muß anstelle des einfachen BEGINN trANSACTION die erweiterte Variante BEGIN DIStrIBUTED trANSACTION verwendet werden.
Im folgenden Beispiel versucht sich der Mitarbeiter Donald mittels einer verteilten Transaktion alle Jobs, bei denen Geld gezählt wird, anzunehmen:
BEGIN DIStrIBUTED trANSACTION update FILIALE1.JOBBOERSE.dbo.JOBS set status='angenommen', bearbeiter='Donald' where job='Geld zählen' and status='angebot' go update FILIALE2.JOBBOERSE.dbo.JOBS set status='angenommen', bearbeiter='Donald' where job='Geld zählen' and status='angebot' go COMMIT trANSACTION
Replikation
Durch Replikation werden an verschiedenen Standorten aktuelle Kopien von OLTP- Datenbanken verteilt bzw. eine einheitliche Datenbasis geschaffen.
Replikationsarten
Mergereplikation
Bsp:
Blackboard
Snapshotreplikation/Transaktionsreplikation
Die
Snapshootreplikation Erzeugt in größeren Intervallen
komplette Kopieen einer von Artikeln auf dem Verleger. Hingegen
werden bei der Transaktionsreplikation kontinuierlich die Änderungen
vom Verleger an den Abonnenten übertragen.
Bsp: Zeitung, DMSsimpel
Replikationssystem
Pullabos
Abonnent startet die Synchronisierung nach einem Zeitplan
-
Verleger kann anonyme Abonnenten oder nur eine Gruppe von Abonnenten zulassen
Pushabos
-
Können zusammen mit der Publikation auf dem Verleger erstellt werden
zentraliserte Aboverwaltung beim Verleger
-
höhere aktualität bei den Abonnenten, da Verteilung unmittelbar nach Änderung vom Verleger aus angestossen werden kann
-
höhere Sicherheit, da Verleger bestimmt, wer was abonniert
Einschränkungen
-
Tabellen müssen einen Primärschlüssel haben (außer bei Snapshot)
-
master, model, msdb, tempdb können nicht repliziert werden
Jede Publikation kann nur Artikel aus einer DB enthalten
Implementation der Replikationsarten
Snapshotreplikation
Transaktionsreplikation
Mergereplikation
Implementation der Replikation
Verteilungsserver installieren
Publikation erstellen
Abos erstellen
Voraussetzungen
-
Jeder an der Replikation teilhabende Server muß im Enterprise- Manager registriert sein
-
Domänen- Konto einrichten, welches alle SQL- Server Agents gemeinsam nutzen. Das Konto muß auf dem Verteilungsserver zur lokalen Gruppe der Administratoren (W2000) und der Sysadmins (SQL 2000) gehören
Verteilungsserver installieren
Die Installation des Verteilers erfolgt über einen Assistenten unter Extras/Replikation/Publizierung, Abonnenten und Verteilung Konfigurieren im Enterprisemanager.
Publikation einrichten
Enterprise Mgr/Extras/Replikationen/Publikationen erstellen und verwalten
Pullabo einrichten
Achtung: Abonnentensicherheit/Identität des SQL- Server Agent Konto auf Aboserver annehmen (Vertraute Verbindung)
Achtung: Der Zeitplan des Snapshootagenten sieht per default einen Periodenlänge von einer Woche vor. Bei Snapshootreplikation hier kürzen auf die gewünschte Periodenlänge
Achtung: Der Zeitplan für ein Push- Abo bei der Mergereplikation sieht eine Periodenlänge von einer Woche vor. Hier kürzen auf die gewünschte Periodenlänge. Der Zeitplan Fortlaufend ist nichtdeterministisch und deshalb für Experimente weniger geeignet.