Netlution Referenzprojekt: Hersteller von Industriemaschinen
Projekt:
Replikation von Useraccounts zwischen gespiegelten Microsoft SQL Servern
Unternehmen:
Hersteller von Industriemaschinen mit weltweiten Niederlassungen
Ausgangssituation:
Der Kunde betreibt zwei Microsoft SQL Server, die mittels Replikationsmechanismen (merge replication) gespiegelt sind. Es ist jedoch nicht möglich, die Useraccounts ebenfalls zu spiegeln (system tables können nicht repliziert werden). Microsoft empfiehlt einen DUMP mit anschließendem RESTORE. Diese Option war für den Kunden nicht praktikabel. Auf den SQL Server greift eine vom Kunden entwickelte Web-Anwendung, basierend auf JAVA, zu.
Projektziele:
Hauptziele:
- Untersuchung zur Machbarkeit einer Replikation der Useraccounts und ggf. Umsetzung.
Projektdurchführung:
Untersuchung
Am Beginn des Projektes stand eine Untersuchung über die Möglichkeiten zur Replikation von Useraccounts. Dabei kristallisierten sich drei Verfahren heraus.
- Erstellen eines Programms, welches in zyklischen Abständen die Useraccounts des Masterservers ausliest, mit denen des Standby Servers vergleicht und entsprechende Änderungen vornimmt.
- Erstellen eine DLL, die als „Stored Procedure“ in den SQL Servers eingebunden wird. Diese Stored Procedure würde das Gleiche tun wie das oben erwähnte Programm.
- Ändern des JAVA Codes, der die Useraccounts erstellt, so dass die Accounts auf beiden Servern gleichzeitig erzeugt werden.
Der Kunde entschied sich anhand der Vor- und Nachteile der einzelnen Lösungen für die erste Variante und beauftragte die Netlution GmbH mit der Erstellung eines entsprechenden Programms.
Programmierung
Bei der Programmierung fällt die Entscheidung auf PERL als Programmiersprache. Diese Scriptsprache erlaubt es, sehr schnell Applikationen zu entwickeln (Rapid Application Development) und gestattet es dem Kunden selbst Änderungen vorzunehmen. Die Änderungen sind besonders leicht zu tätigen, da das Programm nicht kompiliert werden muss. Das Programm baut mittels ODBC eine Verbindung zu beiden Servern auf und liest die aktuellen system tables aus. Darin sind auch die Useraccounts enthalten. Die Daten werden abgeglichen und die Änderungen zum Standbyrechner repliziert. Hierzu werden eigene SQL Prozeduren entwickelt, die vom Programm dynamisch als sog. „Stored Procedures“ erzeugt und aufgerufen werden. Der Kunde ruft das Programm zyklisch (via Scheduler) und nach Wartungsarbeiten am Standbyserver auf, um die Useraccounts zu aktualisieren.
Eingesetzte Methoden, Technologien, Produkte:
- Microsoft SQL Server 2000
- PERL
Status:
Das Programm wurde Anfang 2003 fertig gestellt und befindet sich seitdem im Einsatz. Bislang sind keine Erweiterungswünsche von Seiten des Kunden geäußert worden.