Freigeben über


Konzepte für die Replikationsprogrammierung

Gilt für: SQL Server Azure SQL Managed Instance

Vor dem Entwickeln einer Anwendung, die Replikationsfunktionen verwendet, führen Sie die folgenden allgemeinen Planungsschritte aus:

  1. Definieren Sie die Replikationstopologie.

  2. Definieren Sie die Anwendungsfunktionen.

  3. Erstellen Sie einen Sicherheitsplan.

  4. Wählen Sie eine Entwicklungsumgebung.

  5. Wählen Sie die geeignete Programmierschnittstelle für die Replikation.

Im restlichen Teil dieses Themas werden diese Schritte ausführlicher beschrieben. Der Planungsprozess wird an einem Beispiel veranschaulicht.

Definieren der Replikationstopologie

Der erste Schritt bei der Programmierung der Replikation besteht darin, die Replikationstopologie für die Anwendung zu definieren. Wenn Sie eine Anwendung schreiben, die eine vorhandene Replikationstopologie verwendet, z. B eine Clientanwendung, die auf Daten eines vorhandenen Abonnenten zugreift, fahren Sie mit dem nächsten Schritt fort.

Hinweis

In einigen Fällen besteht der einzige Zweck der Anwendung in der Bereitstellung der Replikationstopologie.

Die Definition der Replikationstopologie hängt von vielen Faktoren ab. Dazu gehören:

  • Ob replizierte Daten aktualisiert werden müssen und von wem.

  • Die Datenverteilungsanforderungen an Konsistenz, Autonomie und Latenzzeit.

  • Die Replikationsumgebung, einschließlich Geschäftsbenutzer, technischer Infrastruktur, Netzwerk und Sicherheit sowie Dateneigenschaften.

  • Die Replikationstypen und Replikationsoptionen.

  • Die Replikationstopologien und ihre Ausrichtung auf die Replikationstypen.

Wenn Sie noch nicht mit der Microsoft SQL Server-Replikation sind, lesen Sie die Replikationstypen.

Definieren der Anwendungsfunktionen

Nachdem Sie die Replikationstopologie definiert haben, bestimmen Sie die Funktionen, die die Anwendung bieten soll. Diese Funktionen können von einem Skript zur Synchronisierung eines Abonnements über eine Anwendung mit einer Benutzerschnittstelle bis hin zur Konfiguration der Replikation reichen. Die Replikation unterstützt die folgenden allgemeinen Programmierungstasks:

  • Einrichten der Replikation

  • Synchronisieren von Abonnenten

  • Warten einer Replikationstopologie

  • Überwachen einer Replikationstopologie.

  • Behandlung von Problemen mit der Replikation

Es ist auch üblich, Ihre Anwendung zu erweitern, indem Replikationsfunktionen mit anderen Funktionen kombiniert werden, die von SQL Server bereitgestellt werden. In der folgenden Tabelle werden einige erweiterte Funktionen hervorgehoben, die Sie in der Replikationsanwendung bereitstellen können.

Funktionalität Beispiel
Serververwaltung mit SQL Server Management Objects (SMO) Eine Anwendung, mit der ein Administrator eine Datenbank anhängen und als Verleger in einer Replikationstopologie konfigurieren kann.
Datenzugriff mit ADO.NET Eine Anwendung, mit der Benutzer programmgesteuert auf replizierte Verkaufsdaten in einer lokalen Abonnentendatenbank im Offlinemodus zugreifen und diese ändern können. Anschließend kann eine Verbindung hergestellt und das Pullabonnement per Mausklick synchronisiert werden.

Erstellen eines Sicherheitsplans

Sicherheit ist in jeder Anwendung wichtig. Daher sollte ein Sicherheitsplan vor dem Schreiben von Code erstellt werden. Die Anwendungssicherheit kann in drei Hauptbestandteile unterteilt werden: Sichern der Datenbank, Sichern der Replikation und Schreiben von sicherem Code.

Die folgenden Themen stellen weitere Informationen über die Sicherheit bereit:

Wählen einer Entwicklungsumgebung

Beim Entwickeln einer Replikationsanwendung kommen drei grundlegende Entwicklungsumgebungen in Betracht. Jede Entwicklungsumgebung hat Zugriff auf die gleichen Replikationsfunktionen. Dabei gibt es jedoch einige Ausnahmen. Replikationsanwendungen können in jeder der folgenden Umgebungen entwickelt werden.

  • Verwalteter Code

    Objektorientierte Entwicklungsumgebung, die die Vorteile der .NET Framework-Programmierung und der .NET Common Language Runtime (CLR) nutzt. Verwalteter Code ist die empfohlene Programmierumgebung für .NET-Entwicklung und SQL Server-Anwendungen. Verwaltete Replikationsschnittstellen ermöglichen die Programmierung der Replikationsverwaltung auf objektorientierte Weise, ohne Transact-SQL kennen zu müssen, und stellt auch einige Rückruffunktionen bereit, wenn Replikations-Agents ausgeführt werden, die nicht über Skripts verfügbar sind. Verwalteter Code ist die beste Umgebung zum Entwickeln von wiederverwendbaren Komponenten und Benutzeroberflächenanwendungen.

  • Skript

    Einfache Anwendungen, die eine Reihe von Befehlen als replikationssystem gespeicherte Prozeduren in Transact-SQL-Skripts oder Befehlen in Batchdateien ausführen. Zwar können Sie Skripts in einer verwalteten Umgebung mit dem sql Server-In-Process Managed Provider ausführen, die gleiche Funktionalität kann jedoch mithilfe von verwalteten Replikationsschnittstellen abgerufen werden, die auch Rückruffunktionen bereitstellen. Die Skripterstellung stellt die beste Umgebung zum Ausführen von Tasks dar, die nur einige Male ausgeführt werden und die keine Rückruffunktionen erfordern, z. B. das Installieren eines Replikationsservers.

  • Nativer Code

    Hierbei handelt es sich um eine objektorientierte Entwicklungsumgebung, die direkten Zugriff auf das System oder COM-Objekte so nutzt, dass Code nicht von der CLR verwaltet wird. Systemeigene Codereplikationsschnittstellen sind veraltet oder werden nicht mehr unterstützt. Weitere Informationen finden Sie unter Als veraltet markierte Funktionen in SQL Server-Replikation oder Abwärtskompatibilität von Replikationen.

Auswählen der geeigneten Programmierschnittstelle für die Replikation

Der letzte Planungsschritt besteht darin, die geeignete Programmierschnittstelle für die Replikation auszuwählen, die die gewünschten Replikationsfunktionen für die ausgewählte Entwicklungsumgebung implementiert. In der folgenden Tabelle sind die verfügbaren Programmierschnittstellen für die Replikation aufgeführt.

Schnittstelle Environment Verwendungen
Replication Management Objects Concepts Verwalteter Code Verwaltung, Überwachung und Synchronisierung
Microsoft.SqlServer.Replication Verwalteter Code Synchronisierungen.
Microsoft.SqlServer.Replication.BusinessLogicSupport Verwalteter Code Erstellen von Geschäftslogikhandlern, um benutzerdefinierte Logik in den Mergesynchronisierungsvorgang zu integrieren
Gespeicherte Replikationsprozeduren (Transact-SQL) Skripterstellung Administration und Überwachung.
Ausführbare Konzepte für die Programmierung von Replikations-Agent Skripterstellung Synchronisierungen.

Beispiel

Bei Adventure Works müssen Daten für 200 Vertriebsmitarbeiter weltweit veröffentlicht werden. Die Vertriebsmitarbeiter sind viel im Außendienst unterwegs und müssen Laptops oder PDAs (Personal Digital Assistants) verwenden, um Kundendaten zu ändern und neue Bestellungen hinzuzufügen. Die Änderungen müssen anschließend mit dem Verleger synchronisiert werden, wenn die Vertriebsmitarbeiter über den Laptop eine Verbindung mit dem Netzwerk herstellen.

Für diese Anwendung könnten die Planungsschritte wie folgt aussehen:

  1. Die Replikationstopologie für diese Anwendung ist bereits vorhanden. Es muss jedoch ein neues Pullabonnement clientseitig erstellt werden. Die Veröffentlichung sollte parametrisierte Filter verwenden, um für jeden Vertriebsmitarbeiter einen eindeutigen Satz Daten zu replizieren.

  2. Zusätzlich zu dem regulären Datenzugriff, der für eine Vertriebsanwendung erforderlich ist, sollte diese Anwendung einen Vertriebsmitarbeiter in die Lage versetzen, das Pullabonnement bei Bedarf per Mausklick zu synchronisieren. Da die Anwendung von einem Vertriebsmitarbeiter installiert und ausgeführt wird, muss sie außerdem die Möglichkeit bieten, ein Abonnement zu konfigurieren und die Anfangsmomentaufnahme clientseitig zu übernehmen. Die Anwendung verwendet wahlweise die unter Windows zur Verfügung gestellte Infrastruktur zur Erkennung von Funkverbindungen, um das Abonnement automatisch zu synchronisieren, sobald eine Verbindung erkannt wird.

  3. Beachten Sie alle Sicherheitsrichtlinien für die Replikation, einschließlich der Verwendung der Windows-Authentifizierung und eines virtuellen privaten Netzwerks (VPN), wenn Sie die Verbindung mit dem Verleger herstellen. Verwenden Sie beim Implementieren der Websynchronisierung eine TLS-Verbindung (Transport Layer Security), früher als Secure Sockets Layer (SSL) bezeichnet. Weitere Informationen finden Sie unter Configure Web Synchronization.

  4. Um die Features von .NET Framework nutzen zu können, wird die Anwendung mit einer verwalteten Codesprache entwickelt.

  5. Auf Grundlage dieser Anforderungen kann die verwaltete Schnittstelle für Replikationsverwaltungsobjekte (RMO) alle erforderlichen Replikationsfunktionen für diese Anwendung bereitstellen.

Dieses Beispielszenario wurde in der AdventureWorks-Beispielanwendung implementiert, die für SQL Server heruntergeladen werden kann.