3. Architektur eines DBS (Oracle)



Ähnliche Dokumente
Listener: Bei Oracle erfolgt die Steuerung (konventionell) via listener.ora (Listener Konfiguration), tnsnames.ora (Client Konfiguration)

Datenbanksystem. System Global Area. Hintergrundprozesse. Dr. Frank Haney 1

Prozessarchitektur einer Oracle-Instanz

Datenbanken Konsistenz und Mehrnutzerbetrieb III

Oracle Datenbankadministration Grundlagen

Oracle Datenbank - Recovery

Oracle Datenbank Architektur nicht nur für Einsteiger. Martin Klier Klug GmbH integrierte Systeme, Teunz

Themen des Kapitels. 2 Oracle Features und Architektur

Datenbanken und Oracle, Teil 2

Oracle Core für Einsteiger: Datenbank I/O

Oracle Tuning - Theorie und Interpretation

Oracle Backup und Recovery

Oracle 9i Einführung Performance Tuning

Oracle 10g Einführung

Oracle Datenbank Architektur - nicht nur für Einsteiger

IBM Informix Tuning und Monitoring

SQL (Structured Query Language) Schemata Datentypen

Aufbau einer Oracle Datenbank Tablespace, Arten von Dateien

IT-Symposium /20/2004. Ralf Durben. Business Unit Datenbank. ORACLE Deutschland GmbH. 1

Oracle SQL. Seminarunterlage. Version vom

Bibliografische Informationen digitalisiert durch

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Index- und Zugriffsstrukturen für. Holger Brämer, 05IND-P

Inhaltsverzeichnis. Geleitwort der Fachgutachterin Vorwort Einführung Architektur eines Oracle-Datenbanksystems...

Naxtron GmbH Schlosstalstrasse Winterthur. Subject. New Features Oracle 9i Tuning. Edo Bezemer. Author

Oracle Multitenant Verwaltung von Pluggable Databases Handling und Besonderheiten

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Kurs. Teil 7 UNDO-Management. Universität Hannover. Agenda. Einführung. Nutzung RBS Oracle 9i Einführung Performance Tuning.

Markus Feichtinger. Power Systems. Der Weg zu POWER! 2009 IBM Corporation

Oracle 9i Einführung Performance Tuning

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

Dokumentation für das Web-basierte Abkürzungsverzeichnis (Oracle mod_plsql / Apache)

Arbeiten mit einem lokalen PostgreSQL-Server

Urs Meier Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung


Gliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Datensicherheit und Hochverfügbarkeit

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

3. Stored Procedures und PL/SQL

DBS: Administration und Implementierung Klausur

IBM DB2 für Linux/Unix/Windows Monitoring und Tuning

die wichtigsten Caches (SGA) sind on-the-fly änderbar.

Oracle Core für Einsteiger: InMemory Column Store

Oracle 10g Einführung

Oracle GridControl Tuning Pack. best Open Systems Day April Unterföhring. Marco Kühn best Systeme GmbH

Ein reales Testumfeld bereitstellen - basierend auf einer Produktionsdatenbank (ohne eine neue Kopie zu erstellen)

SAP -Datenbankadministration. Microsoft SQL Server 2000

Dynamic Ressource Management

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Datenbank- Programmierung mit InterBase

Aufbau einer Oracle Datenbank

Verteilte Datenbanken. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Performance in der Oracle Datenbank von Anfang an

Themen des Kapitels. Aufbau eines Database Management Systems (DBMS) Oracle Architektur Oracle Tools. 2.1 Übersicht

Safexpert Oracle Datenbank Konnektor. Stand: IBF-Automatisierungs-und Sicherheitstechnik GmbH A-6682 Vils Bahnhofstraße 8

MySQL Administration. Seminarunterlage. Version 3.02 vom


Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Die Idee der Recovery Area: Sie enthält bei Beschädiging der Database Area alles, was für ein erfolgreiches Recovery gebraucht wird

ORACLE PROZESSARCHITEKTUR J O N N Y R I L L I C H

IBM Informix SQL. Seminarunterlage. Version vom

Datenbankadministration

Transaktionsverwaltung


IT-Symposium Ralf Durben. Business Unit Datenbank. ORACLE Deutschland GmbH. 1

Funktionsübersicht. Beschreibung der zentralen Funktionen von PLOX

Themen des Kapitels. 2 Oracle Features und Architektur

HP IT-Symposium

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

DOAG Index Tuning

<Insert Picture Here> Oracle Datenbank Einführung Ulrike Schwinn

Oracle Real Application Clusters: Requirements

Data Dictionary for Oracle

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

SQL Einstieg und Anwendung

DB2 Version 10 Kapitel IT-Sicherheit

Übersicht über Datenbanken

Oracle AWR und ASH Analyse und Interpretation

Backup & Recovery bei Oracle

SQL. Fortgeschrittene Konzepte Auszug

PostgreSQL und memcached

Performance Tools. für alle Editionen

DB2 SQL, der Systemkatalog & Aktive Datenbanken

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Architektur moderner Datenbanksysteme

3.17 Zugriffskontrolle

Transkript:

3. Architektur eines DBS (Oracle) aus Sicht des Datenbank Server Rechners Connectivity Komponente(n) des DBS (z.b. Oracle Listener) Installation ORACLE_HOME Instanz ORACLE_SID Datenbank Oracle: 1 (aktive) Datenbank pro Instanz Mehrere Instanzen pro DB möglich (RAC bzw. Parallel Server)

3.1 Datenbank Logische Sicht 3.1.1 Datenbankobjekte organisiert in Schemata (Namensraum, i.a. DB Objekte eines Benutzers) Objekt Typen Varrays Nested Tables Tabellen Sequenzen Views Stored Procedures Trigger Database Links Synonyme

3.1.2 Benutzerverwaltung Oracle verwaltet User üblicherweise in der Datenbank Alternative: externe Benutzerverwaltung wird genutzt Instanzprivilegien auf Betriebssystemebene (Gruppen osdba, osoper) bzw. auf DBS Ebene via Password File (anzulegen mit der Utility orapwd, REMOTE_LOGIN_PASSWORDFILE Parameter ist auf exclusive zu setzen): sysdba => create database sysoper Datenbank Systemprivilegien (Rollen) connect resource dba... Datenbank Objektprivilegien werden (ebenfalls) mit grant vergeben und mit revoke zurückgenommen: grant Privilegien on DB Objekt to Privilegnehmer Objektprivilegien abhängig von DB Objekten z.b. Tabelle=> select, insert, update, delete, alter, index, references, all View => select, insert, update, delete, all Stored Procedure=> execute Objekt Typ=> execute Rollen Privilegnehmer und Privileg grant Privileg to Rolle grant Rolle to Privilegnehmer Benutzer haben Default Rollen (beim create / alter user festgelegt) Rollenwechsel möglich (set role) Privilegnehmer: Benutzer, Rollen, public Profile (Quoten)

3.1.3 Systemkatalog user_ eigene Datenbankobjekte all_ alle Datenbankobjekte, auf die Zugriff besteht dba_ alle Datenbankobjekte (privilegierter Zugriff) v$ Instanzinformation (privilegierter Zugriff)

3.2 Instanz 3.2.1 Administration Startup / Shutdown sqlplus / nolog connect internal oder connect... as sysdba / sysoper startup nomount / mount /open shutdown normal / transactional / immediate / abort lsnrctl => Listener Administration (start, stop,...) 3.2.2 Prozesse SQL verarbeitenden Prozesse: Dedicated vs. Shared / Multithreaded Server Dispatcher Shared Server Prozesse Hintergrundprozesse: Process Monitor (PMON) System Monitor (SMON) DB Writer (DBWn) Log Writer (LGWR) Checkpoint (CKPT) Archiver (ARCn)... 3.2.3 Memory PGA (Program Global Area) SGA (System Global Area) Buffer Cache(s) Redo Log Buffer Shared Pool Row Cache (Data Dictionary) Library Cache (QEPs) Java Pool Monitoring / Tuning: Hit Rate beobachten Memory Komponente vergrößern, Paging beachten!

3.3 Dateien Datendateien (Datenbank) Control Files Online Redo Logs Archived Redo Logs Konfigurationsdateien spfile pfile

3.4 Datenbank - Physische Sicht Tablespace Container für Datenbank Objekte Typen von Tablespaces System Permanent Nologging Temporär Undo / Rollback Default Tablespaces auf System- und Benutzerebene Default Parameter für Speicherstrukturen auf Tablespace Ebene überschreiben System Defaults Local vs. Dictionary Management Data Files Storage Units, aus denen Tablespaces bestehen Block Blockgröße für Datenbank festgelegt, für einzelne Tablespaces überschreibbar => Bezug zum Buffer Cache

Segment Teil eines Datenbank Objekts, der in einem Tablespace liegt Typen von Segmenten: Tabelle Index Partition Cluster Lob Lob Index Temporär Undo / Rollback Parameter für Speicherstrukturen überschreiben System bzw. Tablespace Defaults Extent Zusammenhängende Teilmenge eines Segments (Def. von INITIAL, NEXT, MINEXTENTS, MAXEXTENTS, PCTINCREASE auf Tablespace- und Segmentebene) Row ROWID => Logische Adresse einer Zeile (fix bis zu einer Reorganisation) Migration / Chaining: Falls eine Zeile (nach einem Update) nicht mehr in einen Block passt (aufgrund der variablen Zeilenlänge möglich), muß sie in einen anderen Block verschoben oder auf mehrere Blöcke aufgeteilt werden Fixe ROWID => Indirekter Zugriff auf die Zeile Vermeidung durch geeignete Def. von PCTFREE / PCTUSED (auf Segmentebene)

4. Physisches Datendesign und Query Optimierung 4.1 Physisches Datendesign RAID Partitionierung 4.2 Indexdesign Btree Index reverse compress Index Organized Tables Cluster (Btree / Hash) Function Based Index Bitmap Index Bitmap Join Index

4.3 Query Optimierung 4.3.1 Allgemein Environment (OLTP / OLAP) kleine / große Datenmengen, auf die zugegriffen wird viele / wenige parallele Zugriffe Read Write / Read Load Zielsetzung (Antwortzeit / Durchsatz) Einfluß auf Strategien des Optimizers Einflußmöglichkeiten Physisches Datendesign Statistiken optimizer_mode Hints Hilfsmittel Analyse von QEPs (Query Execution Plan)

4.3.2 Operationen bei der Query Optimierung Grundlage: Relationale Algebra Restriktion Projektion (Spaltenextrakt + Entfernung von Duplikaten) Vereinigung (Hintereinanderschalten + Entfernung von Duplikaten) Durchschnitt => Binäre Zuordnung (Equi Join) Mengentheoretische Differenz => Binäre Zuordnung (Equi Join) Kartesisches Produkt Join => Equi Join, Non Equi Join Quotient => kein SQL Konstrukt Zusätzlich aus SQL: Group by => Gruppierung (beinhaltet Duplikat Entfernung) Having => Restriktion Order by => Sortierter Zugriff Subqueries, Views => Query Rewrite, falls möglich

4.3.3 Lokale Entscheidungen des Optimizers Restriktion Sequentiell Indexzugriff (speziell Index Only, Index Organized Table, Cluster) Equi Join Nested Loop Sort Merge Hash Wie sieht es mit Outer Joins aus? Index Join Join Index... Gruppierung i.a. Sortierung / sortierter Zugriff Alternative: Hash Algorithmen Sortierter Zugriff Sortieren oder sortierter Zugriff via Index

4.3.4 Globale Entscheidungen des Optimizers Berücksichtigung der Reihenfolge der Operationen (exponentielle Komplexität!) Heuristiken für Antwortzeitoptimierung: Pipelining Vermeidung (aufwändiger) blockierender Aktionen: Sortierung Aufbau von Hash Tabellen Materialisierung von Zwischenergebnissen Möglichst Indexzugriff für Restriktionen, (Nested Loop) Joins, sortierten Zugriff Allgemeine Heuristiken: 1. Restriktionen / Projektionen auf möglichst kleine Ergebnismengen möglichst früh, Zusammenfassung der Operationen Zu beachten: Restriktionen haben zur Folge, dass die Indizes, über die die Restriktion unterstützt wird, für das Resultat nicht mehr zur Verfügung stehen 2. Wahl der geeigneten Zuordnungs Reihenfolge und Strategie Zu beachten: Es bestehen Wechselwirkungen zwischen Reihenfolge der Operationen und der Zuordnungs Strategie! 3. Gruppierung / Entfernung von Duplikaten / Sortierung möglichst spät 4. Wiederverwendung von Zwischenergebnissen (auf Transaktions- bzw. Sessionebene temporäre Tabellen einsetzbar)