Oracle Database 10g Linux- Administration Edward Whalen Oracle-Datenbanken in einer Linux-Umgebung managen und optimieren ISBN 3-446-22804-7 Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22804-7 sowie im Buchhandel
Einführung...XV Teil I Oracle unter Linux Überblick... 1 1 Architektur von Linux... 3 1.1 Überblick über das Betriebssystem...4 1.1.1 Der monolithische Kernel...5 1.1.2 Der Microkernel...7 1.2 Übersicht über Linux...7 1.2.1 Verzeichnisstruktur von Linux...8 1.2.2 Utilitys und Verzeichnisse in Linux...9 1.2.3 Entwicklungsumgebung...13 1.3 Linux-Benutzeroberflächen...17 1.3.1 X Windows...17 1.3.2 GUI-Umgebungen...18 1.4 Web Server Utilitys in Linux...20 1.4.1 Apache Web Server...20 1.4.2 CGI-Programmierung in Linux...20 1.4.3 Der Boot-Prozess in Linux...21 1.4.4 Quellcode von Linux...21 1.4.5 Linux-Kernel neu erstellen...22 1.5 Prozesse und Threads...24 1.5.1 Was ist ein Prozess?...24 1.5.2 Prozessnutzung in Oracle...24 1.5.3 Was ist ein Thread?...25 1.6 Geräte...25 1.6.1 Zeichengeräte...25 1.6.2 Blockgeräte...26
VI 1.6.3 Logische Volume Manager... 26 1.6.4 Automatic Storage Management... 27 1.7 Dateisysteme... 27 1.7.1 ext3... 27 1.7.2 OCFS... 28 1.7.3 RAW Devices... 28 1.8 Zusammenfassung... 28 2 Architektur von Oracle... 31 2.1 Oracle-Datenbank-Server... 31 2.2 Oracle-Datenbank... 32 2.2.1 Physikalische Datenstrukturen... 33 2.2.2 Logische Datenstrukturen... 37 2.3 Die Oracle Instance... 58 2.3.1 Instance-Definition... 58 2.3.2 Komponenten der Instance... 58 2.4 Benutzerprozesse... 63 2.4.1 Server-Prozesse... 63 2.4.2 PGA-Speicher... 63 2.4.3 MTS und dedizierte Server-Prozesse Vergleich... 64 2.5 Neue Features in Oracle 10g... 65 2.5.1 Performance- und Skalierbarkeits-Features... 65 2.5.2 Clustering... 66 2.5.3 Verfügbarkeit... 66 2.5.4 Manageability... 66 2.5.5 Business Intelligence... 67 2.5.6 Anwendungsentwicklung... 67 2.5.7 Linux 64-Bit-Support... 67 2.6 Grid Computing... 68 2.7 Zusammenfassung... 68 3 Transaktionsverwaltung und Oracle-Schema-Objekte... 69 3.1 Funktionalität von Oracle... 69 3.1.1 Daten aus der Datenbank lesen... 70 3.1.2 Gleichzeitiger Zugriff... 70 3.1.3 Schreiben von Daten in die Datenbank... 71 3.1.4 Sperren... 71 3.1.5 Lesekonsistenz... 71 3.1.6 Datenintegrität... 72
VII 3.1.7 Redo Logs...73 3.1.8 Undo...81 3.2 Einführung in die Transaktionsverwaltung...84 3.2.1 Transaktionen...84 3.3 Einführung in Oracle-Schema-Objekte...89 3.3.1 Tabellen...89 3.3.2 Indizes...91 3.3.3 Views...92 3.3.4 Sequences...92 3.3.5 Cluster...92 3.3.6 Synonyme...93 3.4 Zusammenfassung...93 Teil II Deployment von Oracle 10g unter Linux... 95 4 Größenanpassung von Oracle 10g auf Linux-Systemen... 97 4.1 Einführung in die Größenanpassung...98 4.1.1 Größenanpassung für Spitzenauslastung und Zeiten mit stabiler Auslastung...98 4.1.2 Service-Level Agreements...99 4.2 Systemressourcen, Kapazität und Queuing...101 4.2.1 CPU-Performance und Queuing...102 4.2.2 I/O-Performance und Queuing...103 4.2.3 Netzwerk-Performance...104 4.2.4 Speicher...104 4.3 Metriken...106 4.4 Größenanpassung in Oracle...108 4.4.1 Parameter mit festen Grenzwerten...108 4.4.2 Ressourcen-Parameter...109 4.5 Größenanpassung der Hardware...111 4.5.1 Größenanpassung der CPU...111 4.5.2 Größenanpassung des Speichers...112 4.5.3 Größenanpassung des I/O-Subsystems...113 4.6 RAID-Subsysteme...121 4.6.1 Hardware-RAID und Software-RAID...122 4.6.2 Striping...123 4.6.3 Überblick über die Parität...127 4.7 Kapazitätsplanung...132 4.8 Zusammenfassung...132
VIII 5 Konfiguration des Linux-Systems für Oracle... 133 5.1 Vorbereitende Installationsmaßnahmen für Linux... 133 5.1.1 Mindestanforderungen... 134 5.1.2 Dateisystem konfigurieren... 135 5.1.3 Linux-Komponenten auswählen... 136 5.2 Prozeduren für Linux nach der Installation... 139 5.2.1 Kernel-Parameter konfigurieren... 139 5.2.2 Benutzer und Benutzergruppen hinzufügen... 142 5.2.3 Shell-Limits für den Oracle-Benutzer konfigurieren... 142 5.2.4 Verzeichnisstrukturen erstellen... 143 5.2.5 Oracle-Umgebung einrichten... 144 5.3 Checkliste für die Installation... 145 5.3.1 Checkliste für die Installation von Oracle 10g R1... 145 5.3.2 Checkliste für die Installation von Oracle 10g R2... 147 5.4 Zusammenfassung... 149 6 Installation von Oracle 10g unter Linux... 151 6.1 Vorbereitende Schritte... 151 6.1.1 Kernel-Konfigurationsparameter... 151 6.1.2 Speicheranforderungen... 152 6.2 Der Installationsprozess... 164 6.2.1 Installation bereitstellen... 164 6.2.2 Installer ausführen... 165 6.3 Schritte nach der Installation... 168 6.3.1 Patches downloaden und installieren... 168 6.3.2 Konfigurationsschritte... 169 6.3.3 Tests und Validierung... 171 6.3.4 Weitere Konfigurationsschritte... 172 6.4 Zusammenfassung... 172 Teil III Oracle RAC unter Linux... 173 7 Oracle Real Application Cluster Konzepte... 175 7.1 Was versteht man unter Clustering?... 177 7.1.1 Cluster-Terminologie... 177 7.1.2 Cluster-Definition... 178 7.2 Real Application Clusters (RAC)... 182 7.2.1 Übersicht über RAC... 182 7.2.2 Komponenten von Oracle RAC 10g... 184 7.2.3 RAC-Datenbankkomponenten... 189
IX 7.2.4 Gemeinsamer Speicher in Oracle 10g RAC...193 7.2.5 NAS als gemeinsamer Speicher...195 7.3 Zusammenfassung...196 8 Deployment von Real Application Cluster unter Linux... 197 8.1 Planung eines RAC-Systems...197 8.1.1 RAC-Komponenten...197 8.1.2 Größenanpassung des RAC-Systems...200 8.2 Konfiguration von Linux...202 8.2.1 Hardware überprüfen...202 8.2.2 Netzwerkanforderungen überprüfen...203 8.2.3 Linux-Kernel einrichten...204 8.2.4 Linux-System einrichten...207 8.3 Linux-Module/Programme konfigurieren...210 8.3.1 Oracle-Verzeichnisse...210 8.3.2 Umgebungsvariablen einstellen...211 8.3.3 Netzwerkbetrieb...211 8.4 RAC konfigurieren...215 8.4.1 Cluster Ready Services (CRS) konfigurieren...215 8.4.2 Interconnect konfigurieren...217 8.4.3 Shared Disks konfigurieren...217 8.4.4 RAC testen und verwalten...220 8.5 Oracle 10g RAC Hilfe...225 8.6 Zusammenfassung...226 9 Administration von Oracle und RAC unter Linux... 227 9.1 Linux-Kernel konfigurieren...227 9.1.1 Shared Memory konfigurieren...227 9.1.2 Semaphores und weitere Kernel-Parameter konfigurieren...228 9.1.3 Linux-Konfigurationsparameter überwachen und ändern...228 9.2 Netzwerk konfigurieren...230 9.3 Linux überwachen...230 9.3.1 sar...230 9.3.2 vmstat...231 9.3.3 top...231 9.3.4 iostat...233 9.4 Linux aktualisieren...233 9.5 Instance hochfahren...234 9.5.1 Startup der Datenbank...235 9.5.2 Gemountete Datenbank...235
X 9.5.3 Geöffnete Datenbank... 236 9.5.4 Mit Enterprise Manager Database Control hochfahren... 237 9.6 Oracle Database 10g und CSSD... 238 9.7 Benutzer-Authentifizierung... 239 9.7.1 Datenbank-Authentifizierung... 239 9.7.2 Betriebssystem-Authentifizierung... 239 9.7.3 Netzwerk-Authentifizierung... 239 9.7.4 Remote-Authentifizierung... 240 9.7.5 Middle Tier-Authentifizierung... 240 9.7.6 Authentifizierung über SSL... 240 9.7.7 Benutzerautorisierung... 241 9.7.8 Benutzerprofile... 241 9.7.9 Privilegien... 243 9.8 Benutzer-Account hinzufügen... 244 9.9 Zusammenfassung... 246 10 Tuning von Oracle und RAC unter Linux... 247 10.1 Performance Tuning-Methodologie... 248 10.1.1 1. Schritt: Erste Bewertung... 248 10.1.2 2. Schritt: System überwachen... 249 10.1.3 3. Schritt: Ergebnisse analysieren... 250 10.1.4 4. Schritt: Hypothese erstellen... 250 10.1.5 5. Schritt: Lösung vorschlagen... 251 10.1.6 6. Schritt: Lösung implementieren... 251 10.1.7 7. Schritt: Testen und überwachen... 252 10.1.8 Weitere Analyse und Tests... 253 10.2 Oracle unter Linux tunen... 254 10.2.1 Anwendungs-Tuning... 254 10.2.2 Grundlagen des Instance Tunings... 255 10.2.3 Oracle Instance überwachen... 258 10.2.4 Wait-Ereignisse tunen... 265 10.2.5 Hardware Tuning... 265 10.2.6 Linux-Systeme überwachen... 266 10.2.7 Linux mit ps überwachen... 267 10.2.8 Linux mit vmstat überwachen... 269 10.2.9 Linux mit iostat überwachen... 269 10.2.10 Linux mit sar überwachen... 270 10.2.11 Linux mit top überwachen... 272 10.3 Modelle für großen Speicher verwenden... 273 10.3.1 Linux für eine SGA > 1,7 GB (und <= 2,7GB) konfigurieren... 273 10.3.2 Oracle für eine SGA > 2,7 GB konfigurieren... 274
XI 10.4 Performance mit Lastentests validieren...275 10.4.1 Warum wird das System getestet?...276 10.4.2 Lastentests für Batch Jobs...278 10.4.3 Lastentests für das Laden...278 10.4.4 Lastentests für OLTP-Anwendungen...279 10.4.5 Performance-Metriken...281 10.4.6 Tipps für Lastentests...282 10.5 Zusammenfassung...283 Teil IV Administration und Tuning von Oracle 10g unter Linux... 285 11 Backup und Recovery... 287 11.1 Übersicht über das Backup...287 11.2 Konzepte für Backup und Recovery...288 11.2.1 Instance Recovery...289 11.2.2 Daten-Recovery oder Media Recovery...290 11.2.3 Recovery der Online und archivierten Redo Log-Datei...290 11.2.4 Transaktionen...292 11.2.5 Funktionalität des RDBMS...293 11.3 Einführung in Backups...297 11.3.1 Archive Log-Backup...298 11.3.2 Kontrolldatei-Backup...299 11.3.3 Vollständiges Backup...300 11.3.4 Tablespace und Datendatei-Backups...301 11.3.5 Inkrementelle Backups...302 11.4 Wie die Datenbank gesichert wird...304 11.4.1 Recovery Manager (RMAN)...304 11.4.2 Automatisches plattenbasiertes Backup und Recovery (Flash Recovery-Bereich)...308 11.4.3 BS-Einrichtungen: Online Backup...309 11.4.4 Export und Data Pump...312 11.4.5 Kommerzielle Backup-Utilitys...314 11.5 Backup-Strategien...315 11.5.1 Zeitpunkt und Inhalte von Backups...316 11.5.2 Beispiele für Backup-Strategien...318 11.6 Zusammenfassung...319
XII 12 Wiederherstellung... 321 12.1 Datenbank wiederherstellen... 321 12.1.1 Recovery und Restoration Vergleich... 322 12.2 Recovery der Datenbank... 322 12.2.1 Instance Recovery... 323 12.2.2 Media Recovery... 324 12.2.3 Recovery von Log-Dateien... 325 12.2.4 Point-in-Time Recovery... 326 12.2.5 Flashback Features von Oracle 10g verwenden... 328 12.3 Recovery-Strategien entwickeln... 334 12.3.1 Instance Recovery planen... 335 12.3.2 Media Recovery planen... 335 12.3.3 Recovery bei Bedienerfehlern planen... 336 12.4 Zusammenfassung... 337 13 Oracle Data Guard unter Linux... 339 13.1 Konzepte von Data Guard... 339 13.1.1 Data Guard Services... 341 13.1.2 Physikalische Standby-Datenbanken... 344 13.1.3 Logische Standby-Datenbanken... 346 13.2 Oracle Data Guard konfigurieren und verwalten... 348 13.2.1 Physikalische Standby-Datenbanken konfigurieren... 348 13.2.2 Logische Standby-Datenbanken konfigurieren... 353 13.3 Zusammenfassung... 356 14 Oracle Advanced Replication unter Linux... 357 14.1 Einführung in Oracle Replication... 358 14.1.1 Multimaster-Replikation... 359 14.1.2 Materialized View-Replikation... 360 14.1.3 Hybride Replikation... 361 14.2 Oracle Replication unter Linux... 361 14.2.1 I/O-Kapazität... 362 14.2.2 Datenbank-Layout... 362 14.2.3 Ausreichende Netzwerkkapazität... 362 14.3 Zusammenfassung... 365 15 Hardware für Linux und Oracle konfigurieren... 367 15.1 Grundlagen des Hardware Tunings... 367 15.1.1 Passende Hardware auswählen... 368 15.1.2 Hardware Tuning für Linux... 375 15.2 Netzwerk-Tuning unter Linux... 381
XIII 15.3 Das passende Netzwerk wählen...382 15.3.1 Linux-Tuning für Netzwerk-Performance...383 15.4 Zusammenfassung...384 16 Tuning von SQL... 385 16.1 Ausführungsplan untersuchen...385 16.1.1 Plantabellen...385 16.1.2 Ausführungsplan anzeigen...389 16.2 Explain-Plan verstehen...392 16.3 Entscheidungsprozess des Optimizers verstehen...395 16.3.1 Ein Arbeitsbeispiel...397 16.3.2 Optimizer-Entscheidungen steuern...400 16.3.3 Tuning-Tipps für SQL...403 16.4 Zusammenfassung...416 17 Indizes und Partitionierung... 417 17.1 Einführung in die Indizierungsoptionen von Oracle 10g...417 17.2 Indexoptionen von Oracle 10g...419 17.2.1 Index Clustering-Faktor...429 17.2.2 Partitionierung in Oracle 10g...431 17.2.3 Optionen der Indexpartitionierung...435 17.2.4 Optionen der IOT-Partitionierung...437 17.2.5 Partitionierte Indizes aus Performance-Gründen verwenden...438 17.3 Zusammenfassung...438 Teil V Oracle-Produkte unter Linux... 441 18 Oracle Application Server 10g unter Linux... 443 18.1 Komponenten von Oracle Application Server 10g...444 18.1.1 Java 2 Enterprise Edition (J2EE)...444 18.1.2 Management und Sicherheit...445 18.1.3 Portale...445 18.1.4 Wireless-Technologie...446 18.1.5 Business Intelligence...446 18.1.6 E-Business Integration...446 18.2 Oracle Application Server 10g verwenden...447 18.3 Oracle Application Server 10g unter Linux konfigurieren und installieren...453 18.3.1 Installation...453 18.3.2 Konfiguration...453 18.4 Zusammenfassung...457
XIV 19 Oracle E-Business Suite unter Linux... 459 19.1 Oracle E-Business Suite unter Linux Überblick... 459 19.1.1 Die Oracle E-Business Suite... 460 19.1.2 Architektur der E-Business Suite... 461 19.1.3 Unter Linux verfügbare Module... 463 19.1.4 Oracle E-Business Suite unter Linux... 464 19.1.5 Die E-Business Suite in einer RAC-Umgebung... 464 19.2 E-Business Suite unter Linux installieren und konfigurieren... 464 19.2.1 Installation... 465 19.3 Auf Oracle E-Business Suite unter Linux migrieren... 467 19.3.1 Anwendungsschicht migrieren... 468 19.3.2 Datenbankschicht migrieren... 469 19.3.3 Datenbankschicht auf RAC konvertieren... 470 19.3.4 Testen... 471 19.4 Zusammenfassung... 471 Schlagwortregister... 473