Hochverfügbare und skalierbare Datenbanksysteme mit SQL Server 2005 Steffen Krause Technologieberater Application Platform Microsoft Deutschland GmbH http://blogs.technet.com/steffenk Agenda Was bedeutet Verfügbarkeit Verfügbarkeit ohne Standby Verfügbarkeit bei Parallelverarbeitung Verfügbarkeit mit Standby Weitere Themen Verfügbarkeit Was bedeutet das für Sie? Können Ihre Kunden tun, was sie tun müssen, wenn es getan werden muss? Warum nicht? Site ist nicht verfügbar System ist nicht verfügbar Datenbank ist nicht verfügbar Datenbank ist teilweise nicht verfügbar Tabelle ist nicht verfügbar Daten sind nicht verfügbar 24x7x365 Verbesserte Verfügbarkeit ohne ein Standby-System Downtime wird reduziert oder vermieden, wenn: Datenbank teilweise nicht verfügbar ist Tabelle nicht verfügbar ist Daten nicht verfügbar sind Datenbankkomponenten MeineDB Read Only Dateigruppen Read/Write Dateigruppe Primär Datei1 Datei2 2004 Datei3 2003 Datei4 2002 2001 Datei5 Datenbank besteht aus… Dateigruppen bestehen aus… Dateien bestehen aus… Extents bestehen aus… Seiten bestehen aus Daten File Header 0 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 19 23 27 31 Datei6 Log extent extent extent extent 0 1 2 3 … Was passiert wenn… Festplatten/RAID-Systeme ausfallen In SQL Server 2000 Datenbank wird als fehlerverdächtig („suspect“) gekennzeichnet Benutzer können nicht auf die Datenbank zugreifen Datenbank ist Ebene der Verfügbarkeit In SQL Server™ 2005 Dateigruppe wird als Offline markiert Benutzer können auf nicht beschädigte Dateigruppen zugreifen Dateigruppe ist Ebene der Verfügbarkeit Funktionale Partitionierung Datenaufteilung für Verfügbarkeit Strategische Gruppierung von Objekten Nach Priorität Nach Zeitfenstern (Sliding Window) Nach Listen (z.B. Regionen) … in sekundäre Dateigruppen Zusammengehörige/wichtige Objekte bleiben verfügbar, auch wenn andere Datenbankteile offline sind Funktionale Partitionierung erfordert keine partitionierten Tabellen Partitionierte Tabellen profitieren aber davon Tabellenpartitionierung MeineGroßeTabelle … 1996 1997 • Eine einzige Datenbank • Partitionen einzeln verwaltet • Online/Offline • ReadOnly/ReadWrite • Restore (Online!) 2006 Partitionen in sekundären Dateigruppen Was passiert wenn… Die Wiederherstellung beginnt In SQL Server 2000 Datenbank ist im Zustand „wird wiederhergestellt“ Benutzer können nicht auf die Datenbank zugreifen Datei wird neu erstellt und mit Nullen initialisiert Datei wird wiederhergestellt – Offline In SQL Server 2005 Dateigruppe ist im Zustand „wird wiederhergestellt“ Benutzer können auf Daten in anderen Dateigruppen zugreifen Datei kann mit schneller Dateiinitialisierung neu erstellt werden Datei wird wiederhergestellt – Online Online Piecemeal Restore Bessere Verfügbarkeit während Restore Fast jede Komponente (Seite, Datei, Dateigruppe) kann wiederhergestellt werden– ONLINE Wenn Seite beschädigt ist – nur diese Seite von aus Backup wiederherstellen Konsistente Wiederherstellung (incl. LogWiederherstellung) erforderlich Ausnahme: Read-Only Dateigruppen Im einfachen Wiederherstellungsmodus: Nur für Read-Only Dateigruppen Schnelle Dateiinitialisierung Verfügbarkeit durch weniger Downtime SQL Server 2000 Alle Daten- und Logdateien müssen mit Nullwerten initialisiert werden Verlängert Nichtverfügbarkeit bei Wiederherstellung während der Dateierstellungsphase SQL Server 2005 Nur Logdateien müssen mit Nullwerten initialisiert werden Nichtverfügbarkeitszeit bei Wiederherstellung signifikant verringert Nicht nur für Restore nützlich Datenbankerstellung Datenbankdatei-Änderung: Automatische und manuelle Vergrößerung Partielle Datenbankverfügbarkeit und Piecemeal Restore Grenzen der Verfügbarkeit Parallelitäts-Anforderungen Datenbank ist verfügbar, aber die Anwendung/der Benutzer kann nicht die erforderlichen Operationen ausführen Was ist mit administrativem Einfluß? Wartungsarbeiten können Blockierungen hervorrufen Neue Online-Indexerstellung Was ist mit dem Einfluss von Anwendungen? Schlecht designte und/oder langlaufende Transaktionen Unterschiedliche Datenzugriffsmuster Neue Snapshot Isolation-Optionen Was geschieht wenn… Indizes neu aufgebaut werden müssen In SQL Server 2000 Neuerstellung von Indizes erfordert eine exklusive Sperre auf die Tabelle Tabelle ist effektiv offline Benutzer können die Tabelle nicht zugreifen In SQL Server 2005 Neuerstellung von Indizes kann in den meisten Fällen online erfolgen Benutzer können auf die Tabelle zugreifen Was geschieht wenn… Leser und Schreiber dieselben Daten zugreifen In SQL Server 2000 Sperren werden verwendet, um die beabsichtigte Isolationsstufe zu erreichen Benutzer müssen auf Zugriff auf gesperrte Daten warten Parallelität und Performance werden beeinflusst Korrektheit wird beeinträchtigt wenn zur Vermeidung von Sperren niedrigere Isolationsstufen gewählt werden In SQL Server 2005 Sperren ODER Versionierung können verwendet werden, um die beabsichtigte Isolationsstufe zu erreichen Mit Versionierung blockieren Leser keine Schreiber und umgekehrt Die Performance wird verbessert, wenn Wartezeiten der primäre Flaschenhals waren 2 Versionen: Snapshot pro Statement oder pro Transaktion Snapshot Isolation Verbesserte Verfügbarkeit mit einem Standby-System Downtime reduziert für diese Fehlerfälle: Site ist nicht verfügbar System ist nicht verfügbar Datenbank ist nicht verfügbar Datenbankspiegelung Redundanz auf Datenbankebene Kommende Hochverfügbarkeitstechnologie Verfügbar für Test und Prototyping in SQL Server 2005 RTM Zertifiziert für Produktionsbetrieb in der ersten Hälfte 2006 Drei Konfigurationen: Hohe Verfügbarkeit – Synchron mit Witness Hoher Schutz – Synchron ohne Witness Hohe Performance – Asynchron Datenbankspiegelung Überblick Softwarebasierte Lösung Principal-Datenbank verarbeitet Benutzeranfragen Spiegeldatenbank erhält Änderungen über sicheren, dedizierten TCP-Kanal Optionaler Zeugenserver für automatischen Failover Änderungen Principal Datenbank Spiegeldatenbank Datenbankspiegelung Grundprinzip der synchronen Spiegelung Bestätigung Bestätigung Commit Dauerndes Redo auf dem Spiegel Übertragen auf Spiegel Schreiben in Spiegel-Log Committed im Log Schreibe n in Log DB Log Log DB Datenbankspiegelung Standby-Technologien Hot Standby Warm Standby Cold Standby Featur e Database Mirroring Failover Clustering Peer-toPeer Replikation Transaktionale Replikation Log Shipping Backup / Restore Detach / Copy / Attach Datenverlust Keiner (optional) Keiner Möglich Möglich Möglich Möglich Wahrscheinlic h Failover automatisch Ja Ja Optional Nein Nein Nein Nein Transparent für Client Ja, AutoRedirect Ja, Reconnect auf selbe IP Optional Nein, NLB hilft Nein, NLB hilft Nein Nein Ausfallzeit Sekunden 20 Sec + DB Recovery keine Sekunden Sekunden + DB Recovery Erkennen, Restore, Manueller Failover Erkennen , Attach, Manueller Failover Standby Lesezugriff Über Snapshot nein Dauerhaft verfügbar Dauerhaft verfügbar Manchmal verfügbar Nein Nein Standby-Technologien Hot Standby Featur e Warm Standby Cold Standby Database Mirroring Failover Clustering Peer-toPeer Replikation Transaktionale Replikation Log Shipping Backup / Restore Detach / Copy / Attach Datenbank Instanz Tabelle oder Sicht Tabelle oder Sicht Datenbank Datenbank Datenbank Behandelt Plattenfehler Ja Nein, RAID erforderlic h Ja Ja Ja Ja Ja Spezielle Hardware Nein, zweites System Spezielle Hardware aus Cluster HCL Nein, zweites System Nein, zweites System Nein, zweites System Nein, zweites System Nein, zweites System Komplexität Mittel Hoch Hoch Hoch Hoch Mittel Mittel Ebene minimal Grenzen der Verfügbarkeit Es existieren viel mehr Grenzen Nur einige kann man mit Datenbanktechnologie überwinden Wichtig sind Menschen, Planung, Prozeduren und Training Microsoft SQL Server 2005 bietet Ihnen deutlich verbesserte Tools für die Überwindung dieser Grenzen: Datenbankserverfehler oder Katastrophe Isolierte Festplattenfehler Parallelität des Datenzugriffs Datenbank-Wartung und Administration Skalierbarkeit Benutzer- oder Anwendugnsfehler Wann einsetzen? Wieviel Arbeit erfordert die Technologie? Partielle Datenbankverfügbarkeit Online Piecemeal Restore Schnelle Dateiinitialisierung Schnelle Wiederherstellung Design und Architektur Minimale Arbeit erforderlich Sofort nach Upgrade Online IndexOperationen Wnen Kriterien erfüllt Wenn Kriterien nicht erfüllt (Minderheit) Snapshot Isolation Auf Anweisungsebene Auf Transaktionsebene (RO) Failover Clustering Datenbankspiegelun g Log Shipping DatenbankSnapshots Snapshot Isolation Mit Erkennung von UpdateKonflikten Snapshot Isolation Online Index Operationen Replikation Vewrbesserte Verfügbarkeit von Installation bis Redesign Ebenen der Verfügbarkeit zur Minimierung von Downtime und Datenverlust Ressourcen Webcasts http://www.microsoft.com/germany/technet/webcasts SQL Server Administration Webcast-Reihe http://www.microsoft.com/germany/sql/events/sql2005admin.mspx Download Evaluation & Express Englisch http://www.microsoft.com/sql/downloads/trial-software.mspx Deutsch http://www.microsoft.com/germany/sql/downloads/sql2005.mspx SQL Server Feature Pack incl. Upgrade Advisor Und Dokumentations-Update http://www.microsoft.com/germany/sql/downloads/default.mspx Blog Steffen Krause http://blogs.technet.com/steffenk PASS http://www.sqlpass.de Ressourcen für Ihren Erfolg Von Microsoft und den Communities www.microsoft.com/germany/technet TechNet für IT Professionals TechNet versorgt IT-Profis mit den wichtigsten Informationen in den Bereichen Evaluation, Planung, Implementierung sowie Wartung und Support auf dem Laufenden mit dem TechNet Flash Newsletter, RSS-Feeds sowie personalisierten Infos & Services Technische Informationen in der TechNet Datenbank (z.B. Security und Skript Center) und TechNet Webcasts www.microsoft.com/germany/community/ Eine Auswahl der besten deutschsprachigen Communities rund um Microsoft Server: Online- und Offline-Adressen für praktische Erfahrungen, Tipps, Web Boards und User Group Treffen www.sqlpass.de Professional Association for SQL Server (PASS): unabhängige von Anwendern geleitete weltweite Vereinigung von Nutzern der SQL Server-Technologie