Inhalt | 6 |
Vorwort | 24 |
1 Schnelleinstieg | 26 |
1.1 Grundsätzliches zu einer Oracle-Datenbank | 26 |
1.1.1 Die Oracle-Instanz | 27 |
1.1.2 Die System Global Area | 27 |
1.1.3 Initialisierungsparameter | 27 |
1.1.4 Die Oracle-Datenbank | 27 |
1.1.5 Die Kontrolldatei | 28 |
1.1.6 Die Redo Log-Dateien | 28 |
1.1.7 Instanz-Recovery | 28 |
1.1.8 Betriebsarten einer Datenbank | 28 |
1.1.9 Optimal Flexible Architecture (OFA) | 29 |
1.2 Vorbereitung eines Linux- und Windows-Systems für die Oracle-Installation | 29 |
1.2.1 Die Oracle-Editionen | 30 |
1.2.2 Hardware- und Softwarevoraussetzungen | 33 |
1.2.3 Vorbereitung eines Windows-Systems für die Installation | 34 |
1.2.4 Vorbereitung eines Linux-Systems für die Datenbankinstallation | 35 |
1.2.4.1 Vorbereitung des Linux-Systems mit oracle-rdbms-server-12cR1-preinstall | 37 |
1.2.4.2 Manuelle Vorbereitung | 38 |
1.2.4.3 Zusätzliche Vorbereitungen | 39 |
1.3 Die Installation | 42 |
1.3.1 Software und Datenbankinstallation mit OUI | 42 |
1.3.2 Datenbankinstallation mit DBCA | 49 |
1.4 Grundlagen der Oracle-Administration | 55 |
1.4.1 Administrationswerkzeuge | 56 |
1.4.2 Das Grundwerkzeug SQLPlus | 57 |
1.4.2.1 Anmelden an SQLPlus | 57 |
1.4.2.2 SQL und SQLPlus-Befehle | 57 |
1.4.2.3 SQLPlus-Befehle | 58 |
1.4.3 Die Standardadministratoren | 58 |
1.4.3.1 Anmelden als SYSDBA | 59 |
1.4.4 Starten der Datenbankinstanz | 61 |
1.4.5 Beenden der Datenbankinstanz | 62 |
1.4.6 Initialisierungsparameter | 63 |
1.4.6.1 Ändern von Session-Parametern | 63 |
1.4.6.2 Ändern von System-Parametern | 64 |
1.4.7 Das Listener Control | 65 |
1.4.8 Oracle Enterprisemanager Express | 66 |
1.4.9 Der SQLDeveloper | 68 |
1.5 Online-Hilfe (My Oracle Support) | 72 |
1.6 Die Oracle-Dokumentation | 74 |
2 Architektur und Administration | 76 |
2.1 Datenbank und Instanz | 77 |
2.2 Physische Architektur einer Oracle-Datenbank | 78 |
2.2.1 Datenblöcke | 81 |
2.2.2 Datafiles | 83 |
2.2.3 Tablespaces | 84 |
2.2.4 Informationen zu Tablespaces im Data Dictionary | 88 |
2.2.5 Empfehlungen zum Tablespace-Layout | 88 |
2.2.6 Redo Logs | 90 |
2.2.7 Controlfiles | 92 |
2.2.8 Parameterfile | 94 |
2.2.9 Passwordfile | 95 |
2.2.10 Alert- und Trace-Dateien | 95 |
2.2.11 Flashback Logs | 97 |
2.2.12 Block-Change-Tracking-Protokoll | 98 |
2.3 Instanz: Arbeitsspeicher- und Prozessarchitektur | 99 |
2.3.1 System Global Area (SGA) | 99 |
2.3.2 Program Global Area (PGA) | 105 |
2.3.3 Memory Management | 106 |
2.3.4 Prozesse | 109 |
2.3.5 Prozesse auf Linux/Unix | 113 |
2.3.6 Prozesse auf Windows-Systemen | 113 |
2.3.7 Prozessarchitektur mit Oracle 12c: Multithreads | 114 |
2.4 Konsistenz der Datenbank | 114 |
2.4.1 Transaktionsmanagement | 114 |
2.4.2 Lesekonsistenz | 115 |
2.4.3 Undo Management | 115 |
2.4.4 Sperren | 116 |
2.4.5 Isolation Level | 117 |
2.4.6 System Change Number (SCN) | 117 |
2.4.7 Checkpoints | 118 |
2.4.8 Crash Recovery | 120 |
2.5 Start und Stopp einer Oracle-Datenbank | 121 |
2.5.1 Phasen während des Startup | 121 |
2.5.2 Phasen während des Shutdowns | 123 |
2.5.3 Startup-Befehle | 124 |
2.5.4 Shutdown-Befehle | 127 |
2.6 Verwaltung von Tablespaces | 129 |
2.6.1 Informationen zu bestehenden Tablespaces ermitteln | 129 |
2.6.2 Tablespaces erstellen | 133 |
2.6.3 Tablespace umbenennen | 136 |
2.6.4 Tablespaces vergrößern und verkleinern | 137 |
2.6.5 Datafiles zu Tablespaces hinzufügen | 139 |
2.6.6 Datafiles verschieben oder umbenennen | 139 |
2.6.7 Tablespaces löschen | 141 |
2.6.8 Datafiles löschen | 142 |
2.6.9 Default- und Temporary-Tablespace für Benutzer setzen | 142 |
2.6.10 Offline- und Online-Setzen eines Tablespaces | 143 |
2.6.11 Read-Only- und Read-Write-Setzen | 144 |
2.6.12 Aktivieren und Deaktivieren des Logging für Tablespace | 145 |
2.6.13 Verwaltung von Undo Tablespaces | 146 |
2.6.14 Verwaltung von Temporary Tablespaces | 153 |
2.7 Verwaltung von Redo Logs | 156 |
2.7.1 Informationen zu Redo Logs aus dem Data Dictionary ermitteln | 156 |
2.7.2 Redo Log-Historie | 157 |
2.7.3 Empfehlungen zur Konfiguration von Redo Logs | 157 |
2.7.4 Anlegen einer Redo Log-Gruppe | 159 |
2.7.5 Hinzufügen eines weiteren Mitglieds zu einer bestehenden Gruppe | 160 |
2.7.6 Löschen eines Mitglieds einer Redo Log-Gruppe | 160 |
2.7.7 Löschen einer Redo Log-Gruppe | 160 |
2.7.8 Wechseln der Redo Log-Gruppe | 161 |
2.7.9 Verschieben und Umbenennen von Redo Logs | 161 |
2.7.10 Logfiles bereinigen | 162 |
2.7.11 Redo Logs für Real Application Clusters (RAC) | 162 |
2.7.12 Der Archive Log-Modus | 163 |
2.8 Verwaltung der Controlfiles | 165 |
2.8.1 Informationen zu Controlfiles ermitteln | 165 |
2.8.2 Controlfiles spiegeln | 165 |
2.8.3 Controlfiles durch eine Kopie sichern | 166 |
2.8.4 Controlfiles mit einem Trace dumpen | 166 |
2.9 Parametrisierung | 168 |
2.9.1 Der Startvorgang mit Parameterfile | 168 |
2.9.2 Welche Parameterdatei wird aktuell verwendet? | 169 |
2.9.3 Ändern der Parametrisierung | 169 |
2.9.4 Zurücksetzen eines Parameters | 170 |
2.9.5 Probleme bei der Änderung der Parametrisierung | 171 |
2.9.6 Aktuelle Parametrisierung ermitteln | 171 |
2.9.7 Parameter zur Datenbank- und Instanz-Konfiguration | 172 |
2.9.8 Verdeckte Parameter | 174 |
2.9.9 PFiles und SPFiles erzeugen | 174 |
2.10 Passwort-Dateien verwalten | 175 |
2.10.1 Passwort-Datei erstellen | 175 |
2.10.2 Passwort-Dateien und Datenbankparameter | 176 |
2.10.3 Privilegierte Benutzer einer Passwort-Datei hinzufügen und entfernen | 176 |
2.11 Weitere Administrationsbefehle | 177 |
2.11.1 Ändern des Globalen Namens der Datenbank | 177 |
2.11.2 Ändern des Zeichensatzes | 177 |
2.11.3 Benutzerverbindungen beenden: Kill Session | 179 |
2.11.4 Benutzerverbindungen beenden: Disconnect Session | 180 |
2.11.5 Benutzersessions sperren: Restricted Mode | 181 |
2.11.6 Benutzeraktionen unterbinden: Quiesce Restricted | 182 |
2.11.7 Einen Checkpoint erzwingen | 183 |
2.11.8 Den Blockpuffer leeren: Flush buffer_cache | 183 |
2.11.9 Den Shared Pool leeren: Flush shared_pool | 183 |
2.11.10 Den Inhalt eines Datenblockes dumpen | 184 |
2.12 Informationen zur Datenbank ermitteln | 185 |
2.12.1 Statische Data Dictionary Views | 185 |
2.12.2 Dynamische Performance Views | 186 |
2.12.3 Allgemeine Informationen zur Datenbank | 188 |
2.12.4 Startzeit und Status der Instanz | 188 |
2.12.5 Hostname und Instanz-Name | 188 |
2.12.6 Spracheinstellungen und Zeichensätze | 188 |
2.12.7 Aktuelle Datenbankversion | 189 |
2.12.8 Installierte Oracle-Optionen | 189 |
2.12.9 Größen der Caches der SGA | 189 |
2.12.10 Pfad zu Trace-Dateien und Alert-Log | 190 |
2.12.11 Datenbank-Benutzer | 191 |
2.12.12 Rechte und Rollen eines Datenbank-Benutzers | 191 |
2.12.13 Datenbankobjekte | 192 |
2.12.14 Offene Datenbankverbindungen | 192 |
2.12.15 Aktive Sessions | 193 |
2.12.16 SQL-Statement nach Session | 193 |
2.12.17 Waits | 193 |
2.12.18 Langlaufende Operationen | 194 |
2.12.19 Sperren in der Datenbank | 194 |
2.12.20 Die aktuelle System Change Number (SCN) ermitteln | 195 |
2.13 Resümee | 195 |
3 Verwaltung von Datenbankobjekten | 196 |
3.1 Benutzer und Schemata | 197 |
3.2 Bezeichner | 197 |
3.3 Speicherhierarchie | 198 |
3.4 Zeichensätze | 200 |
3.5 Datentypen | 203 |
3.6 Speicherorganisation von Tabellen | 204 |
3.6.1 Heap Tables | 204 |
3.6.2 Index Organized Tables (IOTs) | 205 |
3.6.3 Object Tables | 206 |
3.6.4 Global Temporary Tables | 208 |
3.6.5 External Tables | 209 |
3.6.6 Geclusterte Tabellen | 210 |
3.6.6.1 Index-Cluster | 211 |
3.6.6.2 Hash-Cluster | 212 |
3.6.6.3 Sorted Hash-Cluster | 212 |
3.6.7 Tabellenkomprimierung | 213 |
3.6.8 Tabellenpartitionierung | 213 |
3.7 Administrationsbefehle für Tabellen | 214 |
3.7.1 Tabellen erstellen | 214 |
3.7.2 Erstellen einer Tabelle aus einem Select-Statement | 214 |
3.7.3 Tabellen kopieren | 215 |
3.7.4 Tabellennamen ändern | 215 |
3.7.5 Tabelleneigenschaften ändern | 216 |
3.7.6 Löschen einer Tabelle | 216 |
3.7.7 Tablespace zuordnen | 216 |
3.7.8 Eine Tabelle in einen anderen Tablespace verschieben | 217 |
3.7.9 Extent-Größen festlegen | 218 |
3.7.10 Einstellen der Größe des Transaktionsheaders | 218 |
3.7.11 Verzögerte Speicherallokation/Deferred Segment Creation | 220 |
3.7.12 Cache/Nocache/Cache Reads | 220 |
3.7.13 Logging und Nologging | 221 |
3.7.14 Parallelisierung | 222 |
3.7.15 Schreibschutz für Tabellen: Read only/Read write | 223 |
3.7.16 Spalten hinzufügen | 223 |
3.7.17 Spaltennamen ändern | 223 |
3.7.18 Default-Werte für Spalten vergeben | 224 |
3.7.19 Spaltendefinitionen ändern | 224 |
3.7.20 Spalten physisch löschen | 225 |
3.7.21 Spalten logisch löschen | 226 |
3.7.22 Speicherplatz einer Tabelle ermitteln | 226 |
3.7.23 Speicherplatz freigeben | 227 |
3.7.24 Tabellen leeren mit Truncate Table | 229 |
3.7.25 Wichtige Rechte rund um Tabellen | 230 |
3.7.26 Informationen zu Tabellen und Spalten im Data Dictionary | 231 |
3.8 Constraints | 232 |
3.8.1 Not Null | 233 |
3.8.2 Unique | 233 |
3.8.3 Primary Key | 234 |
3.8.4 Foreign Key | 234 |
3.8.5 Check-Contraints | 236 |
3.8.6 Aktivierung und Deaktivierung von Constraints | 236 |
3.8.7 Verzögerte Überprüfung | 238 |
3.8.8 Umbenennen von Constraints | 238 |
3.8.9 Entfernen von Constraints | 239 |
3.8.10 Wichtige Rechte rund um Constraints | 239 |
3.8.11 Informationen zu Constraints im Data Dictionary | 239 |
3.9 Views | 240 |
3.9.1 Standard-Views | 241 |
3.9.2 Materialized Views | 242 |
3.9.3 Objekt-Views | 243 |
3.9.4 Wichtige Rechte rund um Views | 243 |
3.9.5 Informationen zu Views im Data Dictionary | 244 |
3.10 Indizes | 244 |
3.10.1 B*Baum | 245 |
3.10.2 Bitmap Index | 247 |
3.10.3 Reverse Key Index | 248 |
3.10.4 Funktionsbasierter Index | 248 |
3.10.5 Unique Index | 249 |
3.10.6 Online-Erstellung eines Index | 250 |
3.10.7 Speicherparameter: Tablespace und Extentgrößen | 250 |
3.10.8 Einstellen der Größe des Transaktionsheaders | 251 |
3.10.9 Reorganisation/Index Rebuild | 252 |
3.10.10 Speicherplatz eines Index ermitteln | 253 |
3.10.11 Speicherplatz freigeben | 253 |
3.10.12 Deaktivieren eines Index | 254 |
3.10.13 Invisible Index | 255 |
3.10.14 Logging | 256 |
3.10.15 Parallelisierung | 257 |
3.10.16 Umbenennen eines Index | 257 |
3.10.17 Monitoring der Index-Nutzung | 258 |
3.10.18 Wichtige Rechte rund um Indizes | 259 |
3.10.19 Informationen zu Indizes im Data Dictionary | 259 |
3.11 Synonyme | 259 |
3.11.1 Public Synonym | 260 |
3.11.2 Wichtige Rechte rund um Synonyme | 260 |
3.11.3 Informationen zu Synonymen im Data Dictionary | 260 |
3.12 Datenbank-Links | 261 |
3.12.1 Public Database-Link | 262 |
3.12.2 Verbindungsdescriptor zur Remote-Datenbank | 262 |
3.12.3 Rechte zu Datenbank-Links | 262 |
3.12.4 Informationen zu Datenbank-Links im Data Dictionary | 263 |
3.13 Sequenzen | 263 |
3.13.1 Rechte zu Sequenzen | 264 |
3.13.2 Informationen zu Sequenzen im Data Dictionary | 264 |
3.14 PL/SQL-Programme | 265 |
3.14.1 Stored Procedures/Functions | 265 |
3.14.2 Packages | 265 |
3.14.3 Trigger | 265 |
3.14.4 Wichtige Rechte rund um PL/SQL-Programme | 266 |
3.14.5 Informationen zu PL/SQL-Programmen im Data Dictionary | 266 |
3.15 Resümee | 266 |
4 Speicherplatzverwaltung | 268 |
4.1 Datenbankspeicheroptionen | 269 |
4.1.1 Eigenschaften eines Speichersystems | 270 |
4.1.1.1 Verwaltung | 270 |
4.1.1.2 Verfügbarkeit | 271 |
4.1.1.3 Performance | 271 |
4.1.1.4 Zugriff | 273 |
4.1.2 Filesysteme | 273 |
4.1.2.1 Verwaltung | 274 |
4.1.2.2 Verfügbarkeit | 275 |
4.1.2.3 Performance | 275 |
4.1.2.4 Zugriff | 275 |
4.1.3 Automatic Storage Management | 276 |
4.1.3.1 Verwaltung | 276 |
4.1.3.2 Verfügbarkeit | 277 |
4.1.3.3 Performance | 277 |
4.1.3.4 Zugriff | 277 |
4.1.4 Die Auswahl der Datenbankspeicheroption | 277 |
4.2 Data-, Temp- und Redo Log-File-Attribute | 278 |
4.2.1 Initial Size | 278 |
4.2.2 Automatische Filevergrößerung | 280 |
4.2.3 Manuelle Filevergrößerung | 280 |
4.3 Extent-Management-Optionen | 281 |
4.3.1 Extent Map | 282 |
4.3.2 Storage-Parameter | 282 |
4.3.3 Extent-Allozierung | 283 |
4.3.3.1 Deferred Segment Creation | 283 |
4.3.3.2 Parallele Inserts | 284 |
4.3.4 Dictionary Managed Tablespaces | 285 |
4.3.5 Locally Managed Tablespaces | 286 |
4.3.5.1 Uniform Extent Size | 287 |
4.3.5.2 System Managed Extent Size | 288 |
4.3.5.3 Smallfile- vs. Bigfile-Tablespaces | 289 |
4.3.6 Auswahl der Extent-Management-Optionen | 290 |
4.4 Segmentspace-Verwaltung | 292 |
4.4.1 High-Water Mark | 292 |
4.4.2 Manuelle Segmentspace-Verwaltung | 294 |
4.4.3 Automatische Segmentspace-Verwaltung | 296 |
4.4.4 Auswahl einer Segmentspace-Verwaltungsoption | 299 |
4.5 Zusätzliche Segmentoptionen | 299 |
4.5.1 Interested Transaction List (ITL) | 299 |
4.5.2 Minimal Logging | 301 |
4.6 Reorganisationen | 303 |
4.6.1 Datensatzmigration und Datensatzverkettung | 303 |
4.6.2 Verschieben von Segmenten | 306 |
4.6.3 Verschieben von Tabelleninhalten | 307 |
4.6.4 Rückgewinnung von freiem Platz | 309 |
4.7 Resümee | 310 |
5 Oracle Multitenant | 312 |
5.1 Die Container-Datenbank-Architektur | 312 |
5.1.1 Unterschiede zur klassischen Architektur | 313 |
5.1.2 Die Architektur | 315 |
5.1.3 Verzeichnisstrukturen und Dateinamen | 317 |
5.1.4 Verfügbare Datenbankvarianten in Oracle 12c | 318 |
5.2 Anlegen einer Container-Datenbank | 319 |
5.2.1 CDB anlegen mit dem DBCA | 319 |
5.2.2 CDB anlegen mit SQL-Skript | 320 |
5.3 Aufteilung der Zuständigkeiten | 322 |
5.4 Anlegen einer Pluggable-Datenbank | 323 |
5.5 Kopieren von Pluggable-Datenbanken | 325 |
5.5.1 Kopieren einer lokalen PDB | 325 |
5.5.2 Remote Cloning | 326 |
5.5.3 Metadata Cloning | 327 |
5.5.4 Subset Cloning | 327 |
5.5.5 Snapshot Cloning | 328 |
5.6 Zugriff auf Pluggable-Datenbanken | 329 |
5.7 Administration von Pluggable-Datenbanken | 330 |
5.7.1 Öffnen und Schließen von PDBs | 331 |
5.7.2 Droppen von PDBs | 332 |
5.7.3 Verschieben von PDBs | 332 |
5.7.4 Benutzer- und Rechteverwaltung | 335 |
5.7.5 PDB-übergreifende Operationen | 337 |
5.7.6 Upgrades in der CDB-Architektur | 337 |
5.7.7 Parameter | 338 |
5.7.8 Änderungen im Data Dictionary | 339 |
5.7.9 Werkzeuge | 341 |
5.7.9.1 Enterprise Manager 12c Cloud Control | 341 |
5.7.9.2 Enterprise Manager 12c Database Express | 341 |
5.8 Backup & Restore von Container-Datenbanken | 343 |
5.9 Migration zur CDB-Architektur | 345 |
5.9.1 Clonen einer Nicht-CDB als PDB | 346 |
5.9.2 Einhängen einer Nicht-CDB als PDB | 346 |
5.10 Verschiedenes | 346 |
5.10.1 CDB im RAC | 346 |
5.10.2 CDB & DataGuard | 347 |
5.10.3 Ressourcenmanagement | 348 |
5.11 Einsatzmöglichkeiten | 349 |
5.11.1 Database as a Service (DBaaS) | 349 |
5.11.1.1 EM 12c Cloud Management Pack for Oracle Database | 349 |
5.11.1.2 Apex-Provisioning Tool | 350 |
5.11.2 Entwicklungsdatenbanken | 350 |
5.11.3 „Sammeldatenbanken“ | 351 |
5.12 Zusammenfassung | 351 |
6 Security | 352 |
6.1 Authentifizierung | 353 |
6.1.1 Datenbankauthentifizierung | 353 |
6.1.1.1 Passwörter und Password Hash | 353 |
6.1.1.2 Authentifizierungsprotokoll | 356 |
6.1.1.3 Protokollierung der Logins | 357 |
6.1.1.4 Passwortprofile | 358 |
6.1.1.5 Standardbenutzer, globale und lokale Benutzer | 362 |
6.1.2 Betriebssystemauthentifizierung | 363 |
6.1.3 Proxy-Authentifizierung | 364 |
6.1.4 Kerberos | 367 |
6.1.5 Authentifizierung per SSL und Zertifikaten | 369 |
6.1.6 Enterprise User Security | 372 |
6.2 Autorisierung | 375 |
6.2.1 Systemprivilegien | 375 |
6.2.2 Objektprivilegien | 377 |
6.2.3 Administrative Privilegien | 378 |
6.2.4 Berechtigungen auf Directories | 382 |
6.2.5 Netzwerkzugriff | 382 |
6.2.6 Rollen | 384 |
6.2.6.1 Rollenkonzept | 384 |
6.2.6.2 Passwortgeschützte Rollen | 385 |
6.2.6.3 Secure Application Role | 386 |
6.2.7 Überwachung von Privilegien | 387 |
6.2.8 Virtual Private Database | 389 |
6.2.8.1 Default Behavior | 392 |
6.2.8.2 Column Masking Behavior | 393 |
6.2.9 Database Vault | 393 |
6.3 Auditing | 397 |
6.3.1 Standard-Auditing | 399 |
6.3.1.1 Statement- und Privilegien-Auditing | 400 |
6.3.1.2 Objekt-Auditing | 401 |
6.3.1.3 Auswertungen | 401 |
6.3.1.4 Weitere Klauseln des Audit-Befehls | 403 |
6.3.1.5 Ausschalten des Audits | 404 |
6.3.1.6 Audit für administrative Benutzer | 404 |
6.3.2 Unified Auditing | 405 |
6.3.3 Audit Policies | 410 |
6.3.4 Trigger-basiertes Audit | 414 |
6.3.4.1 Event-Trigger | 414 |
6.3.4.2 DML-Trigger | 415 |
6.3.5 Fine-Grained Auditing | 415 |
6.3.6 Verwalten der Audit-Informationen | 417 |
6.3.7 Audit Vault und Database Firewall | 420 |
6.4 Vertraulichkeit der Daten | 423 |
6.4.1 Data Redaction | 423 |
6.4.2 Verschlüsselung der Oracle-Dateien | 427 |
6.4.2.1 Oracle Wallet | 427 |
6.4.2.2 Verschlüsselung auf Spaltenebene | 431 |
6.4.2.3 Verschlüsselung auf Tablespace-Ebene | 433 |
6.4.3 Verschlüsselung und Integritätsprüfung des Netzwerkverkehrs | 436 |
6.4.3.1 Verschlüsselung | 436 |
6.4.3.2 Integritätsprüfung | 439 |
6.4.3.3 SSL-Verschlüsselung | 441 |
6.5 Resümee | 443 |
7 Automatic Storage Management | 444 |
7.1 Die ASM-Architektur im Überblick | 445 |
7.2 Eine ASM-Umgebung konfigurieren | 446 |
7.2.1 Die Software bereitstellen | 446 |
7.2.2 Manuelle ASM-Konfiguration | 447 |
7.2.3 ASM-Disks auf spezifischen Plattformen | 449 |
7.2.3.1 AIX | 449 |
7.2.3.2 Solaris | 450 |
7.2.3.3 Linux | 450 |
7.2.3.4 Windows | 451 |
7.2.4 Der Discovery-Prozess | 452 |
7.2.5 Der ASMCA | 453 |
7.2.6 ASM im Enterprise Manager 11g und Cloud Control 12c/13c | 455 |
7.3 ASM-Disks, -Diskgruppen und -Fehlergruppen | 456 |
7.4 Das Utility ASMCMD | 461 |
7.5 ASM-Sicherheit | 463 |
7.6 ASM Monitoring, Performance und Troubleshooting | 464 |
7.7 Eine Datenbank nach ASM konvertieren | 469 |
7.8 Das ASM Cluster File-System (ACFS) | 473 |
7.8.1 General Purpose ACFS-Dateisystem | 474 |
7.8.2 CRS Managed ACFS-Dateisystem | 475 |
7.8.3 ACFS Snapshots | 476 |
7.8.4 ACFS verwalten | 477 |
7.9 Oracle Flex ASM | 478 |
7.9.1 Architektur | 478 |
7.9.2 Aktivierung von Flex ASM | 479 |
7.9.3 Verwaltung von Flex ASM | 479 |
7.10 Resümee | 480 |
8 Optimierung | 482 |
8.1 Designing for Performance | 482 |
8.1.1 Unzulänglichkeiten im logischen Datenbankdesign | 483 |
8.1.2 Implementation von generischen Tabellen | 483 |
8.1.3 Verzicht auf Constraints | 484 |
8.1.4 Unzulängliches physisches Datenbankdesign | 484 |
8.1.5 Falsche Datentypauswahl | 485 |
8.1.6 Inkorrekte Verwendung von Bind-Variablen | 485 |
8.1.7 Fehlender Einsatz von Advanced Datenbankfeatures | 486 |
8.1.8 Fehlende Verwendung von Stored-Procedures | 487 |
8.1.9 Ausführung von unnötigen Commits | 487 |
8.1.10 Häufiges Öffnen und Schließen von Datenbankverbindungen | 487 |
8.1.11 Öffnen von zu vielen Datenbankverbindungen | 488 |
8.2 Konfigurationsempfehlungen | 488 |
8.2.1 Initialisierungsparameter | 489 |
8.2.1.1 Speicher-Subsystem | 489 |
8.2.1.2 Arbeitsspeicher | 490 |
8.2.1.3 Optimizer | 493 |
8.2.2 Systemstatistiken | 495 |
8.2.3 Objektstatistiken | 497 |
8.3 Vorgehen bei Performance-Problemen | 498 |
8.3.1 Probleme einordnen | 499 |
8.3.2 Probleme lösen | 500 |
8.4 Identifikation von Performance-Problemen | 500 |
8.4.1 Analyse von reproduzierbaren Problemen | 501 |
8.4.2 Echtzeitanalyse von nichtreproduzierbaren Problemen | 509 |
8.4.2.1 Analyse mit dem Diagnostics Pack | 509 |
8.4.2.2 Analyse ohne Diagnostics Pack | 514 |
8.4.3 Nachträgliche Analyse von nichtreproduzierbaren Problemen | 521 |
8.4.3.1 Analyse mit dem Automatic Workload Repository | 521 |
8.4.3.2 Analyse mit dem Statspack | 522 |
8.5 Ausführungspläne | 527 |
8.5.1 Ermittlung des Ausführungsplans | 527 |
8.5.1.1 SQL-Befehl EXPLAIN PLAN | 527 |
8.5.1.2 Dynamische Performance Views | 529 |
8.5.1.3 Real-time Monitoring | 531 |
8.5.1.4 Automatic Workload Repository und Statspack | 533 |
8.5.2 Interpretation von Ausführungsplänen | 534 |
8.5.3 Erkennen von ineffizienten Ausführungsplänen | 537 |
8.6 Methoden zur Lösung von Performanceproblemen | 541 |
8.6.1 Verhinderung unnötiger Arbeit | 541 |
8.6.2 Datenbankaufrufe schneller machen | 542 |
8.6.2.1 Änderung der Zugriffsstrukturen | 542 |
8.6.2.2 Änderung der SQL-Statements | 543 |
8.6.2.3 Ändern der Runtime-Umgebung | 543 |
8.6.2.4 Ändern des Ausführungsplans | 543 |
8.6.2.5 Einsatz von Advanced-Features | 543 |
8.6.2.6 Verhinderung von Contention | 544 |
8.6.3 Ressourcenverwaltung | 545 |
8.6.4 Hardware-Upgrade | 545 |
8.7 Resümee | 546 |
9 Monitoring | 548 |
9.1 Monitoring-Architektur | 549 |
9.1.1 Automatic Diagnostic Repository | 550 |
9.1.2 ADRCI – die Schnittstelle zum ADR | 551 |
9.1.3 Health Monitor | 553 |
9.1.4 Incident Package Service (IPS) | 554 |
9.1.5 Enterprise Manager Support Workbench | 556 |
9.1.6 Automatic Workload Repository (AWR) | 556 |
9.2 Monitoring-Datenbasis | 557 |
9.2.1 Alert-Log | 557 |
9.2.2 Tracefiles, Dumps und Corefiles | 558 |
9.2.3 Data Dictionary Views | 558 |
9.2.4 Datenbankmetriken | 559 |
9.2.5 Server Generated Alerts | 561 |
9.2.6 Baseline Metric Thresholds und Adaptive Thresholds | 562 |
9.2.7 Metric Extensions | 563 |
9.2.8 Compliance Management | 564 |
9.3 Monitoring von Oracle-Datenbanken | 566 |
9.3.1 Überwachung der Serviceverfügbarkeit | 566 |
9.3.2 ORA-Fehlermeldungen und Alerts | 567 |
9.3.3 Monitoring der Systemaktivität | 569 |
9.3.4 Platzüberwachung | 571 |
9.3.4.1 Überwachung von Tablespaces | 571 |
9.3.4.2 Überwachung der Fast Recovery Area | 573 |
9.3.4.3 Überwachung von ASM | 574 |
9.3.5 Monitoring von SQL-Befehlen/Performance | 574 |
9.3.6 Monitoring der CPU-Auslastung | 576 |
9.3.7 Monitoring von RMAN-Backups | 577 |
9.3.7.1 Backup-Überwachung mit dem Enterprise Manager | 577 |
9.3.7.2 Backup-Überwachung mit SQL*Plus | 578 |
9.3.7.3 Monitoring der Aktualität der RMAN-Backups | 578 |
9.3.7.4 Monitoring der RMAN-Performance | 579 |
9.3.7.5 Monitoring des Backup-Volumens | 579 |
9.3.7.6 Monitoring von RMAN-Jobs | 580 |
9.3.8 Überwachung von Konfigurationsänderungen | 581 |
9.3.9 Überwachung von Locking-Situationen | 582 |
9.3.10 Best-Practice (Basis-Monitoring) | 583 |
9.4 Monitoring-Werkzeuge | 586 |
9.4.1 Enterprise Manager Database Express 12c | 586 |
9.4.2 Enterprise Manager Cloud Control | 587 |
9.4.3 SQL Developer | 588 |
9.4.4 Auswahlkriterien für Monitoring-Werkzeuge | 589 |
9.5 Resümee | 590 |
10 Aufbau und Betrieb eines Datenbankservers | 592 |
10.1 Überlegungen zum Aufbau und Betrieb eines Datenbankservers | 592 |
10.2 Wahl der Oracle-Plattform | 594 |
10.3 Betriebssystembenutzer und Berechtigungen | 596 |
10.3.1 Software-Owner und Betriebssystembenutzer | 596 |
10.3.2 Home-Verzeichnis der User „oracle“ und „grid“ | 597 |
10.3.3 Betriebssystemgruppen | 597 |
10.3.4 File-Permissions, Ownership und umask | 599 |
10.4 Oracle-Verzeichnisstruktur | 600 |
10.4.1 Optimal Flexible Architecture (OFA) | 600 |
10.4.2 Der OFA-Verzeichnisbaum | 601 |
10.4.3 Die „/u00“-Philosophie | 602 |
10.4.4 Mountpoints | 602 |
10.4.5 ORACLE_BASE | 603 |
10.4.6 ORACLE_HOME | 603 |
10.4.7 Shared-Home-Installationen | 603 |
10.4.8 Multi-Home-Installationen | 604 |
10.4.9 Oracle Universal Installer Inventory | 604 |
10.4.10 Automatic Diagnostic Repository (ADR) | 605 |
10.5 Verwaltung des Oracle-Environment | 605 |
10.6 Betrieb eines Oracle-Datenbankservers | 606 |
10.6.1 Monitoring & Reporting | 607 |
10.6.2 Backup & Recovery | 607 |
10.6.3 Datenbank-Maintenance | 608 |
10.6.4 Weitere Betriebsaufgaben | 609 |
10.6.5 Das Betriebshandbuch | 610 |
10.7 Resümee | 611 |
11 Backup und Recovery | 612 |
11.1 Übersicht | 612 |
11.1.1 Entwicklung eines Sicherungskonzepts | 613 |
11.1.2 Offline- und Online-Sicherung | 614 |
11.1.3 Logische und physische Sicherung | 614 |
11.1.4 Restore und Recovery | 615 |
11.1.5 Vollsicherung, inkrementelle und differenzielle Sicherung | 615 |
11.1.6 Flash/Fast Recovery Area | 615 |
11.1.7 Oracle-Backup- und Recovery-Lösungen und Werkzeuge | 616 |
11.2 User-Managed Sicherungen | 616 |
11.2.1 Backup-Informationen aus V$Views | 616 |
11.2.2 Offline-Sicherung der ganzen Datenbank | 618 |
11.2.3 Online-Sicherung der ganzen Datenbank | 620 |
11.2.4 Backup der PDBs | 620 |
11.2.5 Backup Tablespace und Datenfiles | 621 |
11.2.6 Backup Controlfile | 622 |
11.2.7 Backup der archivierten Redo Log-Dateien | 623 |
11.2.8 Backup ASM und RAW Devices | 623 |
11.2.9 Backup mit Snapshot Technology | 623 |
11.2.10 Backup-Troubleshooting | 623 |
11.2.11 Wiederherstellung aus einer Betriebssystemsicherung | 624 |
11.3 Recovery-Manager-(RMAN-)Sicherungen | 626 |
11.3.1 RMAN-Architektur und ihre Komponenten | 626 |
11.3.2 Aufruf und RMAN-Konfiguration | 627 |
11.3.3 Sicherungsoptimierung | 628 |
11.3.4 Backup-Sets und Image-Kopien | 633 |
11.3.5 Der Recovery-Katalog und die Recovery-Katalog-Datenbank | 634 |
11.3.6 Sicherung auf Band in einem Run-Block | 637 |
11.3.7 Sicherung der Datenbank im Online- und Offline-Modus | 640 |
11.3.8 Inkrementelle Sicherung der Datenbank | 641 |
11.3.9 Sicherung der ganzen Datenbank | 641 |
11.3.10 Sicherung der CDBs | 642 |
11.3.11 Sicherung der PDBs | 642 |
11.3.12 Sicherung Tablespaces und Datenfiles | 643 |
11.3.13 Sicherung von archivierten Redo Log-Dateien | 644 |
11.3.14 Sicherung Controlfile und Spfile | 645 |
11.3.15 Langzeitsicherungen | 646 |
11.3.16 Sicherungsdateien sichern | 647 |
11.3.17 Backup-Pieces und Tags | 648 |
11.3.18 Reports zu Sicherungen | 649 |
11.3.19 Monitoren des RMAN-Job-Fortschritts und Fehler | 649 |
11.3.20 Prüfung auf Korruptionen | 650 |
11.3.21 Löschen alter Sicherungen | 651 |
11.3.22 Virtual Private Catalog | 652 |
11.4 RMAN-Wiederherstellung | 653 |
11.4.1 Wiederherstellen eines Blocks | 653 |
11.4.2 Wiederherstellen einzelner Tabellen | 655 |
11.4.3 Wiederherstellen einer Datendatei | 656 |
11.4.4 Wiederherstellen eines Tablespace | 657 |
11.4.5 Wiederherstellen der Kontrolldateien | 657 |
11.4.6 Wiederherstellen eines Root-Containers | 659 |
11.4.7 Wiederherstellen einer Datenbank (CDB) | 659 |
11.4.8 Unvollständiges Wiederherstellen/Point in Time Recovery (PITR) | 660 |
11.4.9 Restore Points und garantierte Restore Points | 660 |
11.4.10 Data Recovery Advisory (DRA) | 661 |
11.5 Oracle Flashback | 663 |
11.5.1 Flashback Database und CDB | 663 |
11.5.2 Flashback Table/Zurücksetzen einer Tabelle | 664 |
11.5.3 Flashback Drop/Wiederherstellen einer gelöschten Tabelle | 665 |
11.5.4 Flashback Transaction/Transaktionen zurücksetzen | 665 |
11.6 Portabilität von Backups | 667 |
11.7 Data Pump Export und Import | 667 |
11.7.1 Übersicht | 667 |
11.7.2 Befehle und Beispiele | 669 |
11.7.3 Full Transportable Export/Import | 672 |
11.7.4 Monitoring der Data-Pump-Jobs | 673 |
11.8 Ausblick, Zusammenfassung | 673 |
12 Verfügbarkeit | 674 |
12.1 Übersicht Grid-Infrastruktur | 674 |
12.2 Grid-Infrastruktur und Oracle Real Application Clusters (RAC) | 675 |
12.2.1 Architektur | 676 |
12.2.2 Oracle Cluster Registry (OCR) | 677 |
12.2.3 Voting Devices | 678 |
12.2.4 Prozesse | 678 |
12.2.5 Logfiles | 679 |
12.2.6 Grid Plug and Play (GPnP) | 679 |
12.2.7 Grid Naming Service (GNS) | 679 |
12.2.8 Single Client Access Name (SCAN) | 679 |
12.2.9 Installation | 680 |
12.2.10 Administration | 683 |
12.2.10.1 crsctl | 683 |
12.2.10.2 Starten und Stoppen des Clusters | 684 |
12.2.10.3 Autostart des Clusters aktivieren/deaktivieren | 684 |
12.2.10.4 Prüfen des Cluster-Status | 684 |
12.2.10.5 Prüfung von Ressourcen | 684 |
12.2.10.6 Starten und Stoppen von Ressourcen | 687 |
12.2.10.7 Voting Disks verwalten | 689 |
12.2.10.8 Oracle Cluster Registry (OCR) verwalten | 689 |
12.2.11 Server Pools | 691 |
12.2.12 Administrator-managed und Policy-managed Cluster | 692 |
12.2.13 Oracle Flex Cluster | 692 |
12.2.13.1 Architektur | 692 |
12.2.13.2 Umwandlung eines bestehenden Clusters in einen Flex Cluster | 692 |
12.2.13.3 Administration von Flex Clustern | 693 |
12.3 Oracle Restart | 694 |
12.3.1 Architektur | 695 |
12.3.2 Installation | 695 |
12.3.3 Administration | 696 |
12.4 Grid-Infrastruktur für Third-Party-Applikationen | 698 |
12.4.1 Installation | 698 |
12.4.2 Administration | 698 |
12.5 RAC One Node | 702 |
12.6 Oracle Data Guard | 703 |
12.6.1 Architektur | 704 |
12.6.1.1 Die Snapshot-Standby-Datenbank | 706 |
12.6.2 Data Guard Services | 706 |
12.6.3 Data Guard Protection Modes | 708 |
12.6.4 Data Guard Broker | 709 |
12.6.5 Verwaltungswerkzeuge | 709 |
12.6.6 Hard- und Softwarevoraussetzungen | 709 |
12.6.7 Verzeichnisstrukturen der Standby-Database | 710 |
12.6.8 Vorbereitung der Primärdatenbank | 710 |
12.6.9 Manuelle Erstellung der Physical-Standby-Datenbank | 714 |
12.6.10 Erstellung der Physical-Standby-Datenbank mit RMAN DUPLICATE | 716 |
12.6.11 Duplicate einer PDB- oder CDB-Datenbank | 719 |
12.6.12 Überwachung der Physical-Standby-Datenbank | 721 |
12.6.13 Real Time Apply und Standby-Logfiles | 722 |
12.6.14 Starten und Stoppen des Redo Apply | 723 |
12.6.15 Aktivierung des Data Guard Broker | 723 |
12.6.16 Hinzufügen und Aktivieren von Standby-Datenbanken | 726 |
12.6.17 Ändern von Konfigurationseinstellungen | 726 |
12.6.18 Durchführen eines Switchover | 729 |
12.6.19 Durchführen eines Failover | 730 |
12.6.20 Far-Sync-Instanzen und Zero Data Loss | 731 |
12.6.20.1 Real Time Cascade | 733 |
12.6.21 Aufbau einer Logical Standby-Datenbank | 735 |
13 Datenbank-Upgrades | 736 |
13.1 Upgrade vs. Migration | 738 |
13.2 Generelle Rahmenbedingen | 738 |
13.3 Technische Planung | 739 |
13.4 Überblick Upgrade-Methoden | 742 |
13.5 Generell mögliche Upgrade-Pfade | 747 |
13.6 Database Upgrade Assistant (DBUA) | 747 |
13.6.1 Software-Download | 747 |
13.6.2 Datenbanksoftwareinstallation | 748 |
13.6.3 Upgrade mithilfe des DBUA | 749 |
13.6.4 Silent Upgrade | 753 |
13.7 Manuelles Upgrade | 753 |
13.7.1 Manuelles Upgrade im Detail | 760 |
13.8 Downgrade | 762 |
13.9 Best Practices Datenbank-Upgrade | 764 |
13.10 Alternative Upgrade-Methoden | 767 |
13.10.1 Original-Export- und -Import-Utilities (exp/imp) | 767 |
13.10.2 Export und Import mittels Data Pump | 768 |
13.10.3 Transportable Tablespaces | 770 |
13.11 Full Transportable Database | 772 |
13.12 Komplexe Upgrade-Methoden | 773 |
13.12.1 Copy Table (Create Table as select) | 774 |
13.12.2 Oracle Streams/Oracle Golden Gate | 774 |
13.12.3 Upgrade mit logischer Standby-Datenbank | 775 |
13.13 Datenbankkonvertierung auf 64 Bit | 777 |
13.14 Wechsel von einer Standard Edition auf die Enterprise Edition | 778 |
13.15 Wechsel von einer Enterprise Edition auf eine Standard Edition | 779 |
13.16 Resümee | 779 |
14 Globalization Support | 780 |
14.1 Zeichensätze | 780 |
14.1.1 Zeichensätze in der Datenbank | 782 |
14.1.1.1 Database Character Set | 783 |
14.1.1.2 National Character Set | 783 |
14.1.2 Unicode | 783 |
14.1.2.1 Was ist Unicode? | 783 |
14.1.2.2 Unicode in der Oracle-Datenbank | 784 |
14.1.3 Besonderheiten bei der Verwendung von Unicode als Datenbankzeichensatz | 784 |
14.1.3.1 Längenangaben bei der Definition von Tabellenspalten | 784 |
14.1.3.2 Zusätzliche SQL-Funktionen | 786 |
14.1.3.3 ASCII-Funktion | 787 |
14.1.3.4 Sortierung | 787 |
14.1.4 Welcher Zeichensatz ist als „Database Character Set“ am besten geeignet? | 787 |
14.1.5 Häufig verwendete Zeichensätze | 788 |
14.1.6 Zeichensatzwechsel der Datenbank | 789 |
14.1.6.1 Allgemeines | 789 |
14.1.6.2 Werkzeuge für den Zeichensatzwechsel | 789 |
14.1.6.3 csscan/csalter | 790 |
14.1.6.4 Database Migration Assistant for Unicode (DMU) | 790 |
14.2 NLS-Einstellungen | 797 |
14.2.1 NLS_LANG | 797 |
14.2.2 NLS-Parameter | 798 |
14.2.3 Abhängigkeiten | 800 |
14.3 Zeit & Datum | 800 |
14.4 NLS in SQL | 802 |
14.5 NLS-Data-Dictionary-Views | 804 |
14.6 Zusammenfassung | 804 |
Die Autoren | 806 |
Index | 810 |