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)