Der Oracle DBA - Handbuch für die Administration der Oracle Database 12c
von: Mirko Hotzy, Andrea Held, Marek Adar, Christian Antognini, Ronny Egner, Markus Flechtner, Angelika Gallwitz, Stefan Oehrli, Daniel Steiger
Carl Hanser Fachbuchverlag, 2016
ISBN: 9783446444201
Sprache: Deutsch
831 Seiten, Download: 25950 KB
Format: EPUB, PDF, auch als Online-Lesen
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 |