Hochverfügbare und skalierbare Datenbanksysteme mit

Werbung
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
Herunterladen