Die Oracle Datenbank 19c (eBook)
XIII, 749 Seiten
Springer Berlin Heidelberg (Verlag)
978-3-662-62570-5 (ISBN)
Thorsten Grebe berät und betreut seit über 15 Jahren Organisationen aus Wirtschaft und öffentlichem Dienst zur Oracle Datenbank. Er ist Oracle Certified Master (OCM) und hat auf der DOAG Jahreskonferenz in Nürnberg, Europas größter Oracle Anwenderkonferenz, mehrere Vorträge zu Kernthemen der Oracle Datenbank gehalten.
Vorwort 5
Inhaltsverzeichnis 9
1: Einführung 14
1.1 Warum Oracle? 14
1.2 Versionen, Funktionen, Meilensteine in der Entwicklung der Oracle Datenbank 16
1.3 Vorgefertigte Komplettsysteme/Engineered Systems 21
1.4 Neue Funktionen in neuen Datenbankversionen 23
1.4.1 Neue Funktionen in 11g 24
1.4.2 Neue Funktionen in 12c 27
1.4.2.1 Mandantenfähigkeit – die Pluggable Database 28
1.4.3 Neue Funktionen im Überblick für die aktuellen Versionen 29
1.5 Die großen Trends 31
1.5.1 Standardisierung – Automatisierung – Konsolidierung 32
1.5.1.1 Standardisierung 32
1.5.1.2 Automatisierung 33
1.5.1.3 Konsolidierung 34
1.5.2 Plötzlich Multitenant. Von der Schema- zur Datenbankkonsolidierung 36
Literatur 43
2: Installation 44
2.1 Installationsvorbereitungen 45
2.1.1 Zeit nehmen vor dem ersten Spatenstich 45
2.1.2 Installationsvoraussetzungen prüfen 45
2.1.3 Literaturstudium – einlesen, bevor es losgeht 45
2.2 Wahl des Betriebssystems 48
2.2.1 Betriebssystem und Kernel 50
2.2.1.1 Betriebssystem-Pakete 51
2.3 Plattenplatz, SWAP Space und RAM 53
2.4 Resource Limits 55
2.4.1 limits.conf 55
2.4.2 sysctl.conf 56
2.5 Benutzer und Gruppen 57
2.6 Auswahl des Dateisystems 59
2.7 Auswahl des Oracle Home Verzeichnisses 62
2.7.1 Basispfad zum Oracle-Homeverzeichnis 63
2.7.2 Benennung des Oracle Home Unterverzeichnisses 64
2.8 Editionen: Enterprise, Standard, Express und weitere 66
2.8.1 Die wichtigsten Funktionsunterschiede zwischen Enterprise und Standard Edition 70
2.8.2 XE – die freie Express Edition 73
2.8.3 Abkehr von Oracle zu anderen Datenbankherstellern 74
2.9 Oracle Softwarelizenzierung 75
2.9.1 ESL, ASFU, OTN, OPN, PE 76
2.9.2 Full-Use-Lizenzen 77
2.9.2.1 NUP – Named User Plus 77
2.9.2.2 Prozessorlizenzen 78
2.9.3 Lizenzverstöße durch Aufklärung der Kollegen verhindern 81
2.10 Installation einer Testumgebung – der Schnelleinstieg über VirtualBox-Templates 82
2.11 Oracle in der Cloud 84
2.11.1 Cloud: Public, Private, Hybrid & Sicherheit
2.11.2 Oracles Cloudangebote 87
2.12 Express Edition – die freie XE Datenbank 91
2.12.1 XE Installieren 92
2.12.2 Oracle XE deinstallieren 97
2.13 Datenbankinstallation für den produktiven Einsatz 99
2.13.1 Download der Software – mehrere Wege zum Downloadziel 100
2.13.2 Vorbereitung des Hostsystems für die Datenbankinstallation 102
2.13.2.1 Storageanbindung 103
2.13.2.1.1 Speicherort für die Datenbankdateien 103
2.13.2.1.2 Speicherort für Backups und Archivelogs 104
2.13.2.1.3 Speicherort für Redologs 104
2.13.3 Installation der Datenbanksoftware – mit grafischem Installer 105
2.13.4 Silent Installation – stille Installation ohne grafischen Installer 112
2.13.5 Installation per RPM (nur Linux) 115
2.13.6 Eine Datenbank erstellen – CDB oder Non-CDB? 116
2.13.6.1 Eine Non-CDB mit dem grafischen DBCA erstellen 118
2.13.6.1.1 Erstellmodi im DBCA – der Expressmodus 120
2.13.6.1.2 Deployment-Typen – erweiterte Konfiguration im DBCA 120
2.13.6.1.3 Datenbankidentifikation – die Namenfindung 122
2.13.6.1.4 Speicherungsoptionen – Ablage von Datenbank- und Sicherungsdateien 123
2.13.6.1.5 Netzwerkkonfiguration – der Listener 125
2.13.6.1.6 Datenbankoptionen – nur was bezahlt ist und wirklich benötigt wird! 128
2.13.6.1.7 Konfigurationsoptionen – Memory, Prozesslimits, Zeichensatz 130
2.13.6.1.8 Verwaltungsoptionen – Enterprise Manager (EM) in zwei Varianten 136
2.13.6.1.9 Benutzerzugangsdaten 139
2.13.6.1.10 Erstelloptionen 139
2.13.6.1.11 Überblick 140
2.13.6.1.12 Installation und Abschluss des DBCA 141
2.13.6.2 Eine CDB mit dem grafischen DBCA erstellen 143
2.13.6.3 Der Einsatz des DBCA ohne Grafik – der Silent Modus 148
2.13.6.3.1 Datenbankkomponenten nachinstallieren 156
2.13.7 Deinstallation 157
2.13.7.1 Datenbank entfernen 157
2.13.7.2 Datenbanksoftware entfernen 157
2.13.8 Installation älterer Softwarestände: -ignoreSysPrereqs 158
2.14 RAC – Real Application Clusters 158
2.14.1 RAC – Grid Infrastructure einrichten 161
2.14.1.1 Hostsysteme planen 163
2.14.1.2 Storage planen 163
2.14.1.3 IP-Adressen und Hostnamen vorbereiten 164
2.14.1.4 Software beziehen 167
2.14.1.5 Betriebssysteme konfigurieren 168
2.14.1.6 Hostnamen und Netzwerkgeräte konfigurieren 169
2.14.1.7 SE-Linux deaktivieren oder konfigurieren 173
2.14.1.8 Zeitdienst NTP anpassen 173
2.14.1.9 Oracle Gruppen und Benutzer, Kernel-Parameter, Shell-Limits, fehlende Pakete 174
2.14.1.10 Shell-Limits/Kernel-Parameter/Grub-Konfiguration/Betriebssystem-Pakete 175
2.14.1.11 Dateisysteme, Einhängepunkte, Verzeichnisse & Laufwerke vorbereiten
2.14.1.11.1 Verzeichnis für die Software der Grid-Infrastruktur 178
2.14.1.11.2 Verzeichnis für die Datenbanksoftware 179
2.14.1.11.3 Diagnoseverzeichnis für Logs & Traces
2.14.1.11.4 ASM-Laufwerke für Datenbankdateien 180
2.14.1.11.5 Ablage für Backupdateien 180
2.14.1.12 Aufruf des Clusterkonfigurationsprogrammes – gridSetup.sh 183
2.14.1.12.1 Schritt 1 – Konfigurationsoptionen 184
2.14.1.12.2 Schritt 2 – Clusterkonfiguration 185
2.14.1.12.3 Schritt 3 – Grid Plug & Play-Information
2.14.1.12.4 Schritt 4 – Clusterkonteninformation 188
2.14.1.12.5 Schritt 5 – Netzwerkschnittstellenverwendung 190
2.14.1.12.6 Schritt 6 – Informationen zu Speicheroptionen (ASM) 191
2.14.1.12.7 Schritt 7 – Grid Infrastructure Management Repository 192
2.14.1.12.8 Schritt 8 – ASM-Plattengruppen erstellen (OCR) 192
2.14.1.12.9 ASMLIB einrichten, wenn ASMFD nicht unterstützt wird 194
2.14.1.12.10 ASMLIB Statuscheck 195
2.14.1.12.11 Schritt 9 – GIMR Datenträgergruppe erstellen 199
2.14.1.12.12 Schritt 10 – ASM-Kennwort angeben 199
2.14.1.12.13 Schritt 11 – Unterstützung von Fehlerisolierung 200
2.14.1.12.14 Schritt 12 – Verwaltungsoptionen 200
2.14.1.12.15 Schritt 13 – Berechtigte Betriebssystemgruppen 201
2.14.1.12.16 Schritt 14 – Installationsverzeichnis angeben 202
2.14.1.12.17 Schritt 15 – Bestandsverzeichnis erstellen 203
2.14.1.12.18 Schritt 16 – Konfiguration der Root-Skriptausführung 204
2.14.1.12.19 Schritt 17 – Voraussetzungsprüfungen ausführen 204
2.14.1.12.20 Schritt 18 – Überblick 206
2.14.1.12.21 Schritt 19 – Produkt installieren 206
2.14.1.12.22 Weitere Diskgruppen vorbereiten 210
2.14.2 RAC-Datenbanksoftware installieren 18c/19c 212
2.14.2.1 Gemischte Datenbankversionen 214
2.14.3 RAC Container-Datenbank mit einer PDB anlegen 214
2.14.3.1 Entscheidungen zur Datenablage 215
2.14.3.2 Aufruf des DBCA 216
2.14.3.2.1 Datenbanktyp und Konfigurationstyp 216
2.14.3.2.2 Knotenauswahl oder Serverpool anlegen 217
2.14.3.2.3 Datenbankname, Containertyp und weitere Konfiguration 218
2.14.3.3 RAC/GI Installation Troubleshooting 223
2.14.3.3.1 Mit Cluvfy die Installationsvoraussetzungen prüfen 225
Literatur 227
3: Oracle Datenbank Grundlagen 228
3.1 Verbindung mit einer Oracle Datenbank aufnehmen 229
3.1.1 Oracle Net Services 229
3.1.2 Verbindungsaufbau zur Datenbank und Authentifizierung 229
3.1.2.1 Verbindungen ohne Listener – nur lokal mit SYS*-Privilegien 231
3.1.2.1.1 Die Verbindungsbeschreibung zur Datenbank, TNS-Alias und EZCONNECT 234
3.1.2.1.2 Gültige Zugangsdaten – die Benutzer-Authentifizierung 237
3.1.2.1.3 Das Create-Session-Privileg – die erste Benutzer-Autorisierung 239
3.1.2.2 Verbindungsrelevante Konfigurationsdateien 241
3.1.2.2.1 tnsnames.ora und TNS-Aliase 241
3.1.2.2.2 listener.ora und der Datenbank-Listener 244
3.1.2.2.3 sqlnet.ora 248
3.1.2.2.3.1 SDU – die Session Data Unit Size – „more data to client“ 249
3.1.2.2.3.2 Timeout-Parameter – ORA-12170 251
3.1.2.2.3.3 sqlnet.expire_time – DCD – tote Verbindungen beerdigen 252
3.1.2.2.3.4 allowed_logon_version_* – ORA-28040/ORA-03134 253
3.1.2.2.3.5 Blacklisting & Whitelisting
3.1.2.2.4 Suchreihenfolge für SQL*Net Konfigurationsdateien 254
3.1.2.2.5 Wann werden Änderungen an tnsnames.ora, listener.ora und sqlnet.ora wirksam? 255
3.1.2.2.5.1 tnsnames.ora 255
3.1.2.2.5.2 listener.ora 256
3.1.2.2.5.3 sqlnet.ora 256
3.1.3 Verbindungsarten – Dedicated/Shared/Connection Pools 258
3.1.3.1 Dedicated Server 258
3.1.3.2 Shared Server 258
3.1.3.3 DRCP – Database-Resident-Connection-Pool 259
3.1.3.4 Proxy-Resident-Connection-Pooling 260
3.2 Enterprise Manager Express (EM Express) 260
3.2.1 setglobalportenabled 263
3.2.2 setlistenerlocalaccess 264
3.2.3 EM Express Privilegien 264
3.2.4 EM Express URL ermitteln 264
3.2.5 Troubleshooting EM Express 264
3.2.6 EM Express mit Java Jet – oder mit Flash 266
3.3 SQL*Plus und SQLcl 268
3.3.1 login.sql und glogin.sql 269
3.4 Umgebungsvariablen 271
3.4.1 Ein kurioses Experiment mit der Variable SQLPATH 275
3.5 Aufbau einer Oracle Datenbank – Datenbank-Architektur 276
3.5.1 Oracles Unterscheidung zwischen Instanz und Datenbank 276
3.5.2 Eine Instanz starten und stoppen 277
3.5.2.1 Phase 1 – STARTED 277
3.5.2.2 Phase 2 – MOUNTED 279
3.5.2.3 Phase 3 – OPEN 281
3.5.2.4 Shutdown – Herunterfahren einer Datenbankinstanz 282
3.5.2.5 Welcher Shutdown ist der geeignete? 284
3.5.3 Die Dateien einer Oracle Datenbank 285
3.5.3.1 Die Kontrolldatei 287
3.5.3.1.1 Sicherungen der Kontrolldatei 292
3.5.3.1.2 Kontrolldateien umbenennen, verschieben, duplizieren 294
3.5.3.2 Datendateien und Tablespaces 295
3.5.3.2.1 Datendateien umbenennen oder verschieben – move datafile (nur EE) 299
3.5.3.2.2 Datendateien verschlüsseln und komprimieren (nur EE mit Zusatzoptionen) 299
3.5.3.3 Redologs und Archivelogs 300
3.5.3.3.1 Platzierung der Online-Redologs – OMF & db_create_online_log_dest_*
3.5.3.3.2 Redologs im laufenden Betrieb vergrößern 305
3.5.3.3.3 Archivelog-Modus 307
3.5.3.3.4 Speicherort für Archivelogs – Standard vs. Enterprise Edition 310
3.5.3.3.4.1 log_archive_dest & log_archive_duplex_dest obsolet in Enterprise Edition
3.5.3.4 Die Passwortdatei/Kennwortdatei/password file 316
3.5.3.4.1 Anlegen einer Passwortdatei 317
3.5.3.4.2 Legacy (pre-12c) Passwortdateien in das 12.2 Format umwandeln 320
3.5.3.4.3 Passwortdateien deaktivieren und aktivieren – remote_login_passwordfile 320
3.5.3.4.4 Wann werden Passwortdateien benötigt? 322
3.5.3.4.5 Den Inhalt einer Passwortdatei auslesen 322
3.5.3.4.6 Passwortdateien im RAC 323
3.5.3.4.7 Passwortdateien für ASM-Instanzen 325
3.5.3.4.8 flush passwordfile_metadata_cache 325
3.5.4 Die Dateien einer Oracle Instanz 326
3.5.4.1 Die Parameterdatei – Pfile und Spfile 326
3.5.4.1.1 Suchreihenfolge für Parameterdateien 330
3.5.4.2 Log-, Trace- und Dumpdateien 331
3.5.4.3 Sperrdateien, Healthcheckdateien, Socketdateien, … 332
3.5.5 Tablespaces, Segmente, Extents und Blöcke 334
3.5.5.1 Datenbankblöcke 336
3.5.5.1.1 Aufbau eines Oracle Datenblocks 338
3.5.5.2 Extents 341
3.5.5.2.1 Extent einer Datendatei 341
3.5.5.2.2 Extent eines Segments – Extentverwaltung 342
3.5.5.2.3 Die View dba_extents 344
3.5.5.3 Segmente 345
3.5.5.3.1 Deferred Segment Creation – verzögerte Initialisierung von Segmenten 348
3.5.5.3.2 Automatic Segment Space Management (ASSM) 351
3.5.5.4 Tablespaces 353
3.5.5.4.1 Dateien eines Tablespaces – Smallfile vs. Bigfile 354
3.5.5.4.2 Unterschiedliche interne Blockadressierung – ROWID 355
3.5.5.4.3 Einen Tablespace anlegen 355
3.5.5.4.4 Datendateien zu einem Tablespace hinzufügen 357
3.5.5.4.5 Der Tablespace USERS 359
3.5.5.4.6 Der Tablespace -TEMP 360
3.5.5.4.6.1 Private Temporary Table – ora$ptt_* 361
3.5.5.4.7 Verweise auf Tablespaces 362
3.5.5.4.8 Shadow Tablespaces – Lost Write Protection 363
3.6 Funktionen, Optionen und Komponenten der Datenbank 364
3.6.1 Datenbankkomponenten entfernen oder hinzufügen 365
3.6.2 Begrifflichkeiten: Datenbankoption versus Datenbankkomponente 368
3.7 Initialisierungsparameter einer Datenbank 369
3.7.1 Basisparameter 373
3.7.1.1 cluster_database 374
3.7.1.2 compatible 374
3.7.1.3 control_files 374
3.7.1.4 *dest*-Basisparamter 374
3.7.1.5 sga_target & pga_aggregate_target
3.7.1.6 db_block_size 375
3.7.1.7 db_name 375
3.7.2 Ausgewählte Initialisierungsparameter 376
3.7.2.1 cursor_sharing 377
3.7.2.2 db_file_multiblock_read_count 377
3.7.2.3 optimizer_mode 377
3.7.2.4 Initialisierungsparameter zur Lizenzkontrolle 378
3.7.2.4.1 control_management_pack_access 378
3.7.2.4.2 license_max_users 378
3.7.2.5 cpu_count – Instance Caging 379
3.7.2.5.1 Instance Caging 381
3.7.2.6 Initialisierungsparameter für OMF 381
3.7.2.6.1 db_create_file_dest 381
3.7.2.6.2 db_create_online_log_dest* 382
3.7.2.7 log_archive_dest* – Archivierungsziele 382
3.7.2.8 log_archive_min_succeed_dest 383
3.7.2.9 archive_lag_target – Logswitches erzwingen 384
3.7.2.10 db_recovery_file_dest & db_recovery_file_dest_size – Recovery Area
3.7.2.10.1 Die Variable USE_DB_RECOVERY_FILE_DEST 386
3.7.2.11 db_block_size/db_nk_cache_size – Tablespace-Blockgrößen 386
3.7.2.12 parallel_* – Parameter für parallele Verarbeitung 387
3.7.2.12.1 parallel_threads_per_cpu – zentrale Drosselung 389
3.7.2.12.2 parallel_max_servers 390
3.7.2.12.3 parallel_degree_limit 391
3.7.2.12.4 Auto-DOP aktivieren – der Autopilot für Parallelität 391
3.7.2.12.5 calibrate_io – Hardware-Kalibrierung für parallele Ausführungen 392
3.7.2.12.6 Deprecated: parallel_adaptive_multi_user 395
3.7.2.12.7 De-supported seit 12.2.0.1: parallel_io_cap_enabled, … 395
3.7.2.13 processes & sessions
3.7.2.14 optimizer_features_enable – OFE – der grobe Schalter für den Optimizer 396
3.7.2.15 pga_aggregate_limit (ab 12.1.0.2) 398
3.7.2.16 instance_abort_delay_time (ab 12.2.0.1) 398
3.7.2.17 PDB-spezifische Initialisierungsparameter 399
3.7.2.17.1 max_iops – I/O einer PDB kontrollieren 399
3.7.2.17.2 max_mbps – Lesedurchsatz einer PDB kontrollieren 400
3.7.2.17.3 Memoryparameter für PDBs individuell anpassen 400
3.8 Die Prozesse einer Oracle Datenbankinstanz 400
3.8.1 Hintergrundprozesse einer Oracle Datenbank 401
3.8.1.1 Die essenziellen Fünfzehn bis Zwanzig 405
3.8.1.1.1 Der Prozessmonitor PMON 406
3.8.1.1.2 CLMN – der Cleanup-Hauptprozess 407
3.8.1.1.3 Der Logwriter LGWR 408
3.8.1.1.3.1 Wann wird der Logwriter aktiv? 408
Wie viele Logwriter-Prozesse gibt es in einer Instanz? 409
3.8.1.1.4 DBW(R) – der Database Writer 411
3.8.1.1.5 CKPT – der Checkpoint-Prozess 412
3.8.1.1.6 SMON – der Systemmonitor 413
3.8.1.1.7 LREG – Listener Registration 414
3.8.1.1.8 VKTM – der Virtual Keeper of Time 414
3.8.1.1.9 MMON & MMNL – die Manageability Monitore
3.8.1.1.10 MMAN – der Memory Manager 414
3.8.1.2 Weitere Hintergrundprozesse 415
3.8.1.2.1 SAnn – der SGA-Allocator 415
3.8.1.2.2 ARCn – die Archiverprozesse 415
3.8.1.2.3 CTWR – der (Block) Change Tracking Writer 416
3.8.1.2.4 AQPC & CJQ0 – Queueing-Prozesse
3.8.1.2.5 RAC-Prozesse 416
3.8.1.2.5.1 LMS – Lock Manager Server/Global Cache Service Daemon 417
3.8.1.2.5.2 LCK – Lock Process 417
3.8.1.2.5.3 LMD – Lock Manager Daemon/Global Enqueue Service Daemon 417
3.8.1.2.5.4 LMON – Lock Monitor/Global Enqueue Service Monitor 418
3.8.1.2.5.5 LMHB – Lock Monitor Heartbeat - GES/GCS Service Heartbeat Monitor 418
3.8.2 (Vordergrund- oder) Serverprozesse 418
3.8.3 Clientprozesse 419
3.9 Memory-Komponenten einer Instanz – SGA & PGA
3.9.1 Kontinuierliche Automatisierung 420
3.9.2 SGA – System Global Area 421
3.9.3 SGA und ASMM – Automatic Shared Memory Management (ab 10g) 422
3.9.4 AMM – Automatic Memory Management (ab 11g) 424
3.9.5 Manuelle Speicherverwaltung = Deaktivierung von AMM und ASMM 426
3.9.6 Die Unterbereiche der SGA 427
3.9.6.1 Granulen – die kleinste Zuteilungseinheit im Hauptspeicher 428
3.9.6.2 Buffer, Datenblöcke und der Buffer Cache (db_cache_size) 429
3.9.6.2.1 Der Touch Count und die LRU-Liste 430
3.9.6.2.2 Schmutzig oder sauber – Zustandsattribute von Buffer-Cache-Datenblöcken 432
3.9.6.2.3 Buffer Cache, Full-Tablescans (FTS) und unterbrochene Multiblockzugriffe 435
3.9.6.2.4 Größe des Buffer Cache 435
3.9.6.2.4.1 Force Full Database Caching Mode 438
3.9.6.3 Erweiterungen des Buffer Cache: Keep Cache & Recycle Cache
3.9.6.4 Erweiterungen des Buffer Cache: Nicht-Default-Blockgrößen 440
3.9.6.4.1 Die Views v$buffer_pool und v$buffer_pool_statistics 441
3.9.6.4.1.1 Motivation für alternative Blockgrößen 442
3.9.6.4.2 Die Buffer Cache-Hit-Ratio 442
3.9.6.4.3 Buffer Cache leeren 443
3.9.6.5 Erweiterungen des Buffer Cache: Der Automatic Big Table Cache (ABTC) 443
3.9.6.6 Auslagerung des Buffer Cache: Database Smart Flash Cache 444
3.9.6.7 Der Shared Pool (shared_pool_size) 447
3.9.6.7.1 Result Cache 448
3.9.6.8 Large Pool (large_pool_size) 450
3.9.6.9 Java Pool (java_pool_size) 450
3.9.6.10 Streams Pool (streams_pool_size) 451
3.9.6.11 Data Transfer Cache (data_transfer_cache_size, nur Enterprise Edition) 452
3.9.6.12 Redo Log Buffer (log_buffer) 452
3.9.6.13 In-Memory Area (inmemory_size) 453
3.9.7 PGA – Program Global Area 454
3.9.7.1 Private SQL Area 455
3.9.7.2 User Global Area (UGA) 456
3.9.7.3 SQL Work Areas 456
3.9.7.4 PGA ausreichend Dimensionierung – der PGA Advisor 459
3.10 Die mandantenfähige Datenbank – CDBs & PDBs
3.10.1 Root-, Seed- und Pluggable Datenbanken – alles ist ein Container 461
3.10.2 Charakteristika einer Container-Datenbank 462
3.10.2.1 PDB-Arten 466
3.10.2.2 Systemtabellen und CDB_*-, DBA_*-Views 467
3.10.2.3 Metadaten-Links und Daten-Links 469
3.10.2.4 Orientierung – Welche PDBs gibt es und wo bin ich gerade? 472
3.10.2.5 Eigenschaften einer PDB im Vergleich zu einer Non-CDB 474
3.10.2.6 Verlaufsgeschichte einer PDB: cdb_pdb_history 475
3.10.2.7 Automatischer Start von Pluggable Datenbanken – save state 476
3.10.2.8 Eine PDB öffnen 477
3.10.2.9 Container über ihre IDs identifizieren – CON_ID, PDB_ID, DBID, GUID 479
3.10.3 Nachträgliche Änderungen von Namen und Identifiern 480
3.10.3.1 Instanzname ändern (instance_name) 480
3.10.3.2 DB Unique Name ändern (db_unique_name) 482
3.10.3.3 Global Name ändern (db_name.db_domain/global_name) 483
3.10.3.4 Servicename ändern 484
3.10.3.5 DB-Name ändern 484
3.10.3.5.1 db_name ändern – do it yourself 485
3.10.3.5.2 db_name ändern – Methode der Wahl: nid 485
3.10.3.6 DBID ändern 485
3.10.3.7 PDB-Namen ändern 486
3.11 Das Data Dictionary – die Metadaten der Datenbank 488
3.11.1 Besondere Spalten ab 12c: CON_ID 495
3.11.2 Besondere Spalten ab 12c: ORACLE_MAINTAINED 496
3.11.3 Fixed (X$) Tables & Fixed (V$) Views
3.11.4 Dynamische Performanceviews – V$- und GV$-Views 497
3.11.4.1 Wann sind dynamische v$-Views verfügbar? 502
3.11.4.2 Keine Lesekonsistenz für dynamische Performanceviews! 502
3.12 Tabellen 502
3.12.1 Tabellentypen 503
3.12.1.1 Heap Tables – reguläre Tabellen 503
3.12.1.2 Index-organisierte Tabellen (IOT) 504
3.12.1.2.1 Logische RowIDs 504
3.12.1.2.2 Overflow-Segmente 505
3.12.1.2.3 Einschränkungen einer IOT 505
3.12.1.3 Externe Tabellen 505
3.12.1.4 Clustertabellen 506
3.12.1.5 Objekttabellen 507
3.12.1.6 Blockchain-Tabellen 508
3.12.1.7 Temporäre Tabellen 509
3.12.1.7.1 Private temporäre Tabellen 509
3.12.1.8 Materialized Views (MVIEWs) – Snapshot-Tabellen 510
3.12.1.9 Die Pseudotabelle DUAL 512
3.12.2 create table – eine Tabelle erstellen 514
3.12.3 Datentypen 517
3.12.3.1 Built-in-Datentypen 518
3.12.3.1.1 Number – Zahlen 518
3.12.3.1.1.1 number [ ( p, [s]) ] 518
3.12.3.1.1.2 float [ p ] 520
3.12.3.1.1.3 binary_float, binary_double – Fließkommazahlen 520
3.12.3.1.1.4 Integer, Real … 521
3.12.3.1.2 varchar2/char-Zeichenketten, Strings, Text-Literale 522
3.12.3.1.2.1 varchar(n)/varchar2(n) 523
3.12.3.1.2.2 char(n) 526
3.12.3.1.2.3 nvarchar2(n) und nchar(n) 528
3.12.3.1.3 Datetime – Uhrzeiten, Intervalle, Kalenderdaten 529
3.12.3.1.3.1 date 530
3.12.3.1.3.2 timestamp(p) 532
3.12.3.1.3.3 date vs. timestamp(0) with local time zone 535
3.12.3.1.3.4 date & timestamp vs. number &
3.12.3.1.4 long & long raw
3.12.3.1.5 Large Object (LOB) 538
3.12.3.1.6 rowid & urowid
3.12.3.2 ANSI-Datentypen 539
3.12.3.3 Benutzerdefinierte Datentypen UDT 540
3.12.3.4 Oracle-Supplied Types – any, xml, spatial 540
3.12.4 Aufbau einer Tabelle – Spalten & Attribute
3.12.5 Pseudospalten, Virtuelle Spalten, Versteckte Spalten 541
3.12.5.1 Pseudospalten 542
3.12.5.1.1 rowid, ora_rowscn 542
3.12.5.1.2 Flashback versions_*-Pseudospalten 543
3.12.5.1.3 rownum 544
3.12.5.2 Virtuelle Spalten/Virtual Columns (VC) 545
3.12.5.3 Versteckte Spalten/Hidden Columns/Invisible Columns 547
3.12.6 Integritätsregeln – Constraints 549
3.12.6.1 Not Null/Nicht Nichts 550
3.12.6.2 Unique Key/Eindeutigkeit 551
3.12.6.2.1 Syntaxvarianten 552
3.12.6.3 Primary Key/Primärschlüssel 554
3.12.6.4 Foreign Key/Fremdschlüssel/referenzielle Integrität 556
3.12.6.5 Check Constraint 557
3.12.7 Trigger 557
3.12.7.1 Trigger sind nützlich 558
3.12.7.2 Trigger können schädlich sein 558
3.12.7.3 dba_triggers – triggering_event 559
3.12.7.4 DML-Trigger 560
3.12.7.5 DDL-Trigger 562
3.12.7.6 Ereignistrigger/Event-Trigger 563
3.12.7.6.1 Startuptrigger 563
3.12.7.6.2 Logon-Trigger 563
3.12.7.7 Trigger aktivieren/deaktivieren 565
3.12.7.8 Trigger kompilieren 565
3.13 Indizes 566
3.13.1 Die Qual der Indexwahl 567
3.13.2 Indextypen 569
3.13.2.1 B-Tree Indizes 573
3.13.2.2 Funktionsbasierte Indizes/Function Based Indexes (FBI) 575
3.13.3 Unsichtbare Indizes/Invisible Indexes 579
3.13.4 Warum wird ein Index vom Optimizer nicht berücksichtigt? 581
3.14 Views 582
3.15 Datenbank-Benutzer, Schemata und Rollen 584
3.15.1 Datenbank-Benutzer und Datenbank-Schemata 584
3.15.1.1 Mit dem Grant-Kommando Benutzer anlegen 587
3.15.2 Lokale vs. allgemeine Benutzerkonten/local vs. common users 588
3.15.2.1 _oracle_script 591
3.15.3 Status eines Benutzerkontos 592
3.15.4 Benutzerprofile 594
3.15.4.1 Limits überschritten: ORA-02390 bis ORA-02399 598
3.15.4.2 Gute und schlechte Abbrüche 598
3.15.5 Benutzerkonten ohne Authentifizierung/Schema Only Accounts 599
3.15.6 Proxybenutzer/Proxy User und das Pool-User-Problem 601
3.15.7 Rollen 602
3.15.7.1 Lokale vs. Allgemeine Rollen/local vs. common roles 606
3.16 Privilegien – Grants – Berechtigungen – Autorisierung 606
3.16.1 Objektprivilegien – dba_tab_privs 606
3.16.2 Systemprivilegien – dba_sys_privs 608
3.16.3 Quota – dba_ts_quotas 610
3.16.4 Privilegien und Datenexporte 611
3.17 Globalisierung/National Language Support (NLS) 611
3.17.1 Zeichensätze und Zeichensatzkonvertierungen 612
3.17.1.1 Gängige Datenbank-Zeichensätze 615
3.17.1.2 Ändern des Datenbankzeichensatzes 616
3.17.2 NLS_LANG richtig setzen 617
3.17.2.1 Die Bedeutung des Zeichensatzes in NLS_LANG 619
3.17.3 NLS-Parameter der Datenbank 621
3.17.3.1 nls_date_format 622
3.17.3.1.1 nls_date_format und die unglückliche RR-Notation 623
3.17.3.1.2 to_char und das Datumsformat 623
3.17.3.2 nls_language 624
3.17.3.3 nls_date_language 626
3.17.3.4 nls_numeric_characters 627
3.17.3.5 nls_sort 628
3.17.3.6 nls_comp & nls_sort
3.17.3.7 nls_length_semantics (BYTE vs. CHAR) 632
3.17.3.8 nls_territory 633
3.17.3.9 Währungen – nls_currency, nls_dual_currency und nls_iso_currency 635
3.17.3.10 Unicode-Zeichen in SQL und PL/SQL ohne Konvertierung darstellen 636
Literatur 638
4: Backup und Recovery 639
4.1 Warum ein RMAN-Backup? 640
4.1.1 ORA-1578: Blockkorruptionen und schleichender Datenverlust 640
4.1.2 Verlorene Daten durch Anwender- oder Softwarefehler 645
4.1.3 Katastrophen, Sabotagen, Angriffe 646
4.2 Begriffsklärung – Backuparten 646
4.2.1 Vollständiges vs. Partielles Backup 647
4.2.2 Logisches vs. Physisches Backup 647
4.2.2.1 Schemaexporte mit epdp/exp 649
4.2.3 Offline vs. Online Backup/Cold vs. Hot Backup 650
4.2.4 Konsistentes vs. Inkonsistentes Backup 650
4.2.5 Full Backup vs. Incremental Level 0/1 651
4.2.6 Differenzielles vs. Kumulatives Backup 651
4.3 RMAN, der Recovery Manager 652
4.3.1 RMAN Spracheinstellungen und Datumsformat 654
4.3.2 RMAN-Kommandoübersicht 655
4.3.2.1 show & configure
4.3.2.2 list & report
4.3.2.2.1 list backup 658
4.3.2.2.2 report 661
4.3.2.3 crosscheck & validate
4.3.2.3.1 crosscheck – Existieren alle Dateien? 664
4.3.2.3.1.1 Crosscheck-Status ändern 666
4.3.2.3.2 validate – Sind alle Dateien nicht nur anwesend, sondern auch gesund? 667
4.3.2.3.3 Kein „validate recovery area“ 669
4.3.2.3.4 Validierung von Tablespaces 670
4.3.2.3.5 Validierung einzelner Dateien 670
4.3.3 RMAN Logdateien schreiben 671
4.3.4 Fast Recovery Area (FRA) 672
4.3.5 Die Retention Policy/Aufbewahrungsregel für Backups 676
4.3.5.1 delete obsolete – nicht mehr benötigte Sicherungen 677
4.3.6 RMAN Backup Tags/Sicherungen beschriften 678
4.3.7 Das Backup Kommando – Sicherung einer Non-CDB oder CDB 680
4.3.8 Backup einzelner PDBs 684
4.3.9 Empfehlung für eine Backupstrategie 685
4.3.9.1 Kommando-Datei für die inkrementelle Sicherung 686
4.3.9.2 Kommandodatei für die Archivelog-Sicherung 687
4.3.9.3 Kommandodatei für die wöchentliche Validierung 688
4.3.9.4 Optionaler Resync mit der RMAN-Katalogdatenbank 689
4.3.9.5 Alle Kommandos in einem Skript 690
4.3.9.6 Optionale Langzeit-Archivsicherung 692
4.3.10 Image Copies – „Oracle Suggested Backup Strategy“ 692
4.3.10.1 Oracles vorgeschlagene Imagesicherung einrichten 693
4.3.10.1.1 Erster Durchlauf des oracle_suggested_backup.sh-Skripts 694
4.3.10.1.2 Zweiter Durchlauf des oracle_suggested_backup.sh-Skripts 695
4.3.10.1.3 Dritter Durchlauf des oracle_suggested_backup.sh-Skripts 695
4.3.10.2 Vor- und Nachteil der „Oracle Suggested Backup Strategy“ 696
4.4 Restore & Recover – ohne Datenverlust
4.4.1 Entscheidende Fragen im Schadensfall 698
4.4.2 Der Recovery Advisor – die zweite Meinung 699
4.4.3 Restore & Recover einer Non-CDB oder vollständigen CDB
4.4.4 Restore & Recover einzelner PDBs
4.5 Restore und Recover zu einem bestimmten Zeitpunkt – Point-in-Time-Recovery (PITR) 705
4.5.1 PITR einer Non-CDB oder einer CDB 707
4.5.2 Kleinere Schäden, die keine vollständige Datenbankrestaurierung erfordern. 709
4.5.2.1 Defekt in der Parameterdatei 710
4.5.2.2 Defekt in der Kontrolldatei 710
4.5.2.3 Defekt im Online Redolog 711
4.5.2.4 Defekt im temporären Tablespace 713
4.5.2.5 Defekt in SYSAUX-, SYSTEM-, UNDO-Tablespace 714
4.5.2.6 Defekt in einem Benutzertablespace 714
4.5.2.7 Defekt in einzelnen Blöcken – ORA-01578 715
4.5.2.8 Recover Table – eine einzelne Tabelle wiederherstellen 716
4.6 Flashback statt Restore & Recover
4.6.1 Flashback Query – as of timestamp 718
4.6.2 Flashback Drop – Tabelle aus dem Recyclebin holen 721
4.6.3 Flashback Table – über den UNDO-Tablespace 724
4.6.4 Flashback Database – beschleunigtes PITR 726
Literatur 729
Nachwort 730
Stichwortverzeichnis 734
Erscheint lt. Verlag | 18.6.2021 |
---|---|
Zusatzinfo | XIII, 749 S. 95 Abb., 71 Abb. in Farbe. |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Datenbanken |
Schlagworte | Backup & Recovery • data structures • Datenbank Administrator • DBA • Einführung in Oracle 19c • Optimierung & Performance • Oracle Datenbank Grundlagen • Sicherheit & Auditing • Verfügbarkeit & Ausfallsicherheit • Version 19c |
ISBN-10 | 3-662-62570-9 / 3662625709 |
ISBN-13 | 978-3-662-62570-5 / 9783662625705 |
Haben Sie eine Frage zum Produkt? |
![PDF](/img/icon_pdf_big.jpg)
Größe: 22,6 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich