SQL-Server 2000 - Das Handbuch - EDV

Werbung
B
51
55
60
61
64
Systemanforderungen
Systemkomponenten und Optionen
Datenbanklayout
Anwendung
Zusammenfassung
Bevor das Betriebssystem und Microsoft SQL Server geladen werden, sollte klar
sein, wie das SQL Server-System ausgelegt und aufgebaut werden soll. Das SQL
Server-System sollte sorgfältig entworfen werden, sodass kostspielige Ausfallzeiten
vermieden werden. Diese entstehen dann, wenn das System erneut aufgebaut oder
SQL Server mit anderen Optionen erneut installiert werden muss. In diesem Kapitel erfahren Sie, wie ein SQL Server-System erstellt wird. Als SQL Server-System
werden in diesem Buch die Hardware und die Software bezeichnet, aus denen der
Computer zusammengesetzt ist, auf dem die SQL Server-Datenbank ausgeführt
wird. Im Allgemeinen bezeichnet der Begriff System die Hardware und die Software, aus denen Computer bestehen, über die auf mindestens eine SQL ServerDatenbank zugegriffen werden kann.
In diesem Kapitel werden auch kurz die Versionen von Microsoft Windows 2000
und SQL Server vorgestellt, die installiert werden können. Schließlich lernen Sie
die Front-End-Anwendungen kennen, die zum Zugreifen auf SQL Server verwendet werden, sowie die möglichen Auswirkungen der Anwendungsarchitektur auf
die zukünftige Skalierbarkeit und Leistung eines Systems.
Systemanforderungen
Um die Anforderungen an ein ganzes System zu bestimmen, muss dessen Funktion berücksichtigt werden. Ist der Verwendungszweck eines Systems festgelegt,
kann untersucht werden, wie diese Anforderungen mithilfe von Computern erfüllt
werden können. Mitunter reicht ein Computer aus, aber es können auch mehrere
Computer erforderlich werden. In diesem Kapitel liegt der Schwerpunkt auf den
Zielen und Verwendungszwecken von Systemen. In den X Kapiteln 5 und 6 wird
näher auf den Aufbau und die Konfiguration der Hardware eingegangen.
51
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
Installation und Setup
4
Entwerfen eines Microsoft
SQL Server-Systems
In diesem Kapitel werden die Systemfunktionen und die auf diesen Funktionen
basierenden Konfigurationen behandelt. Zunächst wird auf die Anwendungstypen eingegangen, die von einem System verarbeitet werden müssen; anschließend
wird besprochen, wie die Anforderungen auf Dienstebene festgelegt werden können.
Systemanwendung
Was nutzt eine SQL Server-Datenbank ohne Anwendung? Wenn nicht alle Mitarbeiter einer Firma Spezialisten im Umgang mit SQL sind, gerne komplexe Abfragen durchführen und Daten in tabellarischer Form anzeigen, nutzt eine solche
Datenbank wenig. Die Anwendung erleichtert das Verwenden von SQL Server.
Bei einigen Anwendungen wird sehr deutlich, dass auf eine Datenbank zugegriffen wird, wohingegen es bei anderen Anwendungen keinen Hinweis darauf gibt,
dass überhaupt eine Datenbank vorhanden ist. Auf jeden Fall ist es notwendig,
die Anwendung so anzulegen, dass den Benutzern der gewünschte Dienst problemlos und schnell zur Verfügung gestellt wird. Langsame, ineffiziente Anwendungen frustrieren den Endbenutzer. Wenn eine Anwendung den Bedürfnissen
eines Kunden nicht entspricht, besteht die Gefahr, dass er sich an eine andere
Firma wendet, die seinen Anforderungen eher gerecht wird.
Die Anwendungstypen unterscheiden sich je nach ihrer Funktion. Im Allgemeinen gibt es drei Hauptfunktionen: OLTP-Systeme (Online Transaction Processing), DSSs (Decision Support Systems) und Batchverarbeitungssysteme. Diese
Funktionen unterliegen unterschiedlichen Anforderungen, sodass grundlegend
verschiedene Anwendungstypen verwendet werden können.
OLTP
OLTP-Systeme sind dadurch charakterisiert, dass viele Benutzer gleichzeitig auf
Onlinedaten zugreifen. Ferner warten diese Benutzer auf eine Antwort vom System. Für OLTP-Systeme bestehen zahlreiche Möglichkeiten, beispielsweise folgende Formen:
b Onlinevertrieb Diese Anwendungen werden sehr häufig verwendet, da der
Handel über das Internet hohe Zuwachsraten verzeichnet. Beim Erwerb von
Produkten über das Internet bemerken Benutzer häufig eine Verzögerung beim
Übertragen, Abrufen und Verarbeiten von Daten. Durch Reduzieren der
Zugriffszeit auf die Datenbank wird die gesamte Transaktionszeit verbessert.
b Einkauf in Geschäften Bei Zahlungen mit Kreditkarte wird die Karte durch
ein Datenlesegerät gezogen; bei dieser Transaktion wird auf eine Datenbank
zugegriffen. Vor dem tatsächlichen Zugriff auf die Datenbank wird diese Transaktion möglicherweise durch viele Systeme geleitet.
b Geschäftssysteme Jede Firma verfügt über Anwendungen, mit denen auf
Datenbanken zugegriffen wird. Hierbei kann es sich um die Buchhaltung, den
Vertrieb, das Personalwesen, die Lagerhaltung oder zahlreiche andere Systeme
handeln. Diese Anwendungen können als Intranet-Anwendung in einer Sprache wie C++ oder Microsoft Visual Basic oder mithilfe eines 4GL-Tools
(Fourth-Generation Language) geschrieben sein. Auf jeden Fall stammen die
Daten aus einer Datenbank.
52
Kapitel 4
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
Alle OLTP-Systeme verfügen über ein gemeinsames Merkmal: Der Benutzer wartet auf eine Antwort von ihnen. Gefordert ist also ein System, das Benutzeranfragen innerhalb einer festgelegten Antwortzeit verarbeiten kann.
DSSs (Decision Support Systems, Entscheidungsunterstützungssysteme) sind für
den Benutzer beim Treffen wichtiger Geschäftsentscheidungen hilfreich, indem
sie auf der Grundlage von geschäftlichen Fragen bestimmte Ergebnisse liefern. Im
Folgenden werden einige Fragen vorgestellt, die durch ein Decision Support System beantwortet werden können:
b Wer ist in einem bestimmten Bezirk der Spitzenverkäufer; welche Produkte
verkaufen sich am besten?
b Zu welcher Jahreszeit verkauft sich ein Produkt am besten?
b Zu welchem Ergebnis führte die Preissenkung bei einem Produkt?
b Wie hoch liegt die durchschnittliche Provision für Vertreter je nach Bezirk?
Entscheidungsunterstützungssysteme unterscheiden sich von OLTP insofern, als
der Benutzer damit rechnet, dass für das Ergebnis einer komplexen Abfrage eine
längere Zeit benötigt wird. Die für entsprechende Abfragen benötigte Zeit kann
Sekunden, Minuten oder auch Stunden betragen. Dies bedeutet nicht, dass die
Antwortzeit keine Rolle spielt, sondern dass zwischen dem Durchsatz (Leistung
für alle Benutzer) und der Antwortzeit (Leistung für den einzelnen Benutzer)
Kompromisse gefunden werden müssen.
Batchverarbeitungssysteme
Batchverarbeitungssysteme verarbeiten Offlineaufträge, an denen kein Endbenutzer beteiligt ist. Von diesen Systemen werden in der Regel folgende Aufgaben
übernommen:
b Tägliches Aktualisieren von Daten Bei einigen Entscheidungsunterstützungssystemen müssen die Daten jede Nacht erneut geladen werden. Dieser Task
wird häufig durch Batchverarbeitungssysteme automatisiert.
b Datentransformation Dieser Task lässt sich mit der Datenaktualisierung vergleichen, die Daten werden jedoch transformiert.
b Datenbereinigung Mit diesem Task lassen sich beispielsweise doppelte Konten aus der Datenbank löschen.
b Rechnungsstellung im Offlinebetrieb Mit diesem Task können beispielsweise
nachts Rechnungen für Kunden erstellt werden.
Batchverarbeitungssysteme zeichnen sich dadurch aus, dass kein Benutzer auf
den Abschluss eines Tasks wartet; es besteht jedoch in der Regel ein bestimmter
Zeitrahmen, in dem die Tasks ausgeführt werden müssen. Das nächtliche Verarbeiten einer Datenmenge muss beispielsweise vor den ersten Anmeldungen am
Morgen abgeschlossen sein.
Entwerfen eines Microsoft SQL Server-Systems
53
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
B
Installation und Setup
DSS
Anforderungen
Vor dem Aufbau des Datenbankservers ist es also wichtig, die Anwendungstypen
zu kennen, die das System unterstützen muss. Wenn diese Anforderungen nicht
bekannt sind, kann das System nicht sinnvoll aufgebaut werden. Jedes System
verfügt über eigene Anforderungen und Eigenschaften. Diese Anforderungen erfordern bestimmte Entscheidungen im Hinblick auf den Systemaufbau, beispielsweise die Anzahl der zu verwendenden Computer oder die Notwendigkeit einer
verteilten Transaktionsverarbeitung.
Dienstebenenanforderungen
Zu den wichtigsten Faktoren beim Aufbau eines Systems gehören die Dienstebenenanforderungen. Diese Anforderungen werden in der Regel in einer Vereinbarung über zu erbringende Dienstleistungen (SLA, Service Level Agreement)
festgelegt. Die SLA wird zwischen dem Lieferanten (Geschäftsführer) und dem
Kunden (Benutzer) getroffen. Ob eine formelle SLA getroffen wird, hängt davon
ab, wer der Kunde ist und wie die Dienste zur Verfügung gestellt werden.
Wenn Sie beispielsweise mit einer Firma einen Vertrag über Datenbankdienste abschließen, wird in der Regel eine SLA getroffen. Diese SLA stellt dann einen
rechtsverbindlichen Vertrag dar. Wenn Sie für andere Abteilungen innerhalb der
Firma Dienste zur Verfügung stellen, wird dafür wahrscheinlich keine rechtsverbindliche Vereinbarung getroffen. Mit einer SLA werden jedoch die Dienste festgelegt, die dem Kunden zugesichert werden. Die SLA kann außerdem Vertragsstrafen für den Fall enthalten, dass Dienste nicht zur Verfügung stehen. Auf SLAs
wird in X Kapitel 6 näher eingegangen.
Wenn gewisse Dienste zugesichert wurden, muss das System so eingerichtet werden, dass die entsprechende Leistung gewährleistet wird. Einige Faktoren, die
sich hierauf auswirken, werden im Folgenden vorgestellt: Leistung, Kapazität und
Betriebszeit.
Leistung
Ein sehr wichtiger Aspekt einer SLA besteht in der Spezifikation der akzeptablen
Mindestleistung des Systems. Eine typische SLA umfasst ein Diagramm der verschiedenen Transaktionen, die von einer Anwendung unterstützt werden, eine
Mindestdienstzeit für alle Transaktionen und eine optionale, strenger ausgelegte
Mindestdienstzeit für 95 oder 90 Prozent der Transaktionen. In der SLA kann beispielsweise festgelegt werden, dass 90 Prozent der Transaktionen zum Hinzufügen
neuer Kunden innerhalb von 2 Sekunden und alle Transaktionen innerhalb von
3 Sekunden abgeschlossen werden müssen.
Der Dienstanbieter muss diese Leistung gewährleisten, da ansonsten eine Vertragsstrafe droht. Als Datenbankadministrator (DBA) sind Sie verantwortlich dafür, dass das System so verwaltet wird, dass diese Dienste zur Verfügung stehen.
Ferner müssen Probleme im Kern erkannt werden, sodass dem System ggf. Kapazität hinzugefügt werden kann. Dies wird dadurch gewährleistet, dass das System
ständig überwacht und regelmäßig eine Kapazitätsplanung durchgeführt wird.
54
Kapitel 4
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
Kapazität
Die Kapazität eines Systems wird verwaltet, indem Sie das System ständig überwachen und entsprechende Maßnahmen ergreifen, wenn ein Schwellenwert erreicht wird. In X Kapitel 6 wird darauf eingegangen, dass ein bestimmter Prozentsatz des Festplattenspeichers jederzeit für die Spitzen bei der Arbeitsauslastung
zur Verfügung stehen muss. Wenn die Puffer regelmäßig verwendet werden, müssen dem System zusätzliche Ressourcen hinzugefügt werden. Dies gilt auch für die
CPU-Nutzung.
Betriebszeit
Neben den Spezifikationen im Hinblick auf Leistung und Kapazität werden in
einer SLA in der Regel auch Spezifikationen zur verfügbaren Betriebszeit (Uptime) des Systems berücksichtigt. Die Anforderungen an die Betriebszeit des Systems bedeuten, dass das System den Benutzern während festgelegter Zeiträume
zur Verfügung steht. Je nach den Firmenanforderungen kann festgelegt werden,
dass eine 99,9 prozentige Betriebszeit 7 Tage die Woche an 52 Wochen im Jahr
oder 8 Stunden am Tag an 5 Tagen die Woche gewährleistet werden soll. Der DBA
ist verantwortlich für das Entwickeln eines Plans für routinemäßige Sicherungen
und Wiederherstellungen sowie für eine Notfallwiederherstellung, sodass die erforderliche Betriebszeit gewährleistet werden kann.
Systemkomponenten und Optionen
Mit diesen Informationen zu den verfügbaren Anwendungstypen und Dienstanforderungen können Sie entscheiden, welche Software auf dem System installiert
werden soll. Sie können aus vier Versionen von Windows 2000 und drei Versionen von SQL Server 2000 auswählen. In diesem Abschnitt lernen Sie die Unterschiede zwischen diesen Versionen kennen.
Versionen von Windows 2000
Die vier Versionen von Windows 2000 sind so ausgelegt, dass für jede Anwendung die passende Software zur Verfügung steht. Die Möglichkeiten von Windows 2000 wachsen bei einem Wechsel von Windows 2000 Professional zu Windows 2000 Server und zu Windows 2000 Advanced Server und schließlich zu
Windows 2000 Datacenter. In den folgenden Abschnitten werden die Möglichkeiten der einzelnen Versionen beschrieben. Es ist ratsam, nicht in jedem Fall die
teuerste, leistungsstärkste Version von Windows 2000 anzuschaffen, sondern die
Version, die Ihren Anforderungen am nächsten kommt.
Entwerfen eines Microsoft SQL Server-Systems
55
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
B
Installation und Setup
Neben den Leistungsanforderungen kann die SLA auch Kapazitätsanforderungen
enthalten. Die Kapazität eines Systems wird in zahlreiche Kategorien unterteilt,
beispielsweise Festplatten-, Benutzer-, Netzwerkverbindungskapazität, usw. Es
liegt in Ihrer Verantwortung als DBA, das System so zu verwalten, dass die Kapazität nicht zu knapp wird.
Windows 2000 Professional
Windows 2000 Professional ist im Grunde genommen die Desktopversion von
Windows 2000. In der Regel werden bei einem System, auf dem Windows 2000
Professional ausgeführt wird, nur die Vorteile der SQL Server 2000-Clientkomponenten genutzt. Wenn SQL Server auf dem Computer ausgeführt werden soll,
können Sie die Personal Edition von SQL Server 2000 installieren. Bei der Personal Edition ist nur ein lokaler Zugriff auf die Datenbank möglich. Es ist nicht
möglich, über andere Systeme darauf zuzugreifen.
Unter Windows 2000 Professional können nur die Personal Edition von SQL Server (und die Clientkomponenten) installiert werden.
HINWEIS
Windows 2000 Server
Windows 2000 Server ist als Serverbetriebssystem ausgelegt, was bedeutet, dass
durch das Installieren von Windows 2000 Server auf einem Computer andere Systeme auf die Ressourcen dieses Computers zugreifen können. Windows 2000 Server unterstützt SQL Server 2000 Standard Edition. Windows 2000 Server unterstützt keine Systeme mit mehr als vier CPUs und mehr als 4 GB Speicher. SQL
Server 2000 ermöglicht auch den Zugriff auf die Datenbank über Remoteclients.
Auf Computern, auf denen Windows 2000 Server ausgeführt wird, können nur
SQL Server Standard Edition, SQL Server Personal Edition und die SQL ServerClientkomponenten installiert werden.
HINWEIS
Windows 2000 Advanced Server
Windows 2000 Advanced Server ist ebenfalls ein Serverbetriebssystem. Wie bei
Systemen, auf denen Windows 2000 Server ausgeführt wird, kann auch bei Systemen mit Windows 2000 Advanced Server über andere Systeme auf die Systemressourcen sowie auf SQL Server zugegriffen werden. Windows 2000 Advanced Server verfügt über die Möglichkeiten von Windows 2000 Server und unterstützt bis
zu acht CPUs und 8 GB Speicher. Um Microsoft Clusterdienste (MSCS, Microsoft
Cluster Services) für die Failover-Unterstützung zu verwenden muss Windows
2000 Advanced Server verwendet werden. Neben MSCS wird über Windows 2000
Advanced Server mit SQL Server 2000 die neue SQL Server Clustering-Technologie, aktualisierbare verteilte Sichten, unterstützt.
Um acht CPUs und 8 GB Speicher in SQL Server 2000 zu nutzen, muss die Enterprise Edition von SQL Server ausgeführt werden. Ferner können SQL Server
Standard Edition, SQL Server Personal Edition und die SQL Server-Clientkomponenten auf Windows 2000 Advanced Server installiert werden.
HINWEIS
Windows 2000 Datacenter
Die leistungsstärkste Version von Windows 2000 ist die Datacenter Edition. Diese
Version unterstützt alle Komponenten der anderen Versionen von Windows 2000
sowie bis zu 64 CPUs und 64 GB Speicher. Windows 2000 Datacenter ist nur bei
Hardwarehändlern erhältlich. Neben der Integration von Windows 2000 Datacenter in ihre Hardware bieten diese Händler einen umfassenden Support für
Windows 2000. Diese Integration ermöglicht es, mit nur einer Kontaktstelle Support sowohl für Windows 2000 als auch für die Hardware zu bieten.
56
Kapitel 4
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
Um 64 CPUs und 64 GB Speicher in SQL Server 2000 zu nutzen, muss die Enterprise Edition von SQL Server ausgeführt werden. Ferner können SQL Server
Standard Edition, SQL Server Personal Edition und die SQL Server-Clientkomponenten auf Windows 2000 Datacenter installiert werden.
SQL Server-Versionen
Neben den Versionen von Windows 2000 stehen mehrere Versionen von SQL
Server zur Verfügung. Basierend auf der Größe des Arbeitsspeichers und der Anzahl der zu verwendenden CPUs lässt sich problemlos eine Auswahl treffen. Die
Versionen von SQL Server werden im Folgenden beschrieben.
Clientsoftware
Die SQL Server 2000-Clientkomponenten bestehen aus den Netzwerkbibliotheken und den Dienstprogrammen, die für den Zugriff auf ein Remote-SQL ServerSystem oder auf ein lokales SQL Server-System benötigt werden. Diese Komponenten sind für alle Systeme für den Zugriff auf SQL Server erforderlich und bei
allen Versionen von SQL Server identisch.
Personal Edition
Die Personal Edition von SQL Server wurde für kleine Datenbanken entwickelt,
auf die lokal auf einem Clientsystem zugegriffen wird. Bei SQL Server 2000 Personal Edition kann nicht über andere Computer auf die Datenbank zugegriffen werden.
Standard Edition
SQL Server 2000 Standard Edition ist eine der beiden Serverversionen von SQL
Server 2000. Die Standard Edition entspricht der Enterprise Edition, abgesehen
davon, dass über die Standard Edition auf höchstens 4 CPUs und 4 GB Speicher
zugegriffen werden kann.
Enterprise Edition
Die Enterprise Edition von SQL Server unterstützt die Features und Funktionen
aller Versionen von Windows 2000. SQL Server 2000 Enterprise Edition erfordert
Windows 2000 Advanced Server oder Windows 2000 Datacenter. Ferner unterstützt SQL Server 2000 Enterprise Edition Failover-Clustering mit 2 Knoten und
aktualisierbare verteilte Sichten.
Versionsvergleich
In dieser Tabelle werden die Versionen und Möglichkeiten von Windows 2000
und SQL Server 2000 aufgeführt.
Entwerfen eines Microsoft SQL Server-Systems
57
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
B
Installation und Setup
HINWEIS
SQL Server 2000
Personal Edition
SQL Server 2000
Standard Edition
SQL Server 2000
Enterprise Edition
Windows 2000
Professional
Beschränkte Möglichkeiten
Kein Clientzugriff
N/V
N/V
Windows 2000
Server
Beschränkte Möglichkeiten
Kein Clientzugriff
Servermöglichkeiten
Bis zu 4 CPUs
und 2 GB Speicher
Servermöglichkeiten
Bis zu 4 CPUs
und 4 GB Speicher
Windows 2000
Beschränkte Möglichkeiten
Advanced Server Kein Clientzugriff
Servermöglichkeiten
Bis zu 4 CPUs
und 2 GB Speicher
Servermöglichkeiten
MSCS
Bis zu 8 CPUs
und 8 GB Speicher
Windows 2000
Datacenter
Servermöglichkeiten
Bis zu 4 CPUs
und 2 GB Speicher
Servermöglichkeiten
MSCS
Bis zu 64 CPUs
und 64 GB Speicher
Beschränkte Möglichkeiten
Kein Clientzugriff
Tabelle 4.1:
Versionsvergleich
Es gibt also mehrere Auswahlmöglichkeiten. Die Entscheidung, welches Produkt
verwendet werden soll, muss sorgfältig durchdacht werden. Wenn das System einmal installiert ist, muss ganz von vorne angefangen werden, wenn Sie Ihre Entscheidung ändern.
Systemoptionen
Neben der Entscheidung für eine Version von SQL Server 2000 und von Windows 2000 können Sie zahlreiche weitere Optionen nutzen. Diese Optionen werden im folgenden Abschnitt beschrieben, und Sie umfassen MSCS- und SQL Server 2000-Replikationsoptionen sowie aktualisierbare verteilte Sichten (neu in
SQL Server 2000 Enterprise Edition). Jede dieser Optionen verfügt über bestimmte Möglichkeiten und Anforderungen und kann daher für eine Konfiguration ratsam oder unsinnig sein; hierauf wird in den folgenden Absätzen näher eingegangen.
MSCS
MSCS ist eine Abkürzung für Microsoft Cluster Services (Microsoft Clusterdienste) und stellt eine Windows 2000-Option dar, die zusammen mit SQL Server 2000
verwendet wird. Mit MSCS kann ein Computer für andere Computer als Standbyoder Failover-Server verwendet werden. Hierdurch kann ein Wiederherstellungsprozess bei einem Hardware- oder Softwarefehler nahezu unmittelbar gestartet
werden.
Für MSCS muss ein freigegebenes Festplattensubsystem mit beiden Systemen im
Cluster verbunden sein. Die SQL Server-Transaktionsprotokolle und -Datendateien müssen sich auf dem freigegebenen Festplattensubsystem befinden. Bei
einem Fehler, der durch das Fehlen eines Echtzeitstatussignals angezeigt wird,
werden die SQL Server-Funktionen von dem Standbysystem übernommen. Da
das Standbysystem die IP-Adresse und den Systemnamen aufzeichnet, entsteht
der Eindruck, dass der primäre Datenbankserver lediglich neu gestartet wurde.
58
Kapitel 4
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
Bei einem Cluster-Failover ist dieselbe Datenbankwiederherstellung erforderlich
wie bei jedem System, das plötzlich neu gestartet wurde. MSCS bietet keine Fehlertoleranz, nur eine rasche Wiederherstellung.
SQL Server-Replikation
Die SQL Server-Replikation ermöglicht das Replizieren von Daten aus einer SQL
Server-Datenbank in ein anderes Datenbanksystem. Es gibt verschiedene Replikationsarten – Snapshot-, Transaktions- und Mergereplikation – die in den folgenden Abschnitten beschrieben werden. Welche Replikation verwendet wird, hängt
von den jeweiligen Bedürfnissen ab. Die SQL Server-Replikation basiert auf Publizieren und Abonnieren, wobei die Daten von einem Verleger veröffentlicht und
von mindestens einem Abonnenten empfangen werden.
b Snapshotreplikation Die Snapshotreplikation erstellt regelmäßig ein Bild –
ein Snapshot – der Daten. Diese Daten werden anderen Systemen zur Verfügung gestellt. Eine Snapshotreplikation wird nur durchgeführt, wenn der
Snapshot erstellt und angewendet wird, sodass während des normalen Betriebs
keine zusätzliche Belastung entsteht. Der Nachteil bei einer Snapshotreplikation besteht darin, dass die Daten nur so aktuell sein können wie der letzte
Snapshot, der u. U. schon älter ist.
b Transaktionsreplikation Die Transaktionsreplikation beginnt zwar mit einem
Snapshot; danach wird aber das Transaktionsprotokoll auf dem Verleger kontinuierlich gelesen, und die auf den Verleger angewendeten Transaktionen werden dann auf die Abonnenten angewendet. Hierdurch können die Abonnenten
auf dem aktuellen Stand bleiben. Natürlich kommt es zu einer Verzögerung
zwischen dem Zeitpunkt, an dem eine Transaktion auf den Verleger angewendet wird, und dem Zeitpunkt, an dem sie auf die Abonnenten angewendet
wird.
b Mergereplikation Die Mergereplikation unterscheidet sich von der Snapshotund der Transaktionsreplikation insofern, als Aktualisierungen sowohl auf den
Verleger- als auch auf den Abonnentensystemen vorgenommen werden. SQL
Server verwendet Trigger und Timestamps zum Koordinieren von Änderungen
auf den verschiedenen an der Replikation beteiligten Systemen. Die Mergereplikation ist zwar sinnvoll, wenn eine mehrseitige Replikation gewünscht ist,
führt aber zu einer höheren Belastung als die Snapshot- oder die Transaktionsreplikation.
Aktualisierbare verteilte Sichten
Mit SQL Server 2000 werden aktualisierbare verteilte Sichten eingeführt. Mithilfe
dieser Option können SQL Server-Systeme eine logische Datenbank gemeinsam
nutzen, wodurch die Skalierbarkeit erhöht wird. Die logische Datenbank kann
sehr umfangreich werden. Sie kann auf viele Computer verteilt werden, um die
Kapazität zu erhöhen. Auf aktualisierbare verteilte Sichten wird in X Kapitel 18
ausführlich eingegangen.
Entwerfen eines Microsoft SQL Server-Systems
59
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
B
Installation und Setup
HINWEIS
Datenbanklayout
Ein wichtiger Teil beim Aufbau eines SQL Server-Systems besteht im Layout der
Datenbank. Dieser Prozess umfasst das physische Platzieren der Transaktionsprotokolle, der Datendateien usw. Das ist eine der wichtigsten Aufgaben beim Aufbau eines SQL Server-Systems, da diese Entscheidungen nur sehr schwer rückgängig gemacht werden können. In den X Kapiteln 5 und 6 finden Sie Tipps zum
physischen Platzieren des Transaktionsprotokolls und der Datendateien.
Transaktionsprotokoll
Das Transaktionsprotokoll ist von entscheidender Bedeutung für die Operation,
die Stabilität und die Leistung des Datenbankservers. Jede Datenbank verfügt
über ein eigenes Transaktionsprotokoll, sodass jedes Transaktionsprotokoll sorgfältig platziert werden muss. Das Transaktionsprotokoll wird zum Aufzeichnen
von Änderungen an der Datenbank verwendet, sodass das System bei einem Fehler wiederhergestellt werden kann. Da die Wiederherstellung von dem Transaktionsprotokoll abhängt, ist es wichtig, ein RAID-E/A-Gerät zu verwenden, um
diese Datenbankkomponente vor möglichen Fehlern zu schützen. Auch bei
einem Verlust eines Datenträgerlaufwerks muss das Transaktionsprotokoll noch
zur Verfügung stehen.
Neben dem Schutz des Transaktionsprotokolls von Datenträgerfehlern muss
sichergestellt werden, dass sich dieses Protokoll auf einem Hochleistungsgerät
befindet. Wenn das Transaktionsprotokoll zu langsam verarbeitet wird, müssen
Transaktionen warten, was sich in erheblichem Maße auf die Systemleistung auswirkt. Das Transaktionsprotokoll sollte auch als fehlertolerant konfiguriert werden. Auf diese Anforderungen wird im X folgenden Kapitel näher eingegangen.
Schließlich muss im Transaktionsprotokoll genügend Platz vorhanden sein, sodass das System lange Zeit ohne Unterbrechung ausgeführt werden kann. Wenn
die Kapazität des Transaktionsprotokolls erschöpft ist, wird die Transaktionsverarbeitung unterbrochen, bis wieder ausreichend Platz vorhanden ist. Platz wird
durch Sichern des Transaktionsprotokolls geschaffen. Dies kann sich jedoch auf
die Leistung auswirken. Einige DBAs ziehen es vor, ein Transaktionsprotokoll mit
ausreichender Kapazität zu erstellen, sodass es nur einmal pro Stunde oder pro
Tag gesichert werden muss. Die Größe eines Transaktionsprotokolls sollte so gewählt werden, dass mindestens acht Stunden lang nicht gesichert werden muss.
Wie Sie später in diesem Buch erfahren werden, ist dies eine sehr vereinfachte
Darstellung des Prozesses von Transaktionsprotokollen.
Datendateien
Der Prozess beim Platzieren von Datendateien unterscheidet sich grundlegend
von dem Prozess beim Platzieren des Transaktionsprotokolls. Je nachdem, wie auf
die Datendateien zugegriffen wird, sollten sie auf möglichst vielen Datenträgern
platziert werden, sodass die E/A-Last auf alle Datenträgerlaufwerke verteilt wird.
Auf diesen Prozess wird auch im X folgenden Kapitel näher eingegangen.
60
Kapitel 4
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
Damit das ordnungsgemäße Layout für die Datendateien geplant werden kann,
müssen der Speicherplatz berechnet, die Leistungsanforderungen überschlagen,
und die passende Anzahl an Laufwerken mithilfe eines RAID-Subsystems erstellt
werden. Ob Fehlertoleranz verwendet wird, hängt von den jeweiligen Anforderungen ab. Nachdem das E/A-Subsystem festgelegt wurde, werden die Datendateien gleichmäßig auf die Controller und Datenträgerlaufwerke verteilt.
Anwendung
Einen wichtigen Teil des Systems stellt die Anwendung dar, die so ausgelegt sein
muss, dass sie aktuellen und zukünftigen Anforderungen entspricht. In diesem
Abschnitt erfahren Sie, wie eine Anwendung erstellt wird, wobei Leistung, Skalierbarkeit und Wachstum berücksichtigt werden.
Architektur
Die grundlegende Architektur einer Anwendung kann verschiedene Formen annehmen. Der Hauptunterschied zwischen Anwendungsarchitekturen hängt von
der Anzahl an Systemen ab, die von der Anwendung betroffen sind. Diese Unterscheidung wird als Anzahl an Schichten bezeichnet. Viele bekannte Anwendungen werben mit der Anzahl an Schichten, aus denen sie bestehen.
Architekturvergleich
Jede Datenbankanwendung wird in drei Komponenten aufgeteilt. Hierbei handelt
es sich um folgende Komponenten:
b Datenbankdienste Hierbei handelt es sich um den Back-End-Datenbankserver und die Daten, die sich in der Datenbank befinden.
b Anwendungsdienste Hierbei handelt es sich um die Anwendungs- oder
Geschäftslogik, mit der die aus der Datenbank abgerufenen Daten bearbeitet
werden.
b Präsentationsdienste Hierbei handelt es sich um die Benutzeroberfläche. Die
Präsentationsdienste müssen die Daten in eine verständliche Form bringen
können.
Die Unterschiede zwischen ein-, zwei- und dreischichtigen Architekturen bestehen darin, wie diese Komponenten aufgeteilt sind. In einer einschichtigen Architektur sind alle Komponenten Teil eines Programms. In einer zweischichtigen Architektur werden diese Komponenten in zwei unterschiedliche Teile geteilt. In
einer dreischichtigen Architektur werden diese Komponenten in drei unterschiedliche Teile geteilt. Dies wird in Abbildung 4.1 dargestellt und in den folgenden Abschnitten näher erläutert.
Entwerfen eines Microsoft SQL Server-Systems
61
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
B
Installation und Setup
Die Größe der Datendateien sollte so gewählt werden, dass ein Anwachsen des
Systems dabei berücksichtigt wird. Mitunter nimmt der Umfang von Datenbanken
erstaunlich schnell zu. Mit der Zunahme an Daten nimmt auch der Umfang der
Indizes zu. Überprüfen Sie das System regelmäßig, und führen Sie Übungen zur
Größenanpassung und Kapazitätsplanung durch.
GUI
(Präsentationsdienste)
Anwendungsdienste
GUI
(Präsentationsdienste)
System
A
Datenbankdienste
Eine-EbeneArchitektur
System
A
Anwendungsdienste
Datenbankdienste
GUI
(Präsentationsdienste)
Anwendungsdienste
System
B
Zwei-EbenenArchitektur
Datenbankdienste
System
A
System
B
Abbildung 4.1:
Unterschiede
zwischen Architekturen mit ein,
zwei oder drei
Schichten.
System
C
Drei-EbenenArchitektur
Einschichtige Architektur
Bei einer einschichtigen Architektur handelt es sich um ein System, in dem sich
die Datenbank-, Anwendungs- und Präsentationsdienste (Benutzeroberfläche) alle
auf einem System befinden. Bei diesem Systemtyp findet eine Verarbeitung nur auf
der ausführenden Plattform statt. Ein Beispiel für eine einschichtige Architektur ist
eine Microsoft Access-Datenbank mit lokalen Präsentationsdiensten.
Heutzutage wird selten mit einschichtigen Anwendungen gearbeitet, vor allem auf
einer Windows 2000-Plattform. Es gibt jedoch kleine einschichtige Anwendungen
für einzelne Benutzer. Beispiele hierfür sind Microsoft Money, Quicken und TurboTax. Diese Anwendungen befinden sich in der Regel auf dem System, auf dem
sie ausgeführt werden. Dagegen gibt es kaum Beispiele für die Verwendung von
SQL Server. Obwohl Enterprise Manager auf demselben System ausgeführt werden kann, auf dem die Datenbank ausgeführt wird, handelt es sich eigentlich
nicht um eine einschichtige Anwendung, da diese Anwendung Netzwerkkomponenten von SQL Server verwendet. Die Tatsache, dass sie auf demselben System
ausgeführt werden, spielt hierbei keine Rolle.
Zweischichtige Architektur
Bei einer zweischichtigen Anwendung befinden sich Präsentationsdienste und
Datenbank auf unterschiedlichen Systemen. Die Schicht der Präsentationsdienste
(Benutzeroberfläche) umfasst in der Regel die Anwendungslogik. Ein gutes
Beispiel für eine zweischichtige Anwendung ist eine Anwendung, die SQL Server
Enterprise Manager verwendet. Bei diesem Anwendungstyp befinden sich zwar
die Benutzeroberfläche und die Anwendungslogik in Enterprise Manager, alle
notwendigen Daten für die Anwendungsfunktionen dagegen in einer SQL ServerDatenbank auf einem anderen System.
Zweischichtige Anwendungen werden häufig verwendet. Wahrscheinlich haben
Sie bereits mit derartigen Anwendungen gearbeitet. Diese Anwendungen werden
in der Regel in Sprachen geschrieben, die die Windows-Programmier-APIs unterstützen, beispielsweise Microsoft Visual C++ oder Visual Basic. Bei zweischichtigen Anwendungen muss jeder Benutzer über mindestens eine Verbindung zu der
SQL Server-Datenbank verfügen. Diese Architektur kann sich als ineffizient erweisen, da viele dieser Verbindungen meistens im Leerlauf ungenutzt bleiben.
62
Kapitel 4
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
Dreischichtige Architektur
Ob es sich bei webbasierten Anwendungen um zwei- oder dreischichtige Anwendungen handelt ist ein offener Punkt. Führen Sie einen einfachen Test durch:
Wenn für die in der Schicht der Präsentationsdienste bereitgestellten Daten ein
Terminal oder ein Webbrowser verwendet werden kann, verfügt die Anwendung
wahrscheinlich über zwei Schichten.
Durch das Trennen der Komponenten können Sie also mehrere Systeme verwenden. Bei einem typischen System ist in der Regel ein Datenbankserver mit mehreren Anwendungsservern verbunden, über die wiederum mehrere PC-Clients bedient werden. Wie ein System aufgebaut wird, hängt von der Anzahl der Benutzer
und dem verwendeten Anwendungstyp ab.
Leistung und Skalierbarkeit
Beim Entwickeln einer Anwendung und eines Datenbankschemas müssen die
Leistung und die Skalierbarkeit berücksichtigt werden. Während der Entwicklung
einer Anwendung können viele Entscheidungen getroffen werden, die sich auf die
Leistung und die Skalierbarkeit des Systems auswirken. Hierzu gehören folgende
Faktoren:
b Verwenden temporärer Arbeitstabellen Diese Tabellen sind zwar bei kleinen
Datenbanken häufig sinnvoll, aber mit zunehmender Datenmenge können sie
nicht mehr reibungslos verwendet werden.
b Verwenden von Aggregatfunktionen Beim Verwenden von Aggregatfunktionen, beispielsweise MIN(), MAX() und AVG(), wird die Menge der verwendeten Daten skaliert. Achten Sie also sorgfältig darauf, dass der Datensatz nicht
zu umfangreich wird.
b Verwenden von Indizes Mit wachsendem Umfang der Daten steigt die Bedeutung von Indizes; hierauf wird in X Kapitel 17 näher eingegangen.
b Verwenden von Transaktionen Das Verwenden expliziter Transaktionen stellt
sicher, dass Operationen nicht atomar sind. Da die Anzahl der gleichzeitigen
Benutzer jedoch steigt, muss das Anlegen von Sperren jedoch möglichst vermieden werden.
Es sind also mehrere Faktoren zu beachten, wenn ein System aufgebaut werden
soll, das einer zunehmenden Belastung gewachsen ist. Wenn Sie bei der Entwicklung die Möglichkeiten zur Leistungsoptimierung berücksichtigen, können Sie
ein skalierbares System aufbauen.
Entwerfen eines Microsoft SQL Server-Systems
63
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
B
Installation und Setup
Bei dreischichtigen Anwendungen werden die Datenbankschicht, die Anwendungsschicht und die Präsentationsdienste in drei verschiedene Komponenten
unterteilt. Bei dreischichtigen Anwendungen wird die mittlere Schicht für Multiplexverbindungen von der Schicht der Präsentationsdienste verwendet, wodurch
die Anzahl der Verbindungen zu SQL Server verringert wird. Ferner kann die
mittlere Schicht einen großen Teil der Geschäftslogik verarbeiten, sodass Raum ist
für die Hauptaufgabe der Datenbank, das Liefern von Daten.
Zusammenfassung
Wie Sie in diesem Kapitel erfahren haben, müssen beim Aufbau eines SQL ServerSystems viele Faktoren berücksichtigt werden. Es ist leider nicht möglich, den
Aufbau individueller Systeme im Einzelnen aufzuführen. Auch wenn Sie für mehrere Unternehmen arbeiten, werden Sie wahrscheinlich nie identische Systeme
entwickeln, da jedes Unternehmen ganz eigene Bedürfnisse hat.
In diesem Kapitel wurden mehrere Kernpunkte behandelt. Die Anforderungen
einer Firma im Hinblick auf die Betriebsbereitschaft müssen beachtet werden,
sodass ein Aufbau entwickelt werden kann, der diesen Anforderungen gerecht
wird. Dies kann bedeuten, dass mehrere Datacenters, Clustering, RAID-E/A-Subsysteme oder Replikation verwendet werden. Ferner wirken sich die Anforderungen an die Leistung und Skalierbarkeit eines Systems auf den gesamten Aufbau
aus. Wie Sie in diesem Kapitel erfahren haben, stehen hierzu zahlreiche Möglichkeiten zur Verfügung. Schließlich muss beim Entwickeln der Anwendung die
Leistung berücksichtigt werden. Hierdurch ergibt sich ein System, bei dem die
Leistung durch zunehmende Datensätze und eine wachsende Anzahl an Benutzern nicht beeinträchtigt wird.
Im nächsten X Kapitel 5 wird auf viele Themen näher eingegangen, die in diesem
Kapitel bereits angerissen wurden. Dort lernen Sie auch die Funktionsweise von
E/A-Subsystemen kennen, und Sie erfahren, welche Leistungs- und Fehlertoleranzfaktoren berücksichtigt werden müssen und wie ein optimales E/A-Subsystem geplant und konfiguriert wird.
64
Kapitel 4
Garcia, Reding, Whalen: Microsoft SQL Server 2000 - Das Handbuch (Microsoft Press, ISBN 3-86063-154-3)
Herunterladen