Inhaltsverzeichnis Teil I Installation, Architektur und Infrastruktur 15 1 1.1 1.2 1.3 1.4 Einleitung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der Aufbau des Buches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konventionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software und Skripte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Über den Autor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 18 19 20 20 2 2.1 Installation und Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software-Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Vorbereitung der Installation . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2 Die Oracle-Software installieren . . . . . . . . . . . . . . . . . . . . . . . Eine Oracle 12c-Datenbank erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . Beispielschemata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erste Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Windows-spezifische Besonderheiten . . . . . . . . . . . . . . . . . . . . . . . . . Administrationswerkzeuge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 Administration mit der Kommandozeile . . . . . . . . . . . . . . . . 2.6.2 Administration mit dem Oracle Enterprise Manager . . . . . . 2.6.3 Der Oracle SQLDeveloper . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hilfe und Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Praktische Tipps zur Datenbankadministration . . . . . . . . . . . . . . . . . 21 21 22 26 33 40 41 47 53 53 54 56 58 61 Die Oracle-Datenbankarchitektur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Übersicht der Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Die Struktur der Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 Die Struktur der Instanz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.3 Automatic Memory Management (AMM) . . . . . . . . . . . . . . . Prozesse und Abläufe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Die Oracle-Hintergrundprozesse . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Lesekonsistenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Pluggable Database-Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . 69 69 69 83 86 92 92 95 102 2.2 2.3 2.4 2.5 2.6 2.7 2.8 3 3.1 3.2 3.3 5 Inhaltsverzeichnis 4 4.1 4.2 Eine Pluggable Database installieren . . . . . . . . . . . . . . . . . . . . . . . . . . Eine Container-Datenbank erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . Eine PDB mit SQL*Plus erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 107 111 5 5.1 Interne Strukturen und Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datenbankstrukturen verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Tablespaces und Datafiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 113 113 6 6.1 6.2 6.3 6.4 Aufbau einer Datenbankinfrastruktur . . . . . . . . . . . . . . . . . . . . . . . . . Überwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Backup and Recovery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Standardisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagnostik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.1 Die Komponenten der Fault Diagnostic Infrastructure. . . . . 6.4.2 Die Support Workbench. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 124 133 134 135 136 139 Teil II Oracle-Datenbankadministration 145 7 7.1 7.2 7.3 147 148 151 157 158 159 162 167 174 177 178 181 181 182 183 184 188 189 190 7.4 7.5 6 Backup and Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Begriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Backup and Recovery-Strategien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der Recovery Manager (RMAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1 Die RMAN-Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.2 Einen Recovery-Katalog erstellen. . . . . . . . . . . . . . . . . . . . . . . 7.3.3 Die RMAN-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.4 Sicherungen mit RMAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.5 Sicherungen mit dem Oracle Enterprise Manager . . . . . . . . 7.3.6 Einen Media Manager verwenden. . . . . . . . . . . . . . . . . . . . . . Die Fast Recovery Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4.1 Dateien in die Fast Recovery Area legen . . . . . . . . . . . . . . . . . 7.4.2 Die Fast Recovery Area verwalten . . . . . . . . . . . . . . . . . . . . . . Restore und Recovery mit RMAN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5.1 Verlust eines Datafiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5.2 Disaster Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5.3 Verlust von Online Redo Log-Dateien. . . . . . . . . . . . . . . . . . . 7.5.4 Block Media Recovery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5.5 Der Data Recovery Advisor. . . . . . . . . . . . . . . . . . . . . . . . . . . . Inhaltsverzeichnis 7.5.6 Switch zur Datafile-Kopie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5.7 Eine Tabelle mit RMAN zurückspeichern . . . . . . . . . . . . . . . Wiederherstellung mit Flashback-Operationen . . . . . . . . . . . . . . . . . 7.6.1 Flashback Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.6.2 Flashback Drop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.6.3 Flashback Transaction History . . . . . . . . . . . . . . . . . . . . . . . . 7.6.4 Flashback Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tablespace Point-in-Time Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 195 199 200 201 202 203 207 Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Pump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.1 Die Data Pump-Architektur. . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.2 Data Pump-Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.3 Data Pump-Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.4 Data Pump über Datenbank-Link . . . . . . . . . . . . . . . . . . . . . . 8.1.5 Full Transportable Export/Import. . . . . . . . . . . . . . . . . . . . . . 8.1.6 Data Pump Performance und Monitoring . . . . . . . . . . . . . . . 8.1.7 Data Pump für Migrationen einsetzen . . . . . . . . . . . . . . . . . . 8.1.8 Ein Dumpfile nach Excel konvertieren . . . . . . . . . . . . . . . . . . 8.1.9 Data Pump mit dem Oracle Enterprise Manager . . . . . . . . . SQL*Loader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1 Daten laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.2 Externe Tabellen laden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.3 Daten entladen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 213 215 216 220 222 223 225 228 231 233 235 235 238 238 9 9.1 9.2 9.3 9.4 9.5 Job-Verwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Architektur des Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scheduler-Jobs verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Privilegien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Job-Ketten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automatisierte Wartungs-Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 241 241 244 245 246 10 10.1 10.2 10.3 10.4 Oracle Net Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Oracle Net-Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Server-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Shared Server-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oracle Net Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 248 253 256 259 7.6 7.7 8 8.1 8.2 7 Inhaltsverzeichnis 11 11.1 11.4 Sicherheit und Überwachung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlegende Features und Maßnahmen . . . . . . . . . . . . . . . . . . . . . 11.1.1 Benutzer, Rollen und Profile . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.2 Einfache Maßnahmen zur Erhöhung der Sicherheit. . . . . . . Auditing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.1 Out-of-the box Auditing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.2 Object Auditing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.3 Statement Auditing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.4 Privilege Auditing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.5 Session Auditing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.6 SYSDBA-Aktivitäten überwachen . . . . . . . . . . . . . . . . . . . . . . 11.2.7 Fine Grained Auditing (FGA) . . . . . . . . . . . . . . . . . . . . . . . . . Virtual Private Database (VPD). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.1 Application Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.2 Eine VPD konfigurieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Database Vault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 263 263 268 273 276 277 278 279 280 281 282 284 285 287 289 12 Der Oracle Resource Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 13 13.1 13.2 13.3 13.4 13.5 13.6 Globalization Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datentypen mit Zeitzonen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Hierarchie der NLS-Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . Linguistische Sortierung und Vergleiche. . . . . . . . . . . . . . . . . . . . . . . Der Oracle Locale Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der Character Set Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sprachen im Enterprise Manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 298 298 300 303 303 304 14 14.1 14.2 Die XML-Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Architektur der XML-DB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XML-Dokumente speichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.1 Die dokumentenbasierte Speicherung . . . . . . . . . . . . . . . . . . 14.2.2 Die objektrelationale Speicherung . . . . . . . . . . . . . . . . . . . . . XML-Dokumente abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 307 310 311 312 316 Automatic Storage Management (ASM) . . . . . . . . . . . . . . . . . . . . . . . Storage-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.1.1 Network Attached Storage (NAS) . . . . . . . . . . . . . . . . . . . . . . 15.1.2 Internet SCSI (iSCSI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.1.3 Storage Area Network (SAN) . . . . . . . . . . . . . . . . . . . . . . . . . . Die ASM-Architektur im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 320 321 321 323 325 11.2 11.3 14.3 15 15.1 15.2 8 Inhaltsverzeichnis 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 ASM-Disks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.3.1 ASM-Disks auf verschiedenen Plattformen . . . . . . . . . . . . . . 15.3.2 Eine Testumgebung aufsetzen . . . . . . . . . . . . . . . . . . . . . . . . Die ASM-Instanz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diskgruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ASM überwachen und verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6.1 ASM-Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6.2 ASMCMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6.3 Verwaltung mit dem Enterprise Manager . . . . . . . . . . . . . . . Das ASM Cluster-Filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.7.1 General Purpose ACFS-Dateisystem . . . . . . . . . . . . . . . . . . . CRS Managed ACFS-Dateisystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.8.1 ACFS Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Eine Datenbank nach ASM konvertieren . . . . . . . . . . . . . . . . . . . . . . 327 330 337 337 340 349 349 353 355 356 358 359 361 362 Upgrade und Patching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ein Upgrade umfassend planen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upgrade-Pfad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upgrade-Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upgrade mit dem DBUA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upgrade mit dem Oracle Enterprise Manager . . . . . . . . . . . . . . . . . . Manuelles Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upgrade auf Pluggable Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Patching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.8.1 Patching mit OPatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.8.2 Patching mit dem Enterprise Manager . . . . . . . . . . . . . . . . . 367 367 369 369 371 375 377 383 384 384 389 Teil III Erweiterte Administration und Spezialthemen 393 17 17.1 17.2 17.3 395 395 401 403 403 405 406 409 411 Pluggable Database (PDB) administrieren . . . . . . . . . . . . . . . . . . . . . Die Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Starten und Stoppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Eine PDB anlegen und migrieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.3.1 Ein Schema kopieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.3.2 Die Transportable Tablespace-Methode . . . . . . . . . . . . . . . . . 17.3.3 Eine PDB klonen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.3.4 In eine andere CDB klonen . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.3.5 Eine Nicht-CDB in eine PDB migrieren . . . . . . . . . . . . . . . . . 9 Inhaltsverzeichnis 17.4 17.5 17.6 17.7 17.8 17.9 Tablespaces verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Benutzer und Rollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schema-Objekte verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Backup und Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flashback-Operationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die PDB im Enterprise Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 413 415 416 420 421 18 18.1 Recovery-Szenarien für Experten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recovery und Strukturänderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.1.1 Szenario 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.1.2 Lösung 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.1.3 Szenario 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.1.4 Lösung 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der Trick mit den Redo Log-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . Der Data Recovery Advisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ein unbekanntes Szenario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ausfall des Recovery-Katalogs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der Oracle LogMiner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 424 424 426 428 429 432 436 438 440 442 Erweiterte Sicherheitsthemen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Netzwerksicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verschlüsselung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hackerangriffe abwehren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19.3.1 Angriffe auf den Authentifizierungsprozess abwehren. . . . . 19.3.2 PL/SQL Injection verhindern . . . . . . . . . . . . . . . . . . . . . . . . . 19.3.3 Brute Force-Attacken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datenbankaudits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oracle Data Redaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 447 450 453 454 456 460 462 465 Performance Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datenbank-Tuning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.1.1 Vorgehen und Werkzeuge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.1.2 Problemanalyse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.1.3 Instance Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.1.4 Disk Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Real Time ADDM-Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SQL Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.3.1 Adaptives Cursor Sharing (ACS) . . . . . . . . . . . . . . . . . . . . . . . 20.3.2 Adaptive Ausführungspläne . . . . . . . . . . . . . . . . . . . . . . . . . . 20.3.3 Dynamische Statistiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 472 472 474 490 506 509 510 511 514 520 18.2 18.3 18.4 18.5 18.6 19 19.1 19.2 19.3 19.4 19.5 20 20.1 20.2 20.3 10 Inhaltsverzeichnis 21 21.1 21.2 21.3 21.4 Real Application Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workload Capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workload Preprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workload Replay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SQL Performance Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4.1 Eine SQL-Anweisung analysieren . . . . . . . . . . . . . . . . . . . . . . 523 526 529 530 533 535 Teil IV Data Warehouse 543 22 22.1 22.2 22.3 22.4 22.5 22.6 Ein Data Warehouse planen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schritte zur Planung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Das Projektteam bilden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Rolle des Datenbankadministrators . . . . . . . . . . . . . . . . . . . . . . . Die Architektur des Data Warehouse. . . . . . . . . . . . . . . . . . . . . . . . . . Das Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hard- und Software für das DWH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.6.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.6.2 Software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 546 547 548 550 553 555 555 556 23 23.1 23.2 23.3 Der Oracle Warehouse Builder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation und Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OWB-Datenquellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die ETL-Logik des OWB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 561 569 571 24 24.1 24.2 24.3 24.4 24.5 ETL in der Praxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ETL-Werkzeuge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabellenfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Change Data Capture (CDC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transportable Tablespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weitere ETL-Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 580 581 584 588 590 25 25.1 25.2 OLAP und Reporting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SQL für Data Warehouse-Abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . SQL-Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 594 600 26 26.1 26.2 26.3 26.4 Administration von Data Warehouse-Datenbanken . . . . . . . . . . . . . . Partitionierung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Indexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Materialized Views (MV). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Backup and Recovery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 607 613 616 625 11 Inhaltsverzeichnis Teil V Hochverfügbarkeit 627 27 27.1 27.2 Data Guard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Physical Standby-Datenbanken. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27.2.1 Vorbereitung der Primärdatenbank . . . . . . . . . . . . . . . . . . . . 27.2.2 Vorbereitung der Standby-Datenbank. . . . . . . . . . . . . . . . . . . 27.2.3 Kopieren der Primärdatenbank . . . . . . . . . . . . . . . . . . . . . . . . 27.2.4 Aktivierung von Data Guard . . . . . . . . . . . . . . . . . . . . . . . . . . 27.2.5 Physical Standby-Datenbanken verwalten . . . . . . . . . . . . . . . Logical Standby-Datenbanken. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629 630 632 635 637 639 640 642 663 28 28.1 28.2 Global Data Services (GDS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Architektur und Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Eine GDS-Umgebung aufsetzen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28.2.1 Den GSM installieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28.2.2 Den GDS-Katalog erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . 28.2.3 GSM zum Katalog hinzufügen . . . . . . . . . . . . . . . . . . . . . . . . 28.2.4 Pool, Region, Datenbanken und Services hinzufügen. . . . . . 28.2.5 GDS Client-Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671 671 674 674 676 677 677 678 29 29.1 29.2 29.3 Real Application Clusters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cluster-Architekturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cache Fusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation und Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29.3.1 Die Installation vorbereiten . . . . . . . . . . . . . . . . . . . . . . . . . . . 29.3.2 Die Grid Infrastructure installieren . . . . . . . . . . . . . . . . . . . . 29.3.3 Die Datenbank-Software installieren. . . . . . . . . . . . . . . . . . . . 29.3.4 Eine RAC-Datenbank erstellen . . . . . . . . . . . . . . . . . . . . . . . . Real Application Clusters administrieren . . . . . . . . . . . . . . . . . . . . . . 29.4.1 ORAchk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29.4.2 Die RAC-Datenbank verwalten . . . . . . . . . . . . . . . . . . . . . . . . RAC-Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Backup and Recovery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RAC und Data Guard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oracle Restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681 683 686 691 692 698 708 712 718 718 722 736 741 743 744 27.3 29.4 29.5 29.6 29.7 29.8 12 Inhaltsverzeichnis Teil VI Oracle Cloud Computing 747 30 30.1 30.2 Den Enterprise Manager installieren . . . . . . . . . . . . . . . . . . . . . . . . . . Hardware- und Software-Anforderungen . . . . . . . . . . . . . . . . . . . . . . Die Installation durchführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749 749 750 31 31.1 31.2 31.3 31.4 Oracle Cloud Computing mit dem Enterprise Manager . . . . . . . . . . Cloud Computing für Oracle Datenbanken . . . . . . . . . . . . . . . . . . . . Die Cloud Management Infrastructure einrichten . . . . . . . . . . . . . . . Provisioning mit dem Enterprise Manager . . . . . . . . . . . . . . . . . . . . . Den DBaaS-Service einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4.1 Einen Datenbank-Pool anlegen . . . . . . . . . . . . . . . . . . . . . . . . 31.4.2 Die Anforderungen und Quotas festlegen . . . . . . . . . . . . . . . 31.4.3 Ein Provisioning-Profil und Service-Vorlage erstellen . . . . . 31.4.4 Eine Pluggable Database erstellen . . . . . . . . . . . . . . . . . . . . . 759 759 760 765 768 769 770 771 771 32 32.1 Verwaltung der Datenbankinfrastruktur . . . . . . . . . . . . . . . . . . . . . . . Verwaltung von Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.1 Den Agent ausrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.2 Weitere Ziele registrieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.3 Allgemeine Verwaltungsfunktionen . . . . . . . . . . . . . . . . . . . . Datenbanken überwachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cloning und Replikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upgrades und Patching. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775 775 777 780 782 788 791 793 Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795 32.2 32.3 32.4 13 Kapitel 2 Installation und Konfiguration In diesem Kapitel werden die Installation der Oracle-Software sowie der Aufbau einer Standarddatenbank beschrieben. Die Beschreibung erfolgt auf Basis einer Linux-Installation. Das Vorgehen kann auf andere UNIX-Betriebssysteme wie AIX, Solaris oder HP unter Beachtung der plattformspezifischen Besonderheiten übertragen werden. Auf Unterschiede im Windows-Umfeld wird entsprechend verwiesen. Die hier erstellte Datenbank können Sie als Übungsdatenbank für alle im Buch verwendeten Beispiele und Skripte, die sich auf eine Standarddatenbank beziehen, nutzen. Oracle 12c hält für die Datenbank folgende Editionen bereit: 쐽 Standard Edition one 쐽 Standard Edition 쐽 Enterprise Edition 쐽 Personal Edition (Windows) Die Editionen unterscheiden sich in Funktionsumfang und Lizenzkosten. Um alle im Buch beschriebenen Features und Beispiele nachvollziehen und testen zu können, sollten Sie die Enterprise Edition installieren. Wenn Sie nicht über eine Datenbanklizenz verfügen, dann können Sie eine kostenlose Entwicklerlizenz erwerben. Beachten Sie in jedem Fall die Lizenzbedingungen der Firma Oracle. Das Thema Pluggable Database (Multitenant Database) wird in diesem Kapitel außen vor gelassen. Informationen zur Installation von Pluggable Databases finden Sie in Kapitel 4. Die Administration wird in Kapitel 17 behandelt. 2.1 Software-Installation Die Installation selbst erfolgt mit dem Oracle Universal Installer. Es besteht die Möglichkeit, Software und Datenbank in einem Durchlauf anzulegen. Es ist jedoch zu empfehlen, besonders wenn Sie neu im Oracle-Umfeld sind, die Installation von Software und Datenbank in zwei getrennten Schritten durchzuführen. Die Installation der Software gliedert sich in zwei Teile: die Vorbereitung des Betriebssystems sowie die Durchführung der Installation. 21 Kapitel 2 Installation und Konfiguration 2.1.1 Vorbereitung der Installation Die Vorbereitung des Betriebssystems für die Installation ist ein wichtiger Prozess. Bereits hier entscheidet sich, wie stabil und fehlerfrei die Datenbank später laufen wird. Sie können die Software von der Website http://www.oracle.com/technetwork herunterladen. Dort finden Sie die zu Ihrem Betriebssystem passende Software. Wir installieren auf »Oracle Enterprise Linux 6.5«. Die Oracle-Software für eine 64-Bit-Version des Betriebssystems finden Sie unter der Kategorie »Linux x86-64«. Eine weitere Quelle für das Download ist die Website http://edelivery.oracle.com. Hier finden Sie die komplette Produkt-DVD. Hinweis Verwenden Sie für produktive Systeme die Website http://edelivery. oracle.com, da sich auf dieser Seite die offizielle Produkt-DVD befindet. Für die Installation der Datenbanksoftware benötigen Sie nur den Teil »Oracle Database 12c for Linux x86-64«. Der Teil »Grid Infrastructure« wird nur benötigt, wenn Automatic Storage Management oder Hochverfügbarkeitsfeatures wie Real Application Clusters zum Einsatz kommen. Darauf wollen wir an dieser Stelle verzichten. Wichtig Verwenden Sie ausschließlich durch Oracle zertifizierte Betriebssystemversionen. Andernfalls erhalten Sie bei Problemen möglicherweise keinen Support. Die aktuelle Zertifizierungsliste finden Sie auf der Website http://support.oracle.com. In Tabelle 2.1 sind die mit der Datenbankversion 12.1.0.1 zertifizierten Linux-Betriebssysteme aufgelistet. Betriebssystem Linux x86-64 Oracle Linux 5 Linux x86-64 Oracle Linux Linux x86-64 Red Hat Enterprise Linux 5 Linux x86-64 Red Hat Enterprise Linux 6 Linux x86-64 SuSe SLES 11 Status Zertifiziert Zertifiziert Zertifiziert Zertifiziert Zertifiziert Tabelle 2.1: Zertifizierung von Linux-Betriebssystemen mit Oracle 12c Tipp Um den Aufwand für die Vorbereitung des Betriebssystems zur Installation der Oracle Grid- und Datenbanksoftware möglichst gering zu halten, können Sie unter Linux 6 das sogenannte »Oracle RDBMS Pre-Install RPM« installieren. 22 2.1 Software-Installation Die Installation des Pakets kann nach der Installation des Betriebssystems erfolgen. Sie finden das Paket auf dem ULN-Server (Unbreakable Linux Network) im Channel »Oracle Linux 6 Latest (x86_64)«. Der Name des Pakets ist »oraclerdbms-server-12cR1-preinstall-1.0-8.el6.x86_64.rpm«. # rpm -i oracle-rdbms-server-12cR1-preinstall-1.0-8.el6.x86_64.rpm Listing 2.1: Das Pre-Install-Paket für Oracle 12c installieren Mit der Installation des Pakets werden Vorbereitungsschritte wie die komplette Einrichtung des Users oracle oder das Eintragen der Kernelparameter in die Datei /etc/sysctl.conf vorgenommen. Überprüfen Sie, bevor Sie mit der Installation beginnen, ob die Mindestanforderungen an Hard- und Software erfüllt sind. Die Anforderungen sind: 쐽 1 GB Hauptspeicher (RAM), empfohlen werden 2 GB oder mehr 쐽 1 GB freier Speicherplatz im Verzeichnis »/tmp« 쐽 6,4 GB für die Datenbanksoftware 쐽 Swap Space: gleich der RAM-Größe (bis 16 GB RAM) und 16 GB (mehr als 16 GB RAM) Mit dem Einsatz von Automatic Memory Management (so wie es seit Oracle 11g bekannt ist) muss das Shared Memory durch das Betriebssystem zur Verfügung gestellt werden. Überprüfen Sie, ob das erforderliche Memory zur Verfügung steht: # df -h /dev/shm Filesystem shmfs Size 3.0G Used Avail Use% Mounted on 0 1.0G 0% /dev/shm Hinweis Erfüllt das nach »/dev/shm« gebundene Shared Memory die Mindestanforderungen nicht, dann erhalten Sie beim ersten Startversuch (beim Erstellen) der Datenbank die Fehlermeldung »ORA-00854 MEMORY_TARGET is not supported on this system«. Führen Sie die folgenden Schritte durch, um genügend Memory zur Verfügung zu stellen: 1. Anhängen des Hauptspeichers: # mount -t tmpfs shmfs -o size=3G /dev/shm 23 Kapitel 2 Installation und Konfiguration 2. Um die Änderung über einen Neustart persistent zu machen, muss die folgende Zeile in die Datei /etc/fstab eingefügt werden: shmfs /dev/shm tmpfs size=3G 0 0 Falls Sie das »Oracle RDBMS Pre-Install RPM« installiert haben, dann wurde die Mehrzahl der Vorbereitungsarbeiten bereits durchgeführt. In der folgenden Beschreibung finden Sie die einzelnen Schritte für die manuelle Vorbereitung des Betriebssystems. Die folgenden Aktionen werden mit dem Benutzer root vorgenommen. Prüfen Sie, ob die richtige Betriebssystemversion installiert ist. Für die Datenbank der Version 12.1 ist Oracle Enterprise Linux der Version 6 zu empfehlen. Es besitzt eine gute Kompatibilität auch bezogen auf die Anforderungen der Versionen der Softwarepakete. # cat /etc/oracle-release Oracle Linux Server release 6.4 Erstellen Sie nun die erforderlichen Gruppen und Benutzer im Betriebssystem. Folgende Gruppen werden benötigt: 쐽 OSDBA: Enthält die Benutzer mit SYSDBA-Rechten in der Datenbank. In der Regel wird der Gruppenname dba verwendet. Mit diesem Privileg ist es zum Beispiel möglich, die Datenbank zu starten und herunterzufahren. 쐽 OSOPER: Diese Gruppe ist optional. Sie repräsentiert Benutzer mit eingeschränkten operativen Aufgaben wie zum Beispiel dem Sichern einer Datenbank. Das zugehörige Privileg in der Datenbank ist SYSOPER. Wenn Sie keine separate Trennung der Rollen wünschen, dann können diese Aufgaben durch die Mitglieder der Gruppe dba ausgeführt werden. Der Standardname ist oper. 쐽 OSBACKUPDBA: Die Gruppe kann für eine Rollentrennung für das Datenbank-Backup verwendet werden. Der Standardname ist backupdba. 쐽 Oracle Inventory-Gruppe: Das ist die Gruppe für den Eigentümer der OracleSoftware und den Verwalter des Inventory. Auch wenn die Gruppe optional ist und ihrer Stelle die Gruppe dba verwendet werden kann, empfiehlt sich eine Trennung. Der Standardname ist oinstall. Es gibt eine Reihe weiterer Gruppen, die wir jedoch an dieser Stelle nicht benötigen. # # # # groupadd groupadd groupadd groupadd oinstall -g 502 dba -g 503 oper -g 507 backupdba Listing 2.2: Gruppen im Betriebssystem anlegen 24 2.1 Software-Installation Legen Sie nun den Benutzer oracle als Eigentümer der Software und Verwalter der Datenbanken. Der Benutzername kann frei gewählt werden. Er erhält die Gruppe oinstall als primäre Gruppe und zusätzlich mindestens die Gruppe dba. Damit ist er in der Lage, Upgrades und Patches zu implementieren und u.a. die Datenbank zu starten und zu stoppen. # useradd -g oinstall -G dba,oper,backupdba -s /bin/ksh oracle Hinweis Unter Windows müssen keine Gruppen angelegt werden. Das Anlegen erfolgt automatisch durch den Universal Installer. Im nächsten Schritt müssen die Grenzen für die Ressourcen des Betriebssystems angepasst werden. Das betrifft insbesondere die Anzahl der offenen DateiDeskriptoren sowie die maximale Anzahl von Prozessen. Nehmen Sie dazu die folgenden Einträge in der Datei /etc/security/lmits.conf vor: oracle oracle oracle oracle oracle soft hard soft hard soft nproc nproc nofile nofile stack 2047 16384 1024 65535 10240 Im nächsten Schritt werden die Kernel-Parameter für den Betrieb der OracleDatenbank angepasst. Die Anpassung ist auf anderen Betriebssystemen wie AIX, Solaris oder Windows nicht erforderlich. Tragen Sie die folgenden Werte in die Datei /etc/sysctl.conf ein: fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 Führen Sie den folgenden Befehl aus, um die Werte über einen Neustart des Servers persistent zu machen: # sysctl -p 25