mk-prg-net \ ms-sql \admin \replication

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

Pushabos

Einschränkungen

Implementation der Replikationsarten

Snapshotreplikation






Transaktionsreplikation




Mergereplikation






Implementation der Replikation

  1. Verteilungsserver installieren

  2. Publikation erstellen

  3. Abos erstellen

Voraussetzungen

  1. Jeder an der Replikation teilhabende Server muß im Enterprise- Manager registriert sein

  2. 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.