Know-how und Werkzeuge für Troubleshooting und Performance-Tuning
Vorwort ... 25 1. Die Versionsgeschichte von SQL Server ... 29
1.1 ... Entwicklung bis Microsoft SQL Server 2005 ... 30 1.2 ... Von Microsoft SQL Server 2008 zu SQL Server 2014 ... 32 1.3 ... SQL Server 2016 -- wichtige Neuerungen im Überblick ... 40 1.4 ... SQL Server 2017 -- wichtige Neuerungen im Überblick ... 43 1.5 ... SQL Server 2019 -- Aussichten auf die Neuerungen im Überblick ... 48
2. Zukunftssicherheit, Stabilität und Performance im Enterprise-Bereich ... 65
2.1 ... Kapazitätsplanung von Prozessor, Speicher und I/O ... 65 2.2 ... Erfassen von Leistungs- und Baseline-Daten ... 66 2.3 ... Sequenzieller und Random I/O ... 68 2.4 ... Dimensionierung des E/A-Subsystems ... 69 2.5 ... RAID und SAN -- Konfiguration ... 70 2.6 ... SQL Server und virtuelle Umgebungen -- was ist zu beachten? ... 75 2.7 ... Ausblick auf zukünftige Technologien -- Storage im Netz ... 76
3. Die SQL-Server-Editionen im Überblick ... 79
3.1 ... Standard Edition ... 79 3.2 ... Business Intelligence Edition ... 80 3.3 ... Enterprise Edition ... 80 3.4 ... Parallel Data Warehouse und Data Warehouse Fast Track Edition ... 80 3.5 ... Spezielle Editionen ... 81 3.6 ... Microsoft Azure SQL-Datenbank ... 84 3.7 ... Zusammenfassung ... 88
4. Installation von SQL Server und Aktualisierung auf neue Versionen ... 89
4.1 ... Überlegungen zur Installation ... 90 4.2 ... Vorbereitung -- Was Sie vor der Installation erledigen sollten ... 94 4.3 ... Die vollständige Installation ... 95 4.4 ... Durchführen einer unbeaufsichtigten Installation ... 120 4.5 ... Installation einer Instanz unter Linux ... 127 4.6 ... Installation einer Instanz in der Cloud ... 133
5. Konfigurieren von SQL Server ... 135
5.1 ... Der SQL Server-Konfigurations-Manager ... 135 5.2 ... Die SQL-Server-Protokolle ... 138 5.3 ... SQL-Server-Startparameter ... 145 5.4 ... »sqlcmd« -- das Tool für die Kommandozeile ... 148 5.5 ... Die Konfiguration der Instanz ... 150 5.6 ... Konfigurieren von SQL Server mit der PowerShell ... 156 5.7 ... SQL-Server-Agent-Grundkonfiguration ... 158 5.8 ... Konfiguration von SQL Server mithilfe der Richtlinienverwaltung (policy management) ... 160 5.9 ... Hilfsprogramm-Kontrollpunkte (Utility Control Point, UCP) ... 166
6. Die SQL-Server-Systemdatenbanken im Überblick ... 181
6.1 ... Aufbau und Funktionsweise von SQL-Server-Systemdatenbanken ... 182 6.2 ... Verschieben (Move) von Systemdatenbanken ... 184 6.3 ... Neuerstellen von Systemdatenbanken ... 187 6.4 ... Konfigurieren von Systemdatenbanken ... 190
7. Grundlegendes Know-how für Administratoren und Entwickler ... 195
7.1 ... SQL Server verwalten -- SQL Server Management Studio (SSMS) ... 195 7.2 ... Dynamische Verwaltungssichten (Dynamic Management Views, DMV), Katalogsichten ... 209 7.3 ... Datenbanken anlegen ... 215 7.4 ... T-SQL -- Die wichtigsten Befehle für den Administrator ... 222 7.5 ... Views -- Daten aus anderen Perspektiven ... 225 7.6 ... Benutzerdefinierte Funktionen ... 227 7.7 ... Gespeicherte Prozeduren ... 229 7.8 ... Wichtige gespeicherte Prozeduren ... 235 7.9 ... Trigger ... 239 7.10 ... Interessante T-SQL-Neuerungen für Entwickler ... 250 7.11 ... SQL Server 2014 -- T-SQL Enhancements ... 250 7.12 ... SQL Server 2016/2017 -- T-SQL Enhancements ... 250 7.13 ... SQL Server 2019 -- T-SQL Enhancements ... 253 7.14 ... Dynamische Datenmaskierung (Dynamic Data Masking, DDM) ... 253 7.15 ... UTF-8-Unterstützung ab SQL Server 2019 ... 267
8. PowerShell ... 269
8.1 ... Warum PowerShell? ... 269 8.2 ... Was bietet PowerShell? ... 270 8.3 ... Wie wird PowerShell installiert und aufgerufen? ... 271 8.4 ... Beispiel: Anzeigen der Instanzen von SQL Server in HTML ... 276 8.5 ... DBATOOLS -- PowerShell-Skripte für den Administrator ... 277 8.6 ... SQLWATCH -- ein Open-Source-Monitoring-Projekt ... 277
9. Backup und Restore ... 279
9.1 ... Sicherungsverfahren ... 279 9.2 ... Wiederherstellungsmodelle (Recovery Model): Ein Überblick über die Backup-Möglichkeiten ... 281 9.3 ... Sicherung von Dateigruppen ... 287 9.4 ... Systemdatenbanken richtig sichern und wiederherstellen ... 287 9.5 ... Datenbank-Snapshots: Datenbankzustände konservieren und wiederherstellen ... 287 9.6 ... Backup-Strategie ... 292 9.7 ... Medien ... 295 9.8 ... Workshops: Datenbanken mit verschiedenen Methoden richtig sichern ... 299
10. SQL-Server-Sicherheit ... 321
10.1 ... Das SQL-Server-Authentifizierungskonzept ... 321 10.2 ... Serverrollen ... 330 10.3 ... Authentifizierungsstufe »Datenbank« -- Datenbankberechtigungen ... 337 10.4 ... Eigenständige Datenbanken ... 349 10.5 ... Berechtigungen auf allen Ebenen ... 356 10.6 ... Schemas ... 374 10.7 ... Datenverschlüsselung mit Zertifikaten und Schlüsseln ... 378 10.8 ... Verbindungsserver/Delegation (Linked Server) ... 394 10.9 ... Eine Einführung in SQL-Server-Container ... 400
11. Automatisieren von administrativen Aufgaben ... 405
11.1 ... Der SQL Server Agent ... 406 11.2 ... Erstellen von Aufträgen und Ausführen von SSIS-Paketen ... 406 11.3 ... Wartungspläne (Maintenance Plans) und T-SQL-Skripte ... 414 11.4 ... Konfigurieren des SQL Server Agents ... 424 11.5 ... Was sind Proxy-Konten, und welche Bedeutung kommt ihnen zu? ... 430 11.6 ... Automatische Optimierung (automatic tuning options) ... 430 11.7 ... Machine Learning Services ... 432
12. Einrichten von Warnungen und Benachrichtigungen ... 433
12.1 ... Konfigurieren von Datenbank-E-Mail ... 433 12.2 ... Einrichten von Warnungen ... 447 12.3 ... Anlegen von Operatoren ... 452 12.4 ... Warnungen zu Leistungsstatus, Fehlernummern und WMI ... 455
13. Skalierbarkeit von SQL Server ... 457
13.1 ... Verteilen der SQL-Server-Dienste ... 458 13.2 ... SQL Server und NLB-Cluster ... 459 13.3 ... Skalierung der Analysis Services ... 462 13.4 ... Skalierbare freigegebene Datenbanken ... 463 13.5 ... Skalierbarkeit von Datenbanken mit Hilfe der Peer-to-Peer-Transaktionsreplikation ... 464 13.6 ... AlwaysOn -- nicht nur ein Thema für Hochverfügbarkeit ... 464 13.7 ... Service Broker -- Skalierung für Entwickler ... 465 13.8 ... Workshop -- SQL Server in der Cloud installieren ... 470
14. Verteilung von Daten -- Replikation ist kein Hexenwerk ... 487
14.1 ... Einführung in die Replikation ... 487 14.2 ... Die Rollenverteilung bei einer Replikation ... 492 14.3 ... Replikationsarten ... 493
15. Hochverfügbarkeitslösungen ... 517
15.1 ... Hochverfügbarkeit -- was ist das eigentlich genau? ... 518 15.2 ... Lastenausgleich durch Network Load Balancing (NLB) ... 519 15.3 ... Failover-Cluster ... 521 15.4 ... Clusterarten ... 525 15.5 ... Datenbankspiegelung ... 526 15.6 ... Protokollversand ... 535 15.7 ... Kombinieren von Lösungen für hohe Verfügbarkeit ... 537 15.8 ... AlwaysOn -- Mission Critical, die neue Hochverfügbarkeitslösung ... 539 15.9 ... SSIS und AlwaysOn ... 543 15.10 ... Workshop I: Einrichten einer Datenbankspiegelung ... 543 15.11 ... Workshop II: Einrichten des Protokollversands ... 554 15.12 ... Workshop III: Einrichten von AlwaysOn ... 562
16. Überwachen von SQL Server ... 581
16.1 ... Überwachen der SQL-Server-Aktivität mit SQL Server Monitor ... 581 16.2 ... Ablaufverfolgung von SQL Server mit dem Profiler ... 585 16.3 ... Erweiterte Ereignisse (Extended Events) ... 592 16.4 ... Die Windows-Leistungsüberwachung (Performance Monitor) ... 599 16.5 ... Synchronisation von Windows-Leistungsüberwachungs- und SQL-Server-Profiler-Dateien ... 603 16.6 ... SQLdiag ... 605 16.7 ... SQL-Server-Auditing ... 608 16.8 ... Konfigurieren des Datenauflisters (Data Collection) ... 617
21. ETL-Prozesse mit den Integration Services ... 763
21.1 ... Möglichkeiten zum Massenimport ... 764 21.2 ... Der Import/Export-Assistent ... 768 21.3 ... SSIS-Anwendungen: Erstellen von DTSX-Paketen mit den SQL Server Data Tools ... 772 21.4 ... Erstellen von Wartungsplänen mit den SQL Server Data Tools ... 803
22. Parallel Data Warehouse (PDW) ... 805
22.1 ... Grundlagen und Schlüsselmerkmale ... 805 22.2 ... Auch in Azure gibt es DWH-Lösungen ... 806 22.3 ... Symmetrisches Multiprocessing ... 807 22.4 ... Massive parallele Verarbeitung ... 807 22.5 ... Parallel Data Warehouse -- Architektur ... 809 22.6 ... Parallel Data Warehouse -- Knoten ... 811 22.7 ... Datenlayout -- PDW-Schemadesign ... 814 22.8 ... Verwaltung ... 816
23. Die Reporting Services ... 817
23.1 ... Neuerungen in den Reporting Services ... 817 23.2 ... Bereitstellung und Skalierung der Reporting Services ... 819 23.3 ... Installation und Konfiguration im einheitlichen Modus ... 822 23.4 ... Workshops ... 837
24. Analysis Services -- Datenanalyse für jedermann ... 863
24.1 ... Beispielszenario für ein Analysis-Services-Projekt ... 863 24.2 ... Was sind die SQL Server Analysis Services (SSAS)? ... 865 24.3 ... Microsoft Excel und Analysis Services ... 872 24.4 ... Das Sicherheitskonzept der Analysis Services ... 872 24.5 ... SQL Server -- PowerPivot und DAX ... 874 24.6 ... PolyBase ... 875 24.7 ... Machine Learning und R ... 877
25. Big Data -- Analysewerkzeuge für SQL Server ... 879
25.1 ... Daten und der Umgang damit ... 879 25.2 ... Was ist eigentlich Big Data? ... 879 25.3 ... Microsoft Big Data Cluster für SQL Server ... 880 25.4 ... Bereitstellung von Big Data Clusters für SQL Server ... 881 25.5 ... Fazit ... 881
Aussichten: Was bringt die Zukunft? ... 883 Anhang: Deutsch - Englisch/Englisch - Deutsch ... 887 Index ... 923
Know-how und Werkzeuge für Troubleshooting und Performance-Tuning
Mit dem Microsoft SQL Server verwalten Sie große Datenmengen sicher und effizient. Wie die Administration in Produktivumgebungen gelingt, zeigt Ihnen dieses Praxishandbuch. Ob es um die hybride Nutzung in der Cloud geht oder um die richtige Wartung, Backups & Replikation, Skalierbarkeit, Hochverfügbarkeit oder Monitoring: Hier finden Sie alle relevanten Themenbereiche erklärt. Anschauliche Workshops und praxisnahe Hinweise lassen sich direkt auf Ihre tägliche Arbeit einsetzen.
Aus dem Inhalt:
- Installation und Konfiguration
- Server-Sicherheit
- Backup und Recovery
- PowerShell und T-SQL
- Automatisierung
- Skalierbarkeit
- Replikation
- Hochverfügbarkeitslösungen
- Überwachung (Monitoring)
- Troubleshooting und Performance-Tuning
- Komponenten für Entwickler (Master Data Services, StreamInsight)
Daniel Caesar ist seit 20 Jahren selbstständig als Berater, Entwickler und Trainer tätig. Er betreut mit seiner Firma sqlXpert gemeinsam mit seinem Partner Michael Friebel zahlreiche Projekte im deutschsprachigen Raum. Als zertifizierter Microsoft-Trainer (MCT), Spezialist in den Bereichen Microsoft SQL Server, .NET und SharePoint gibt er im deutschsprachigen Raum Seminare, hält Workshops und unterstützt viele Kunden in Projekten. Sein Fachwissen als Entwickler und im administrativen Bereich hat er sich über viele Jahre in Projekten, Trainings und Zertifizierungsprogrammen angeeignet. So ist er unter anderem MCP, MCTS, MCITP und Microsoft Certified Trainer für den SQL Server, SharePoint und .NET-Technologien seit mehreren Versionen.