Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
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.2.1 SQL Server 2012: Hochverfügbarkeit
32
1.2.2 SQL Server 2012: SQL Server AlwaysOn
33
1.2.3 SQL Server 2012: Skalierbarkeit und Performance
33
1.2.4 SQL Server 2012: Columnstore-Indizes
34
1.2.5 SQL Server 2012: FileTable
34
1.2.6 SQL Server 2012: Volltextsuche
34
1.2.7 SQL Server 2012: Benutzerdefinierte Serverrollen
35
1.2.8 SQL Server 2012: SQL Server 2012 – Contained Database
35
1.2.9 SQL Server 2012: Distributed Replay
36
1.2.10 SQL Server 2012: SQL-Server-Audit-Erweiterungen
36
1.2.11 SQL Server 2012: Management Pack für Hochverfügbarkeit
36
1.2.12 SQL Server 2012: Windows Server Core
36
1.2.13 SQL Server 2012: PHP-Treiber
37
1.2.14 SQL Server 2012: LocalDB-Laufzeitumgebung
37
1.2.15 SQL Server 2012: SQL Server Data Tools (SSDT)
37
1.2.16 SQL Server 2012: Data Quality Services
38
1.2.17 SQL Server 2012: PowerView – Report- und Analysetool
38
1.2.18 SQL Server 2012: Reporting als SharePoint Shared Service
38
1.2.19 SQL Server 2012: SSIS-Bereitstellung von Projekten und Paketen
38
1.2.20 SQL Server 2012: Tabellarische Projekte in den SQL Server Data Tools
39
1.2.21 SQL Server 2014: Verbesserungen der Skalierbarkeit, Leistung und Performance
39
1.2.22 SQL Server 2014: Support und Diagnose erfahren eine deutliche Vereinfachung
39
1.3 SQL Server 2016 – wichtige Neuerungen im Überblick
40
1.3.1 SQL Server 2016: Verbesserungen des Datenbankmoduls
40
1.3.2 SQL Server 2016: Analysis Services (SSAS)
41
1.3.3 SQL Server 2016: Integration Services (SSIS)
41
1.3.4 SQL Server 2016: Master Data Services (MDS)
42
1.3.5 SQL Server 2016: Reporting Services (SSRS)
42
1.3.6 Das neue MS SQL Server Management Studio (SSMS)
42
1.4 SQL Server 2017 – wichtige Neuerungen im Überblick
43
1.4.1 SQL Server 2017: Datenbank-Engine (Database Engine)
43
1.4.2 SQL Server 2017: Integration Services (SSIS)
45
1.4.3 SQL Server 2017: Master Data Services (MDS)
46
1.4.4 SQL Server 2017: Analysis Services (SSAS)
46
1.4.5 SQL Server 2017: Reporting Services (SSRS)
47
1.4.6 SQL Server 2017: Machine Learning
47
1.5 SQL Server 2019 – Aussichten auf die Neuerungen im Überblick
48
1.5.1 Die Datenbank-Engine
51
1.5.2 Datenbank-Kompatibilitätsgrad (CTP 2.0)
53
1.5.3 UTF-8-Unterstützung (CTP 2.0)
53
1.5.4 Erstellung fortsetzbarer Onlineindizes (CTP 2.0)
53
1.5.5 Erstellen und erneutes Erstellen von gruppierten Columnstore-Indizes (online) (CTP 2.0)
54
1.5.6 Always Encrypted mit Secure Enclaves (CTP 2.0)
54
1.5.7 Intelligente Abfrageverarbeitung (CTP 2.0)
55
1.5.8 Erweiterungen für die Programmierbarkeit der Java-Sprache (CTP 2.0)
56
1.5.9 SQL-Graphfeatures
57
1.5.10 Datenbankweit gültige Standardeinstellung für Online- und fortsetzbare DDL-Vorgänge (CTP 2.0)
57
1.5.11 AlwaysOn-Verfügbarkeitsgruppen: Erhöhung synchroner Replikate (CTP 2.0)
58
1.5.12 Datenermittlung und -klassifizierung (CTP 2.0)
58
1.5.13 Erweiterte Unterstützung für Geräte mit beständigem Speicher (CTP 2.0)
59
1.5.14 Hybrider Pufferpool (CTP 2.1)
60
1.5.15 Unterstützung für Columnstore-Statistiken in DBCC CLONEDATABASE (CTP 2.0)
60
1.5.16 Neue Optionen für »sp_estimate_data_compression_savings« (CTP 2.0)
60
1.5.17 Failover-Cluster für SQL Server Machine Learning Services und partitionsbasierte Modellierung (CTP 2.0)
61
1.5.18 Standardmäßig aktivierte LWP-Abfrageinfrastruktur (CTP 2.0)
61
1.5.19 Neue PolyBase-Connectors
61
1.5.20 Rückgabe von Seiteninformationen durch neue »sys.dm_db_page_info«-Systemfunktion (CTP 2.0)
61
1.5.21 SQL Server unter Linux (CTP 2.0)
62
1.5.22 Master Data Services (CTP 2.0)
63
1.5.23 Sicherheit (CTP 2.0)
63
1.5.24 Tools für den SQL Server
64
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.4.1 Größe der Auslagerungsdatei bestimmen
70
2.5 RAID und SAN – Konfiguration
70
2.5.1 RAID 0: Stripe Set
71
2.5.2 RAID 1: Spiegelung
72
2.5.3 RAID 5: Stripe Set mit Parität
73
2.5.4 RAID 01
73
2.5.5 RAID 10
74
2.5.6 Hardwareschnittstellen
75
2.6 SQL Server und virtuelle Umgebungen – was ist zu beachten?
75
2.7 Ausblick auf zukünftige Technologien – Storage im Netz
76
2.7.1 Microsoft Azure: SQL Server in der Cloud
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.5.1 Developer Edition
81
3.5.2 Web Edition
81
3.5.3 Express Edition
82
3.5.4 Compact Edition
82
3.5.5 Microsoft Azure SQL-Datenbank (früher SQL Azure)
83
3.6 Microsoft Azure SQL-Datenbank
84
3.6.1 Überblick
84
3.6.2 Technologie und Zugriff
85
3.7 Zusammenfassung
88
4 Installation von SQL Server und Aktualisierung auf neue Versionen
89
4.1 Überlegungen zur Installation
90
4.1.1 Sprachen und landesspezifische Anpassungen – Sortierreihenfolge
91
4.1.2 Windows- versus SQL-Server-Authentifizierung
92
4.1.3 Sicherheitsbetrachtungen – die Wahl der richtigen Dienstkonten
92
4.1.4 Aktualisierung auf SQL Server 2017/2019
93
4.2 Vorbereitung – Was Sie vor der Installation erledigen sollten
94
4.3 Die vollständige Installation
95
4.3.1 Der Installationsprozess im Detail
96
4.3.2 SQL Server und mehrere Instanzen
117
4.3.3 Installation und Konfiguration der Reporting Services
119
4.3.4 Installation des Management Studios
119
4.4 Durchführen einer unbeaufsichtigten Installation
120
4.4.1 Vorbereitungen
120
4.4.2 Installation mit einer INI-Datei
121
4.4.3 Installation mit Parameterangaben
126
4.4.4 Vorbereitung einer Installation mit Sysprep
127
4.5 Installation einer Instanz unter Linux
127
4.5.1 SQL Server 2017 Linux installieren
129
4.5.2 SQL-Server-Befehlszeilentool installieren
131
4.6 Installation einer Instanz in der Cloud
133
4.6.1 Installation einer SQL Server-Instanz in Azure
133
5 Konfigurieren von SQL Server
135
5.1 Der SQL Server-Konfigurations-Manager
135
5.1.1 Die Dienste von SQL Server
135
5.1.2 Clientkonfiguration, Alias und Protokolle
136
5.1.3 Deaktivieren nicht benötigter Dienste
137
5.1.4 Ausblenden einer Instanz des SQL-Server-Datenbankmoduls
137
5.2 Die SQL-Server-Protokolle
138
5.2.1 Shared Memory
138
5.2.2 TCP/IP
138
5.2.3 Erweiterter Schutz
139
5.2.4 Service Principal Name (SPN)
140
5.2.5 Named Pipes
141
5.2.6 Verschlüsselung der Kommunikation
141
5.3 SQL-Server-Startparameter
145
5.4 »sqlcmd« – das Tool für die Kommandozeile
148
5.5 Die Konfiguration der Instanz
150
5.5.1 Serveroptionen mit dem Management Studio konfigurieren
150
5.5.2 Serveroptionen mithilfe der Prozedur »sp_configure« konfigurieren
152
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
5.9.1 Technologie von Utility Control Points
167
5.9.2 Der Hilfsprogramm-Explorer
167
5.9.3 Einrichten eines Utility Control Points auf einer Instanz von SQL Server
167
5.9.4 Workshop: Registrieren eines Service Principal Names (SPN)
174
5.9.5 Workshop: Konfiguration der Windows-Firewall für eine Standardinstanz von SQL Server
177
6 Die SQL-Server-Systemdatenbanken im Überblick
181
6.1 Aufbau und Funktionsweise von SQL-Server-Systemdatenbanken
182
6.1.1 Zusammenhänge – Wiederherstellungsmodell (Recovery Model), Sicherung (Backup) der Datenbank und Transaktionsprotokoll (Transaction Log)
182
6.1.2 Die Ressourcen- und Distributionsdatenbank
184
6.2 Verschieben (Move) von Systemdatenbanken
184
6.3 Neuerstellen von Systemdatenbanken
187
6.4 Konfigurieren von Systemdatenbanken
190
6.4.1 Die MASTER-Datenbank
190
6.4.2 Die MODEL-Datenbank
192
6.4.3 Die MSDB-Datenbank
193
6.4.4 Die TEMPDB
194
7 Grundlegendes Know-how für Administratoren und Entwickler
195
7.1 SQL Server verwalten – SQL Server Management Studio (SSMS)
195
7.1.1 Starten des SQL Server Management Studios
196
7.1.2 Grundlegender Aufbau des SQL Server Management Studios
196
7.1.3 Der Objekt-Explorer
197
7.1.4 Abfrage-Editor-Fenster
199
7.1.5 Management-Studio-Berichte
200
7.1.6 Verwalten verschiedener SQL-Serverinstanzen und -versionen
201
7.1.7 Vorlagen-Explorer und Vorlagenparameter – Schablonen erleichtern die Arbeit
203
7.1.8 Der »Skript«-Button – eigentlich ist alles T-SQL
205
7.1.9 IntelliSense – Unterstützung zur passenden Zeit
207
7.2 Dynamische Verwaltungssichten (Dynamic Management Views, DMV), Katalogsichten
209
7.2.1 Katalogsichten (Catalog Views)
209
7.2.2 Dynamische Verwaltungssichten
210
7.2.3 Informationen und Leistungsdaten rundherum
211
7.2.4 Scripting mit T-SQL
211
7.3 Datenbanken anlegen
215
7.3.1 Was geschieht beim Erstellen einer Datenbank?
216
7.3.2 Dateigruppen – Strategie zur Verteilung von Objekten auf Datenträgern
217
7.3.3 Fehler finden – Debuggen von T-SQL
220
7.4 T-SQL – Die wichtigsten Befehle für den Administrator
222
7.4.1 DML – SELECT, INSERT, UPDATE, DELETE
222
7.4.2 DDL – CREATE, ALTER, DROP
224
7.5 Views – Daten aus anderen Perspektiven
225
7.6 Benutzerdefinierte Funktionen
227
7.6.1 Anlegen, Anzeigen und Löschen von benutzerdefinierten Funktionen
227
7.6.2 Aufrufen von benutzerdefinierten Funktionen
228
7.7 Gespeicherte Prozeduren
229
7.7.1 Erstellen von gespeicherten Prozeduren
230
7.7.2 Anzeigen und Löschen von gespeicherten Prozeduren im SQL Server Management Studio
231
7.7.3 Gespeicherte Prozeduren, Parameter und Rückgabewerte
231
7.7.4 Gespeicherte Prozeduren ausführen
234
7.8 Wichtige gespeicherte Prozeduren
235
7.8.1 »sp_help«
236
7.8.2 »sp_helpdb«
236
7.8.3 »sp_monitor«
237
7.8.4 Erweiterte Systemprozeduren
238
7.8.5 Wichtige Funktionen
238
7.8.6 Die »IDENTITY«-Eigenschaft
238
7.9 Trigger
239
7.9.1 DML-Trigger
240
7.9.2 Die Trigger-Tabellen »inserted« und »deleted«
241
7.9.3 Ein Trigger für alle Fälle
243
7.9.4 Trigger und Cursorschleifen
245
7.9.5 Die UPDATE()-Funktion
248
7.9.6 DDL-Trigger
248
7.9.7 Zum richtigen Umgang mit Triggern
249
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.14.1 Maskierungsfunktionen
254
7.14.2 Wie funktioniert das?
255
7.14.3 Zusammenfassung
267
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.2.1 Cmdlets (Commandlets)
270
8.2.2 PowerShell-Anbieter (Provider)
271
8.2.3 PowerShell-Skripte
271
8.3 Wie wird PowerShell installiert und aufgerufen?
271
8.3.1 PowerShell aus SQL Server Management Studio aufrufen
272
8.3.2 PowerShell über »sqlps« aufrufen
272
8.3.3 PowerShell über die Windows PowerShell aufrufen
274
8.3.4 PowerShell über den Agent ausführen
276
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.1.1 Vollständige Sicherung (Full Backup)
280
9.1.2 Differenzielle Sicherung (Differential Backup)
280
9.1.3 Transaktionsprotokoll-Sicherung (Transaction Log Backup)
280
9.1.4 Sicherung des Protokollfragments (Tail-Log Backup)
280
9.1.5 Teilsicherung (Partial Backup)
281
9.1.6 Dateigruppensicherung (Filegroup Backup)
281
9.2 Wiederherstellungsmodelle (Recovery Model): Ein Überblick über die Backup-Möglichkeiten
281
9.2.1 Das Wiederherstellungsmodell »Einfach« (recovery model »Simple«)
283
9.2.2 Das Wiederherstellungsmodell »Vollständig« (recovery model »Full«)
283
9.2.3 Massenprotokolliert
286
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.5.1 Wie wird ein Snapshot erzeugt?
289
9.5.2 Wie ist die Snapshot-Technologie mit Sicherung und Wiederherstellung in Einklang zu bringen?
290
9.5.3 Überlegungen zum Einsatz von Snapshots
291
9.6 Backup-Strategie
292
9.6.1 Strategie für vollständige Datenbanksicherungen
293
9.6.2 Strategie für Datenbank- und Transaktionsprotokoll-Sicherung
293
9.6.3 Weitere Backup-Strategien
295
9.7 Medien
295
9.7.1 Logische Sicherungsmedien (Backup Devices)
297
9.7.2 Datenträgersicherungsmedien
298
9.7.3 Zusammenfassung
299
9.8 Workshops: Datenbanken mit verschiedenen Methoden richtig sichern
299
9.8.1 Szenario 1: Einfache, vollständige Sicherung einer Datenbank
299
9.8.2 Szenario 2: Wiederherstellen einer Datenbank aus einer Vollsicherung
303
9.8.3 Szenario 3: Wiederherstellen der Systemdatenbank MASTER aus einer Sicherung
306
9.8.4 Szenario 4: Sichern und Wiederherstellen einer Datenbank im vollständigen Wiederherstellungsmodus und Nachziehen der zugehörigen Transaktionsprotokoll-Sicherungen
311
10 SQL-Server-Sicherheit
321
10.1 Das SQL-Server-Authentifizierungskonzept
321
10.1.1 Authentifizierungsstufe »Server«: Serverberechtigungen
322
10.1.2 Windows-Authentifizierung
325
10.1.3 SQL-Server-Authentifizierung
326
10.2 Serverrollen
330
10.2.1 Was sind Serverrollen?
330
10.2.2 Die Rolle »public«
331
10.2.3 Eigene Serverrollen
332
10.2.4 Workshop: Zuweisen einer SQL-Anmeldung zu einer festen Serverrolle
332
10.2.5 Workshop: Zuweisen separater Berechtigungen zu SQL-Server-Anmeldungen
334
10.3 Authentifizierungsstufe »Datenbank« – Datenbankberechtigungen
337
10.3.1 Direkte Zuordnung von Datenbanken zu einer SQL-Server-Anmeldung
339
10.3.2 Datenbankbenutzer nachträglich anlegen und zuordnen
341
10.3.3 Datenbankbenutzer »guest«
343
10.3.4 Der Datenbankbenutzer »dbo«
344
10.3.5 Das Problem der verwaisten Benutzer (Orphaned Users)
344
10.4 Eigenständige Datenbanken
349
10.4.1 Was sind eigenständige Datenbanken?
349
10.4.2 Workshop: Aktivieren der Unterstützung von eigenständigen Datenbanken
352
10.4.3 Anlegen eines Datenbankbenutzers für eigenständige Datenbanken
353
10.4.4 Workshop: Anmelden am Management Studio mit einem enthaltenen Datenbankbenutzer
354
10.5 Berechtigungen auf allen Ebenen
356
10.5.1 Datenbank-Zugriffsberechtigungen setzen
357
10.5.2 Zugriffsberechtigungen aus Perspektive des Datenbankbenutzers setzen
360
10.5.3 Datenbankrollen
363
10.5.4 Workshop: Anlegen einer Datenbankrolle
366
10.6 Schemas
374
10.6.1 Workshop: Anlegen eines Schemas – Buchhaltung mit dem Management Studio
375
10.7 Datenverschlüsselung mit Zertifikaten und Schlüsseln
378
10.7.1 Schlüssel, Zertifikate und Algorithmen
379
10.7.2 Datenverschlüsselung
380
10.7.3 Workshops: Verschlüsseln und Entschlüsseln von Daten
382
10.7.4 Transparente Datenverschlüsselung (Transparent Data Encryption, TDE)
388
10.7.5 Kommunikationsverschlüsselung
390
10.7.6 Sichern und Wiederherstellen von Zertifikaten und Schlüsseln
393
10.8 Verbindungsserver/Delegation (Linked Server)
394
10.8.1 Anlegen eines Verbindungsservers mit Zugriff auf eine weitere SQL-Server-Instanz mit dem Management Studio
394
10.8.2 Delegation
400
10.9 Eine Einführung in SQL-Server-Container
400
10.9.1 Container und der Docker-Container-Standard
400
10.9.2 Container für die SQL-Server-Entwicklung und die Qualitätssicherung (QA – Quality Assurance)
401
10.9.3 Eine Einleitung in den Gebrauch von SQL-Server-Containern
402
10.9.4 Fazit
403
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.2.1 Workshop: Anlegen eines Agent-Auftrags
407
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.6.1 Automatische Plankorrektur (Automatic Plan Correction)
431
11.6.2 »CREATE INDEX« und »DROP INDEX«
431
11.7 Machine Learning Services
432
11.7.1 Was ist das überhaupt?
432
12 Einrichten von Warnungen und Benachrichtigungen
433
12.1 Konfigurieren von Datenbank-E-Mail
433
12.1.1 Aktivieren von Datenbank-E-Mail
434
12.1.2 Einrichten eines E-Mail-Profils
435
12.2 Einrichten von Warnungen
447
12.3 Anlegen von Operatoren
452
12.4 Warnungen zu Leistungsstatus, Fehlernummern und WMI
455
12.4.1 SQL-Server-Ereigniswarnung (SQL Server event alert)
455
12.4.2 SQL-Server-Leistungsstatuswarnung (SQL Server performance condition alert)
455
12.4.3 WMI-Ereigniswarnung (WMI event alert)
456
13 Skalierbarkeit von SQL Server
457
13.1 Verteilen der SQL-Server-Dienste
458
13.2 SQL Server und NLB-Cluster
459
13.2.1 Reporting Services und Lastenausgleich
459
13.2.2 Failover-Cluster
460
13.2.3 SQL-Server-Protokollversand (Transaction Log Shipping)
461
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.7.1 Nachrichtentypen
466
13.7.2 Verträge
466
13.7.3 Warteschlangen
467
13.7.4 Dienste
467
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.1.1 Replikations-Agent
489
14.1.2 Speicherplatz und Zeitpläne
491
14.2 Die Rollenverteilung bei einer Replikation
492
14.2.1 Verleger (publisher)
492
14.2.2 Verteiler (distributor)
492
14.2.3 Abonnent (subscriber)
493
14.3 Replikationsarten
493
14.3.1 Die Snapshot-Replikation (Snapshot Replication)
493
14.3.2 Die Transaktionsreplikation (Transactional Replication)
494
14.3.3 Die Merge-Replikation (Merge Replication)
495
14.3.4 HTTP-Merge-Replikation – Websynchronisierung
496
14.3.5 Die Peer-to-Peer-Replikation (Peer-to-Peer Replication)
497
14.3.6 Bidirektionale Replikation (Bidirectional Replication)
497
14.3.7 Entscheidungsfaktoren für eine Replikationsart
498
14.3.8 Workshop: Einrichten einer Transaktionsreplikation
498
15 Hochverfügbarkeitslösungen
517
15.1 Hochverfügbarkeit – was ist das eigentlich genau?
518
15.1.1 Definition der Hochverfügbarkeit (High Availability/HA)
518
15.1.2 Einteilung der Verfügbarkeitsklassen
518
15.2 Lastenausgleich durch Network Load Balancing (NLB)
519
15.3 Failover-Cluster
521
15.3.1 iSCSI und Fibre Channel (FC)
523
15.3.2 Cluster-Ressourcen
523
15.3.3 Quorumdatenträger
524
15.3.4 Clusterknoten
524
15.3.5 Verhindern von Netzwerkausfällen beim Failover-Cluster
524
15.4 Clusterarten
525
15.4.1 Standardcluster
525
15.4.2 Hauptknotensatz-Cluster
526
15.5 Datenbankspiegelung
526
15.5.1 Betriebsarten einer Datenbankspiegelung
528
15.5.2 Der Clientzugriff
529
15.5.3 SQL-Server-Endpunkte
530
15.5.4 Erzwingen eines Failovers auf die Spiegeldatenbank
532
15.5.5 Reparatur fehlerverdächtiger Seiten
533
15.5.6 Überlegungen zum Schutz der Datenbankspiegelung
534
15.5.7 Fazit
534
15.6 Protokollversand
535
15.6.1 Einsatzszenarien für eine Lösung mit dem Protokollversand
536
15.6.2 Grundlagen einer Protokollversandlösung
537
15.7 Kombinieren von Lösungen für hohe Verfügbarkeit
537
15.7.1 Kombination Protokollversand und Lastenausgleich
538
15.7.2 Kombination Protokollversand, Datenbankspiegelung und Lastenausgleich
538
15.8 AlwaysOn – Mission Critical, die neue Hochverfügbarkeitslösung
539
15.8.1 Failover
541
15.8.2 Voraussetzungen und Einschränkungen
541
15.8.3 Voraussetzungen und Einschränkungen SQL Server
541
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.1.1 Bereich »Übersicht« (»Overview«)
583
16.1.2 Bereich »Prozesse« (»Processes«)
584
16.1.3 Bereich »Ressourcenwartevorgänge« (»Ressource Waits«)
584
16.1.4 Bereich »Datendatei-E/A« (»Data File I/O«)
584
16.1.5 Bereich »Letzte wertvolle Abfragen« (»Recent Expensive Queries«)
584
16.1.6 Bereich »Aktuelle wertvolle Abfragen« (»Active Expensive Queries«)
585
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.7.1 Überwachen der Login-Aktivität
609
16.7.2 SQL-Server-Überwachung
610
16.7.3 C2-Überwachung mit SQL Server
615
16.7.4 Common Criteria
616
16.8 Konfigurieren des Datenauflisters (Data Collection)
617
16.8.1 Was ist ein VDWH?
617
16.8.2 Einrichten eines Verwaltungs-Data-Warehouse
618
16.8.3 Anzeige und Auswertung der Daten
623
16.8.4 Arbeiten mit dem Extended Event Profiler
625
17 Hilfreiche Tools von Drittherstellern
631
17.1 Monitoring
631
17.2 Backup
632
17.3 Analyse
633
17.4 DBA-Tätigkeiten
634
17.5 Die Onlinegemeinde
635
18 Problembehebung und Performance-Tuning
637
18.1 Richtiges Verwalten von Daten
637
18.2 Daten lesen und schreiben
639
18.2.1 Lesen von Daten
640
18.2.2 Aktualisieren von Daten
640
18.3 Wie werden Abfragen ausgeführt?
641
18.3.1 Erstellung eines Ausführungsplans
642
18.3.2 Der Plancache und die Wiederverwendung von Ausführungsplänen
642
18.3.3 SQL-Ausführungspläne richtig lesen
643
18.4 Der Datenbankoptimierungsratgeber
646
18.4.1 Beschreibung der Vorgehensweise
650
18.4.2 Registerkarte »Allgemein« (»General«)
651
18.4.3 Registerkarte »Optimierungsoptionen« (»Tuning Options«)
652
18.4.4 Registerkarte »Status« (»Progress«)
656
18.4.5 Registerkarte »Empfehlungen« (»Recommendations«)
659
18.4.6 Registerkarte »Berichte« (»Reports«)
662
18.4.7 Fragen und Antworten
663
18.5 Ressourcenkontrolle (Resource Governor)
667
18.5.1 Ressourcenpools
667
18.5.2 Arbeitsauslastungsgruppen
668
18.5.3 Klassifizierungsfunktion
668
18.6 Indizes: Wichtiges Mittel für eine gute Performance
673
18.6.1 Was ist ein Index?
673
18.6.2 Gruppierte Indizes (clustered indexes)
674
18.6.3 Nicht gruppierte Indizes (non-clustered indexes)
674
18.6.4 Gefilterte Indizes (filtered index)
675
18.6.5 Columnstore-Indizes: spaltenbasierte Indizes
675
18.6.6 Anlegen von Indizes
677
18.6.7 Anzeigen von Indizes im Management Studio
678
18.6.8 Indizierte Sichten
679
18.6.9 Ermitteln fehlender Indizes
679
18.7 Statistiken und Wartungspläne (maintenance plans)
683
18.8 Datenkomprimierung
685
18.8.1 Zeilenkomprimierung
686
18.8.2 Seitenkomprimierung
687
18.8.3 Unicode-Komprimierung
687
18.8.4 Komprimierung aktivieren
687
18.9 Change Data Capture
688
18.10 Datenbankoperationen
692
18.10.1 Transaktionen
692
18.10.2 Isolation Level
695
18.11 Parallelitätsprobleme (Deadlocks)
700
18.11.1 Erzeugen eines Deadlocks
700
18.12 Partitionierung – wenn Tabellen sehr groß werden
704
18.13 In-Memory OLTP (Online Transaction Processing)
707
18.13.1 Wie gehen wir vor?
708
18.14 Zusammenfassung der Performancethemen
716
19 Applikations- und Multiserver-Verwaltung
719
19.1 Vorteile und Einsatz der Multiserver-Verwaltung
719
19.1.1 Einrichten eines Masterservers
719
19.1.2 Definieren von Wartungsplänen und Aufträgen für Masterserver
725
19.1.3 Verwalten von Ziel- und Masterservern (Target and Master Servers)
727
19.2 DAC – Datenebenenanwendung (data-tier application)
727
19.2.1 Registrieren einer DAC-Anwendung im Management Studio
729
19.3 Registrierte SQL Server und Servergruppen
734
19.4 Zentraler Verwaltungsserver (Central Management Server)
740
20 Weitere Komponenten für Entwickler und Anwender
745
20.1 Master Data Services
745
20.1.1 Master Data Services installieren
746
20.2 StreamInsight
749
20.2.1 Die Architektur von StreamInsight
751
20.2.2 StreamInsight installieren
752
20.2.3 Weiterführende Informationen
756
20.3 Data Quality Services
756
20.3.1 Was sind die Data Quality Services?
756
20.3.2 Installation und Einrichtung
758
20.3.3 Der Data Quality Client
759
20.4 Columnstore-Indizes (Columnstore Indexes)
760
20.4.1 Was ist ein Columnstore Index?
760
20.4.2 Wann sollten Sie Columnstore Indexes einsetzen?
761
20.4.3 Einsatz von Columnstore Indexes
761
21 ETL-Prozesse mit den Integration Services
763
21.1 Möglichkeiten zum Massenimport
764
21.1.1 Bulk Copy (»bcp«) – schnell im- und exportieren
764
21.1.2 BULK INSERT
765
21.1.3 OPENROWSET
766
21.2 Der Import/Export-Assistent
768
21.3 SSIS-Anwendungen: Erstellen von DTSX-Paketen mit den SQL Server Data Tools
772
21.3.1 Der Datenflusstask
777
21.3.2 Ereignishandler (Event Handlers)
790
21.3.3 SSIS-Paketkonfiguration
794
21.3.4 Protokollierung
798
21.3.5 Bereitstellen von Paketen
800
21.3.6 SSIS-Pakete auf SQL Server 2019 aktualisieren
801
21.3.7 Der Integration-Services-Katalog
801
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.4.1 Datenzugriff
808
22.4.2 Parallele Verarbeitung
808
22.5 Parallel Data Warehouse – Architektur
809
22.5.1 Hub-and-Spoke-Architektur
810
22.6 Parallel Data Warehouse – Knoten
811
22.6.1 Kontrollknoten
812
22.6.2 Rechenknoten
813
22.6.3 ETL-Prozessknoten
813
22.6.4 Backup-Knoten
813
22.7 Datenlayout – PDW-Schemadesign
814
22.7.1 Verteilung von Datenbanken und Tabellen
814
22.7.2 Tabellen, Sichten und Indizes
815
22.7.3 Daten laden
815
22.7.4 Backup von Daten
816
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.3.1 Die Installation
822
23.3.2 Die Konfiguration
824
23.4 Workshops
837
23.4.1 Erstellen und Veröffentlichen eines Berichts mit Visual Studio
837
23.4.2 Erstellen und Veröffentlichen eines Berichts mit dem Report Builder 3.0
848
23.4.3 Erstellen einer Karte mit dem Kartenassistent des Report Builders
857
24 Analysis Services – Datenanalyse für jedermann
863
24.1 Beispielszenario für ein Analysis-Services-Projekt
863
24.1.1 Analyse aus Sicht eines Fachanwenders
863
24.1.2 Analyse aus Sicht eines Entwicklers
864
24.2 Was sind die SQL Server Analysis Services (SSAS)?
865
24.2.1 Die Familie der Analysis Services
865
24.2.2 OLTP- und OLAP-Datenbanken
866
24.2.3 Dimensions- und Faktentabellen
867
24.2.4 Cube
868
24.2.5 Cube-Operationen
868
24.2.6 MOLAP, ROLAP und HOLAP
869
24.2.7 Berechnungen in den Analysis Services
870
24.2.8 Key Perfomance Indicators
870
24.2.9 Aktionen
870
24.2.10 Partitionen
871
24.2.11 Aggregationen
871
24.2.12 Perspektiven
871
24.2.13 Übersetzungen
872
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.6.1 PolyBase-Kompatibilität
875
24.6.2 Einsatzbereiche für 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