Vorwort | 14 |
1?SQL Server im Business | 16 |
1.1?Kosten | 17 |
1.1.1?Anforderungen berücksichtigen – nicht mehr | 17 |
1.1.2?Konsolidieren der SQL Server-Landschaft | 19 |
1.2?Integration von Cloud-Ressourcen | 20 |
1.3?Der SQL Server jenseits des Datenbankmoduls | 20 |
2?Erweiterte Grundlagen | 22 |
2.1?Instanzen | 22 |
2.1.1?Installieren einer Instanz | 23 |
2.1.2?„Inspektion“ | 34 |
2.2?Identitäten | 37 |
2.2.1?Windows-Benutzer | 38 |
2.2.2?SQL-Benutzer | 43 |
2.3?Schema | 46 |
2.4?Kerberos | 51 |
2.4.1?SPN manuell registrieren | 53 |
2.4.2?Automatische Registrierung des SPN ermöglichen | 53 |
2.4.3?Service Principal Names der anderen SQL Server-Komponenten | 56 |
2.5?Speicheroptimierte Tabellen | 57 |
2.6?Datenbanken auf SQL Server 2014 bringen | 58 |
2.6.1?Inplace-Upgrade des kompletten Servers | 61 |
2.6.2?Einzelne Datenbanken | 65 |
2.6.2.1?Sichern/Wiederherstellen | 66 |
2.6.2.2?Oder: Trennen/Offline und anfügen | 70 |
2.6.2.3?Nacharbeiten | 72 |
3?Hardware und Lizenzen | 74 |
3.1?Die optimale Umgebung für SQL Server | 74 |
3.1.1?Elemente des SQL Server-Servers | 74 |
3.1.2?Prozessoren | 75 |
3.1.2.1?Bedarf an Prozessoren ermitteln | 76 |
3.1.2.2?Geeignete Prozessoren/kleine Prozessorkunde | 77 |
3.1.2.3?Hyperthreading – ja oder nein | 85 |
3.1.2.4?MAXDOP – Maximum Degree of Parallelism | 86 |
3.1.2.5?Anzahl der Kerne pro Edition | 89 |
3.1.2.6?.?.?. und in virtualisierten Umgebungen? | 90 |
3.1.2.7?Performance messen und überwachen | 91 |
3.1.3?Hauptspeicher | 91 |
3.1.4?Festplatten-System | 96 |
3.1.4.1?Dateien, Protokolle, Seiten & Co. | 96 |
3.1.4.2?Platten und I/Os | 106 |
3.1.4.3?Planung und Einrichtung konkret | 120 |
3.1.4.4?Überwachen und messen | 124 |
3.1.5?Netzwerk | 124 |
3.2?Lizenzierung | 124 |
3.2.1?Lizenzmodelle und Richtpreise | 125 |
3.2.2?Virtualisierte Umgebungen | 128 |
3.2.2.1?Lizenzierung individueller virtueller Maschinen | 128 |
3.2.2.2?High Density Virtualization | 129 |
3.2.3?Lizenzierung für hochverfügbare Umgebungen | 129 |
3.2.4?Datenquellen bei der Business Intelligence Edition | 129 |
4?Verfügbarkeit | 132 |
4.1?Virtualisierung | 137 |
4.1.1?„Klassisches Modell“ | 137 |
4.1.2?Hyper V-Replikation | 139 |
4.1.2.1?Hyper V-Replikation vorbereiten | 140 |
4.1.2.2?Hyper V-Replikation für eine virtuelle Maschine einrichten | 142 |
4.2?AlwaysOn-Verfügbarkeitsgruppen | 149 |
4.2.1?Funktionsweise | 149 |
4.2.2?Vorbereitung: Failovercluster-Feature installieren | 151 |
4.2.3?Cluster einrichten | 152 |
4.2.3.1?Der Konfigurationsüberprüfungs-Assistent | 153 |
4.2.3.2?Der Clustererstellungs-Assistent | 158 |
4.2.3.3?Zeugenserver konfigurieren | 161 |
4.2.4?SQL Server installieren | 167 |
4.2.4.1?Basisinstallation | 167 |
4.2.4.2?AlwaysOn vorbereiten | 167 |
4.2.4.3?AlwaysOn konfigurieren | 169 |
4.2.5?Weitere Datenbank(en) hinzufügen | 182 |
4.2.6?Zugriff auf AlwaysOn-Verfügbarkeitsgruppe | 186 |
4.2.7?Kontrollieren | 188 |
4.2.8?Failover | 191 |
4.2.8.1?Geplantes Failover | 191 |
4.2.8.2?Failover nach Absturz | 192 |
4.3?Failoverclustering | 196 |
4.3.1?Funktionsweise | 196 |
4.3.2?iSCSI einrichten | 198 |
4.3.2.1?Initiator einrichten | 198 |
4.3.2.2?iSCSI-Target einrichten | 200 |
4.3.2.3?iSCSI-Initiator mit Target verbinden | 206 |
4.3.3?Failoverclustering (Windows) einrichten | 209 |
4.3.3.1?Feature installieren | 210 |
4.3.3.2?Cluster prüfen | 210 |
4.3.3.3?Cluster erstellen | 211 |
4.3.4?MSDTC installieren (optional) | 212 |
4.3.5?SQL-Cluster installieren | 215 |
4.3.5.1?Erster Knoten | 216 |
4.3.5.2?Weitere Knoten | 226 |
4.3.6?Zugriff auf die geclusterte SQL Server-Instanz | 231 |
4.3.7?Weitere Instanzen installieren | 231 |
4.4?Transaktionsprotokollversand | 232 |
4.4.1?Funktionsweise | 232 |
4.4.2?Einrichtung | 234 |
4.4.3?Betrieb und Überwachung | 241 |
4.4.4?Failover | 244 |
4.5?Datenbankspiegelung | 245 |
5?Backup und Restore | 248 |
5.1?Einige Gedanken und Fakten vorab | 248 |
5.1.1?Servicelevel | 248 |
5.1.2?Wiederherstellungszeit | 250 |
5.1.3?Datenverlustzeit | 252 |
5.1.4?Logische Fehler | 253 |
5.1.5?Katastrophenvorsorge | 253 |
5.1.6?Genügt die Datensicherung(oder: Business Continuity vs. Desaster Recovery)? | 254 |
5.2?Datensicherung mit Bordmitteln | 254 |
5.2.1?Sicherungsstrategie | 254 |
5.2.2?Sicherung durchführen/einfach | 259 |
5.2.3?Sicherung mit Wartungsplan | 263 |
5.2.4?In die Cloud sichern | 279 |
5.2.5?Wiederherstellung | 285 |
5.2.5.1?Rücksicherung der Vollsicherung | 285 |
5.2.5.2?Rücksicherung mit (mehreren) inkrementellen und Transaktionsprotokollsicherungen | 290 |
5.2.5.3?Das Protokollfragment | 294 |
5.2.5.4?Wiederherstellen der Master-Datenbank | 298 |
5.3?Microsoft Data Protection Manager 2012 R2 | 301 |
5.3.1?Hardware-Voraussetzungen | 302 |
5.3.1.1?Festplattenbereich | 302 |
5.3.1.2?Bandgerät | 303 |
5.3.2?Installation | 305 |
5.3.2.1?Voraussetzungen | 306 |
5.3.2.2?DPM | 309 |
5.3.3?Basiskonfiguration | 315 |
5.3.3.1?Plattenspeicher | 316 |
5.3.3.2?Bandroboter (Bibliothek) | 317 |
5.3.3.3?Agenten | 321 |
5.3.3.4?Backup auf Azure | 324 |
5.3.4?Schutzgruppen einrichten | 342 |
5.3.5?Überwachung | 351 |
5.3.6?Berichte/Bandwechsel | 353 |
6?SQL Server und die Cloud – die Cloud und SQL Server | 356 |
6.1?Azure SQL-Datenbank | 357 |
6.1.1?Abgrenzung zu SQL Server auf Azure-VM | 358 |
6.1.2?Einschränkungen der Azure SQL-Datenbanken | 361 |
6.1.3?Azure SQL-Datenbank anlegen | 364 |
6.1.4?Administration des Datenbankservers | 369 |
6.1.5?Datenbank in Azure SQL bereitstellen | 375 |
6.1.6?Nutzung der Azure SQL-Datenbanken durch Azure-Dienste | 379 |
6.2?Virtuelle Maschinen in Azure mit SQL Server | 381 |
6.2.1?Netzwerk erstellen und Site-to-Site-VPN einrichten | 382 |
6.2.2?Virtuelle Maschine im eigenen Azure-Netz erstellen | 392 |
6.2.3?Virtuellen SQL Server erstellen | 395 |
6.2.3.1?Erstellen des virtuellen Servers | 396 |
6.2.3.2?Administrativen Zugriff ermöglichen | 402 |
6.2.3.3?Windows-Firewall und Cloud-Adapter | 405 |
6.2.3.4?Datenbank in Azure SQL-VM bereitstellen | 409 |
6.3?Datenbanken mit Azure-Storage | 417 |
6.3.1?Anlegen des Speichers in Azure | 419 |
6.3.2?Datenbank anlegen | 426 |
6.3.3?Monitoring der Performance | 429 |
6.4?Backup in die Cloud | 430 |
6.5?SQL Server auf Azure-VMs als Notfallrechenzentrum | 431 |
6.5.1?AlwaysOn-Verfügbarkeitsgruppen | 432 |
6.5.2?Transaktionsprotokollversand | 435 |
6.5.3?Datenbankspiegelung | 436 |
7?Überwachung und Monitoring | 438 |
7.1?SQL Server-Protokolle | 439 |
7.2?Datenbank-E-Mail | 441 |
7.2.1?Basiseinrichtung | 442 |
7.2.2?Datenbank-E-Mail verwenden | 446 |
7.2.2.1?Operatoren anlegen | 446 |
7.2.2.2?SQL Server-Agent vorbereiten | 447 |
7.2.2.3?Benachrichtigung und Warnungen aktivieren | 448 |
7.3?Datensammlung | 455 |
7.3.1?Datensammlung einrichten | 456 |
7.3.1.1?Verwaltungs-Data Warehouse konfigurieren | 456 |
7.3.2?Daten abrufen | 461 |
7.3.2.1?Datenträgerverwendung | 461 |
7.3.2.2?Serveraktivität | 462 |
7.3.2.3?Abfragestatistik | 464 |
7.4?Dynamic Management Views, DMVs | 466 |
7.5?Erweiterte Ereignisse/Extended Events | 469 |
7.5.1?Einrichten und konfigurieren | 470 |
7.5.2?Live-Ansicht und Datenauswertung | 479 |
7.6?Audit | 484 |
7.6.1?Überwachung einrichten | 484 |
7.6.2?Protokoll anzeigen | 488 |
7.7?Ressourcenkontrolle – Resource Governor | 490 |
7.7.1?Einrichten | 491 |
7.7.2?Überwachung | 496 |
7.7.2.1?Performance-Monitor | 497 |
7.7.2.2?DMVs | 498 |
7.8?Performance-Monitor und SQL Server Profiler | 500 |
7.9?Weitere Überwachungswerkzeuge – SCOM | 500 |
8?Troubleshooting | 504 |
8.1?Einige Basisaspekte | 504 |
8.1.1?Ereignisanzeige | 504 |
8.1.2?Hardware/VM-Konfiguration | 505 |
8.1.3?Installation von Patches | 505 |
8.2?Logfiles werden unendlich groß | 506 |
8.3?„Hilfe, ich muss Datenbankdateien verschieben“ | 509 |
8.3.1?Dateien verschieben mit möglichst viel Komfort | 509 |
8.3.2?Mit SQL-Befehlen | 513 |
8.3.3?Sonderfall: „Mir ist ein Logfile versehentlich so groß geworden, dass ich es nirgendwo mehr hinschieben kann“ | 514 |
8.3.4?Systemdatenbanken verschieben | 516 |
8.4?Datenbank zwischen SQL Servern kopieren/verschieben | 516 |
8.4.1?Variante 1: Mit grafischer Unterstützung durch Assistenten | 516 |
8.4.1.1?Auftrag vorbereiten | 517 |
8.4.1.2?Fehler suchen und beheben | 521 |
8.4.1.3?Methode „Trennen/Anfügen“ | 524 |
8.4.2?Ohne Assistenten die Aufgabe erledigen | 525 |
8.5?Das wirklich ernsthafte Problem mit den SQL-Anmeldungen | 526 |
8.6?SQL Server umbenennen | 531 |
8.7?„Hilfe, ich kann keine Verbindung zum SQL Server aufbauen“ | 531 |
8.7.1?Kontrolle der Dienste im Konfigurations-Manager | 531 |
8.7.2?Netzwerkprotokolle prüfen | 532 |
8.7.3?Windows-Firewall konfigurieren | 534 |
8.7.3.1?Konfiguration der Windows-Firewall für benannte Instanzen | 536 |
8.7.3.2?Windows-Firewall für SQL Server-Browser-Dienst anpassen | 540 |
8.8?Performance messen und bewerten | 541 |
8.8.1?Performance-Monitor „live“ bedienen | 542 |
8.8.2?Aufzeichnen von Daten | 543 |
8.8.3?Einige Werte | 549 |
8.8.3.1?Memory | 550 |
8.8.3.2?Disk | 551 |
8.8.3.3?Prozessor | 552 |
8.8.3.4?Allgemein | 552 |
8.9?Abfragen analysieren | 554 |
8.9.1?SQL Profiler | 554 |
8.9.1.1?Der Testfall | 554 |
8.9.1.2?Kleiner Exkurs: Datenbankzugriff mit ORM-Werkzeugen | 555 |
8.9.1.3?Ein wenig Analyse | 559 |
8.9.2?Ausführungsplan | 563 |
8.9.2.1?Anzeigen des Ausführungsplans | 563 |
8.9.2.2?UNION vs. UNION ALL | 565 |
9?Replikation | 568 |
9.1?Technische Vorbereitung | 570 |
9.2?Einige Grundbegriffe | 572 |
9.3?Replikationstypen | 573 |
9.4?Momentaufnahmeveröffentlichung/Snapshot-Replikation | 574 |
9.5?Transaktionsreplikation | 575 |
9.6?Merge-Replikation | 576 |
9.7?Zusammenfassung | 576 |
9.8?Editionsvergleich | 577 |
9.9?Snapshot-Replikation | 578 |
9.9.1?Funktionsweise | 578 |
9.9.2?Veröffentlichung einrichten | 579 |
9.9.2.1?Vorbereitungen durchführen | 579 |
9.9.2.2?Veröffentlichung einrichten | 580 |
9.9.3?Verleger- und Verteilereigenschaften | 585 |
9.10?Abonnements hinzufügen | 587 |
9.10.1?Push-Abonnenten hinzufügen | 588 |
9.10.1.1?Vorbereitung | 588 |
9.10.1.2?Anlegen des Abonnements | 589 |
9.10.2?Pull-Abonnenten hinzufügen | 596 |
9.10.3?Häufige Fehler | 598 |
9.11?Transaktionsreplikation | 599 |
9.11.1?Funktionsweise | 600 |
9.11.2?Einrichtung und Test | 602 |
9.11.2.1?Vorbereitungen | 602 |
9.11.2.2?Veröffentlichung einrichten | 602 |
9.11.2.3?Abonnement anlegen | 607 |
9.11.3?Fazit | 612 |
9.12?Peer-zu-Peer-Veröffentlichung | 613 |
9.13?Merge-Replikation | 613 |
9.13.1?Veröffentlichung vorbereiten | 614 |
9.13.2?Abonnement einrichten | 621 |
9.13.3?Replikation initiieren | 624 |
9.13.4?Konfliktbehandlung | 625 |
9.13.5?Synchronisation über das Web | 627 |
Index | 628 |