Upload
dinhthu
View
223
Download
0
Embed Size (px)
Citation preview
SIG Database
Oracle 11g Datenbank Administration 02.06.20101
Copyright © 2006 Quest Software© 2010 Quest Software, Inc. ALL RIGHTS RESERVED
Oracle11g Datenbank Administration
Johannes Ahrends
Thomas Klughardt
Agenda
1. Produktübersicht
2. Architektur
3. Installation
4. Backup und Recovery
5. Utilities
2Oracle 11g Datenbank Administration02.06.2010
3Oracle 11g Datenbank Administration
Aufgaben des Datenbankadministrators
• Datenbanken planen, strukturieren, erstellen und verwalten
• Physikalische Strukturen planen und verwalten
• Speicherplatz planen und bereitstellen
• Verfügbarkeit der Datenbank gewährleisten
• Sicherheitsstrukturen implementieren
• Administration der datenbankspez. Netzwerkkomponenten
• Backup und Recovery
• Optimierung der Datenbank
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.20102
Copyright © 2006 Quest Software© 2010 Quest Software, Inc. ALL RIGHTS RESERVED
Kapitel 1
Produktübersicht
Datenbanksystem
• ORDBMS (Objekt-Relationales Datenbank-Management-
System)
– SQL und PL/SQL Funktionalität
– Integrierte Tools:
• Enterprise Manager Database Control
• Export/Import
• DataPump Export / Import
• SQL*Loader
• TKPROF
• Recovery Manager
• Derzeitig aktuelle Version: 11.2.0
5Oracle 11g Datenbank Administration02.06.2010
Oracle Database Family• Oracle Express Edition
– Kostenlose Datenbank
– Benutzt nur eine CPU (auch wenn mehrere installiert sind)
– Maximal 4 GB Daten und 1 GB Hauptspeicher
– Volle Funktion der EE außer Optionen
• Oracle Database 11g Personal Edition– Single User Datenbank
– Anzahl Connects beschränkt
– Volle Funktionalität der EE außer Optionen
• Oracle Database 11g Standard Edition One– Maximal 2 Prozessoren (Dual Core = 1)
– Wie Standard Edition jedoch kein RAC
• Oracle Database 11g Standard Edition– Maximal 4 Prozessoren (Dual Core = 1)
– Eingeschränkte Funktionalität
– RAC Möglich
• Oracle Database 11g Enterprise Edition– Alle Funktionen
– Erweiterbarkeit über zusätzliche Optionen (Lizenzpflichtig)
6Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.20103
Andere Oracle Datenbanken
• Oracle 10g Personal Edition Lite
– Datenbank für PDA Einsatz
– Replikation möglich
– Kein PL/SQL
• Oracle Times Ten
– Realtime Datenbank
• Oracle Berceley DB
– Open Source Datenbank
• MySQL (durch SUN Übernahme)
WICHTIG: ALLE DIESE DATENBANKEN HABEN
UNTERSCHIEDLICHE KERNEL UND NICHTS MIT DER
„ORACLE“ DATENBANK ZU TUN
7Oracle 11g Datenbank Administration02.06.2010
Enterprise Edition (1)
• Flashback Table, Database and Transaction Query
• Data Guard
• Automatic Workload Management (only SE, not SEO)
• Secure Application Roles
• Virtual Private Database
• Fine-Grained Auditing
• Data Compression
• Oracle Analytic Functions (OLAP)
• Summary Management (Query Rewrite)
• Oracle Streams
• Tablespace Point-in-Time Recovery
• Trial Recovery
8Oracle 11g Datenbank Administration02.06.2010
Enterprise Edition (2)
• Online Reorganization (Redefinition)
• Enterprise Manager Packages
• Database Resource Manager
• Bitmapped index and Bitmapped Join Index
• Parallel Query and DML
• Parallel Data Pump Export / Import
• Transportable Tablespaces
• Asynchronous Change Data Capture
• Messaging Gateway
• Multi-Master Replication
• Oracle Connection Manager
• Oracle Information Lifecycle Management
9Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.20104
Zusätzliche Produkte (1)
• SQL*Plus
– interaktives Werkzeug für SQL und PL/SQL
– Reports und Batches möglich
– Benutzung für Datenbank-Administration ohne Lizensierung
– (iSQL*Plus gibt es nicht mehr)
• Oracle Net
– Schicht für Client-Server- oder Server-Server-Kommunikation
– Treiber für Protokolle
– Management Utilities
– Diagnose-Tools
10Oracle 11g Datenbank Administration02.06.2010
Zusätzliche Produkte (2)
• Precompiler
– Pro*C/C++
– SQL Module
• Entwickler-Werkzeuge
– Oracle Developer
– SQL Developer
– JDeveloper
• Allgemeine Schnittstellen
– ODBC-Treiber
– JDBC-Treiber
– OO4O
11Oracle 11g Datenbank Administration02.06.2010
Zusätzliche Produkte (3)
• Designer
• Gateways
– Open System Gateways
– Mainframe Integration Gateways
– Application Interconnect Toolkit
• Web Produkte
– Internet Developer Suite
– Oracle Portal
– Discoverer Plus
12Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.20105
Zusätzliche Produkte (4)
• DataWarehouse Werkzeuge
– Warehouse Builder
– Express Server
– Express Analyzer
– Express Objects
• Oracle Applications
• RDB Produkte
• E-Business Suite
• Spezielle Server (Video, Email etc.)
13Oracle 11g Datenbank Administration02.06.2010
Oracle Enterprise Manager
• Application Management
• Database Management
– Change Management Pack
– Configuration Management Pack
– Data Masking Pack
– Diagnostic Pack
– Provisioning Pack
– Tuning Pack
• Middleware Management
• Hardware Management
• Heterogeneous Management
1402.06.2010 Oracle 11g Datenbank Administration
Grid Infrastructure
• Nicht verwechseln mit Grid Control!!!!
• Betriebssystem Erweiterungen
– Cluster Services
– Real Application Clusters
– Automatic Storage Manager (ASM)
• Separate Installation
– Eigenständige Struktur
– Separater Owner (kann vom OS-Admin verwaltet werden)
• Wird nicht separat lizenziert
1502.06.2010 Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.20106
Cluster Installation Screenshots
16Oracle 11g Datenbank Administration02.06.2010
Cluster Installation Screenshots
17Oracle 11g Datenbank Administration02.06.2010
Copyright © 2006 Quest Software© 2010 Quest Software, Inc. ALL RIGHTS RESERVED
Kapitel 2
Architekturüberblick
SIG Database
Oracle 11g Datenbank Administration 02.06.20107
Datenbank und Instance
19
Instance ORACLE_SID
aktiver Teil
Oracle Server
Datenbank DB_NAME
passiver Teil
02.06.2010
Architekturkomponenten
User
SMON PMON MMONRECO MMNL
Buffer Cache LogbufferShared Pool
Library Cache
Data Dictionary Cache
Result Cache
…
Datendatei(en)
DBWn LGWR
ARCn
User
Instanz
Datenbank
Redolog-Dateien
Archivierte
Redolog-Dateien
ServerServer
SGA
Parameter
Datei
CKPT
Kontrolldateien
…
Backups
RMANFlash / Fast
Recovery
Area
Response
Queue
Request
Queue
Large Pool
…
02.06.2010
Shared Pool
02.06.2010 21Oracle 11g Datenbank Administration
Dictionary Cache
Kontrollstrukturen
z.B. NLS
Reusable Runtime
Memory
Shared SQL
PL/SQL Packages,
Procedures, Functions
Trigger
Kontrollstrukturen
z.B. Locks
Library Cache
SIG Database
Oracle 11g Datenbank Administration 02.06.20108
Benutzer Kommunikation
02.06.2010 22Oracle 11g Datenbank Administration
Benutzer-
Prozess
Benutzer-
Prozess
Single Task
Call - Interface
Anwendung
ORACLE Kernel
IPC
Server-
Prozess
Two-Task
Anwendung
ORACLE Kernel
Client-Server Architektur
02.06.2010 23Oracle 11g Datenbank Administration
Netzwerk
Anwendung
Oracle Net Client
Oracle Net Server
Oracle Kernel
Benutzer-
Prozess
Server-
Prozess
Anwendungskommunikation
02.06.2010 24Oracle 11g Datenbank Administration
Server-
Prozess Server-
Prozess Server-
ProzessOracle-Server
Benutzer-
Prozess
Benutzer-
Prozess
Benutzer-
ProzessBrowser
AnwendungsserverClient
SIG Database
Oracle 11g Datenbank Administration 02.06.20109
Einfacher Verbindungsaufbau
02.06.2010 25Oracle 11g Datenbank Administration
Server
Listener
Client
1
23
45
Gestarteter
Server-Prozess
Einfacher Verbindungsaufbau
• Client kontaktiert einen Listener (Prozess auf der
Servermaschine)
• Listener reagiert (falls er die angeforderte Instance bedient)
– startet dedicated Server und übergibt diesem die Client-
Kommunikationsparameter (bequeath)
– findet Dispatcher oder prespawned dedicated Server und antwortet dem
Client mit dessen Kommunikationsparametern (redirect)
• Client/Server-Kommunikation zwischen Client und Server; nicht
über Listener
– Ausnahme: spezielle Plattformen, z.B. MVS
2602.06.2010 Oracle 11g Datenbank Administration
Konfigurationsdateien
• alle in $ORACLE_HOME/network/admin oder $TNS_ADMIN
2702.06.2010
Datei Bedeutung
tnsnames.ora Namesauflösung
sqlnet.ora Allgemeine Parameter
listener.ora Listener Konfiguration
names.ora Oracle Names Konfiguration
cman.ora Connection Manager
Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.201010
Listener Konfiguration
• Der Listener kann auf zweierlei Weise konfiguriert werden:
– Statische Dienstekonfiguration
• bei Oracle8 und früheren Releases erforderlich
• Explizite Konfiguration einzelner Services in der listener.ora-Datei
– Dynamische Diensteregistrierung
• Benötigt keine Konfiguration in listener.ora
• Listener benötigt PMON-Prozess
• Vorsicht: Nach dem Shutdown wird die Instanz abgemeldet, ein
Remotezugriff ist jetzt nicht mehr möglich!
2802.06.2010 Oracle 11g Datenbank Administration
Listener Control Utility
• Aufruf mit lsnrctl
• Zeilenmodus oder interaktiv
• Befehle– SET PASSWORD
– START
– STOP
– STATUS
– SERVICES
– TRACE
– RELOAD
– VERSION
– SHOW
2902.06.2010 Oracle 11g Datenbank Administration
Server: listener.ora
3002.06.2010
LOG_DIRECTORY_LISTENER = C:\oracle\admin\Network\Log
LOG_FILE_LISTENER = Listener
LISTENER =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = pc1)(PORT = 1521)
)))
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = JA11G)
(ORACLE_HOME = D:\oracle\product\db_1\11.2.0)
(SID_NAME = JA11G))
(SID_DESC =
(GLOBAL_DBNAME = JA10G)
(ORACLE_HOME = D:\oracle\product\10.2.0)
(SID_NAME = JA10G)))
Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.201011
Client: sqlnet.ora
3102.06.2010
NAMES.PREFERRED_SERVERS =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = PC1)
(PORT = 1575))
)
NAMES.DEFAULT_DOMAIN = quest.de
SQLNET.EXPIRE_TIME = 10
NAMES.DIRECTORY_PATH= (tnsnames, onames)
SQLNET.CRYPTO_SEED =
4fhfguweotcadsfdsafjkdsfqp5f201p45mxskdlfdasf
SQLNET.AUTHENTICATION_SERVICES = (NTS)
Oracle 11g Datenbank Administration
Client: tnsnames.ora
3202.06.2010
RAC1.QUEST.DE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sun1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = sun2)(PORT = 1521))
)
(CONNECT_DATA = (SERVICE_NAME = RAC.quest.de))
)
JA10G.QUEST.DE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = pc1)(PORT = 1521))
)
(CONNECT_DATA = (SERVICE_NAME = JA10G))
)
Oracle 11g Datenbank Administration
SID vs. SERVICE_NAME
• Direkte Adressierung über die SID (wie in SQL*Net 2.x, Net8)(CONNECT_DATA =(SID = JA11G))
– der Wert muss dem Wert von ORACLE_SID auf dem Zielrechner entsprechen
• Indirekte Adressierung über einen SERVICE_NAME(zusätzliche Alternative ab Net8 8.1)(CONNECT_DATA =(SERVICE_NAME = JA11G.admsc.de))
– der Wert muss in der Liste der SERVICE_NAMES einer der beim Listenerangemeldeten Instanzen vorkommen
• Warum SERVICE_NAME?
– Einfachere Parametrierung von Oracle Net Namen
– Flexibilität durch Zuteilung von Datenbank-Diensten (Schemata für Anwendungen) zu Instanzen, wobei sowohl mehrere Dienste zu einer Instanz sowie ein Dienst in mehreren Instanzen (RAC, Replikation) möglich sind
– Automatischer Abgleich von Listener und Instanzen möglich
3302.06.2010 Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.201012
Konfigurationstest
• Oracle Net Namesauflösung und Kontakt zum Listener mit:tnsping <Oracle-Net-Name>
• Achtung: Kein Kontakt zur Instanz, daher kann SID bzw.
SERVICE_NAME immer noch falsch sein!
3402.06.2010 Oracle 11g Datenbank Administration
Connection Manager
• Kann verschiedene Rollen spielen:
– Protokollwechsel
– Connection Concentration
– Connection Pooling
– Oracle Net Firewall
3502.06.2010 Oracle 11g Datenbank Administration
EZ CONNECT
• Direkte Verbindung ohne Connection String
– CONNECT username/password@[//]host[:port][/service_name]
• Beispiel:
– CONNECT username/password@TEST11G:1521
– CONNECT username/password@//test11g.quest.com
3602.06.2010 Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.201013
Dedicated Server
02.06.2010 37Oracle 11g Datenbank Administration
Buffer Cache Shared PoolLog Buffer
SGA
...
RECO CKPT PMON SMON DBWn LGWR
Dedicated
Server
Benutzer
Prozess
Dedicated
Server
Benutzer
Prozess
Shared Server
02.06.2010 38Oracle 11g Datenbank Administration
Buffer Cache
Shared Pool Log BufferSGA
...
RECO CKPT PMON SMON DBWn LGWR
Benutzer
Prozess
Benutzer
Prozess
Shared
ServerShared
ServerShared
ServerShared
Server
Request Q Response Q
Dispatcher
Prozessstrukturen
02.06.2010 39
Dedicated Server Shared Server
Shared SQL
SGA
Shared SQL
SGA
Session Information
Stack Space
PGASession Information
PGA
Stack Space
Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.201014
Startup und Shutdown
02.06.2010 40Oracle 11g Datenbank Administration
Instanz
ORACLE_SID
Server
NOMOUNT
Datenbank
DB_NAME MOUNT
OPEN
Kontroll Dateien
Daten Dateien
Redo-Log Dateien
Parameter
Speicherarchitektur
02.06.2010 41Oracle 11g Datenbank Administration
Datenbanklogisch physisch
Datei
OS-Block
Extent
Segment / Partition
Tablespace
ORACLE Block
Tablespace
• Verwaltungseinheit für alle Datenbankobjekte
• Bestehen aus mindestens einer Datendatei
• Permanente oder temporäre Datenspeicherung
• Erlauben es, Objekte zu gruppieren aus Administrations- oder
Performancegesichtspunkten
z.B:
– SYSTEM: Data-Dictionary
– UNDOTBS: Rollback Segmente
– TEMP: Temporäre Segmente (Sortierungen)
– DATEN: Große Tabellen
– INDEX: Indizes
– SYSAUX: Objekte für Tools (z.B: Enterprise Manager)
4202.06.2010 Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.201015
Tablespace
• Tablespaces mit unterschiedlichen Blockgrößen möglich– CREATE TABLESPACE ... BLOCKSIZE 8K ...
– Für die Blocksize muss ein entsprechender Cache definiert sein:Initialisierungsparameter DB_n_CACHE_SIZE (n = 2,4,8,16,32)
• Spezialisierte Tablespaces
– TEMPORARY TABLESPACE
– UNDO TABLESPACE
– SYSAUX TABLESPACE (ab Oracle 10g)
4302.06.2010 Oracle 11g Datenbank Administration
Tablespace-Management
• Locally Managed Tablespace (Default)– Extentverwaltung im Tablespace
– Bitmap Struktur zur Verwaltung der Blöcke
– Keine Rollback Information für DDL, da keine Änderung im Data Dictionary
– Schnellere Extentverwaltung
• Früher: Dictionary Managed Tablespace– Extentverwaltung im Data Dictionary
– Erzeugt wie jede DDL Operation Rollback Information
– Management-Methode über dbms_space_admin änderbar
• Vorsicht: Entspricht nicht zu 100% einem neu angelegten Tablespace!
4402.06.2010 Oracle 11g Datenbank Administration
Locally Managed Tablespace
• AUTOALLOCATE = System Managed
– Initial Extent kann angegeben werden, Größen anderer Extents werden
automatisch kalkuliert, mit einer Mindestgröße von 64 KByte pro Extent
• UNIFORM
– Alle Extents haben die gleiche, konstante Größe
– Storage-Klauseln können nicht angegeben werden
4502.06.2010 Oracle 11g Datenbank Administration
CREATE TABLESPACE <TS-NAME>
...
EXTENT MANAGEMENT LOCAL
AUTOALLOCATE | UNIFORM SIZE n [K|M]
SIG Database
Oracle 11g Datenbank Administration 02.06.201016
Automatic Segment Space Management
• Freiplatz-Verwaltung („SEGMENT SPACE MANAGEMENT“)
• MANUAL = Freier Platz wird über sog. Freelists verwaltet
– Tabellen im Data Dictionary
• AUTO = Freier Platz wird über Bitmap-Strukturen verwaltet
(Automatic Segment Space Management, ASSM)
– Schneller
– Nur für Permanente Tablespaces
– Nicht für SYSTEM- und Undo-Tablespace
4602.06.2010 Oracle 11g Datenbank Administration
CREATE TABLESPACE <TS-NAME>
...
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO | MANUAL
Automatic Segment Space Management
• Belegter Platz pro Block wird in einer Bitmap abgelegt
– 5 Bit pro Block
• Reduziert Freelist Contention
• Parameter PCTUSED wird damit überflüssig
• Migration nicht per Änderung bestehender Tablespaces
möglich
– Datenmigration in neuen Tablespace notwendig (!)
4702.06.2010 Oracle 11g Datenbank Administration
Tablespace erstellen
• Einfachster Befehl:
• 1 Oracle Managed File ohne Autoextend
• Locally Managed Tablespace mit Autoallocate-Methode
• Automatic Segment Space Management
4802.06.2010 Oracle 11g Datenbank Administration
CREATE TABLESPACE <TS-NAME>;
SIG Database
Oracle 11g Datenbank Administration 02.06.201017
Tablespace erstellen (Beispiel)
• Kleiner Tablespace mit unterschiedlichen Objekten
• Großer Tablespace mit einheitlichen Objekten
4902.06.2010 Oracle 11g Datenbank Administration
CREATE TABLESPACE ts_klein
DATAFILE '.../ts_klein01.dbf' SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 1000M
SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE ts_gross
DATAFILE '.../ts_gross01.dbf' SIZE 2000M
AUTOEXTEND ON NEXT 100M MAXSIZE 5000M
UNIFORM SIZE 10M
SEGMENT SPACE MANAGEMENT AUTO;
System-/Sysaux-Tablespace
• System
– Data Dictionary: tab$, obj$, …
• Sysaux
– Repositories für spezielle Funktionen, u.a.
• Enterprise Manager Repository
• XML DB
• Log Miner
• Stored Outlines
• Workspace Manager
5002.06.2010 Oracle 11g Datenbank Administration
Temporär-Tablespace
• Für Sortierungen / Hashes / Bitmap-Operationen
• Kein Logging
• Keine interne Blockstruktur
– Anlegen sehr schnell
• Tempfiles statt Datafiles
– Erstellen über ALTER TABLESPACE (nicht ALTER DATABASE)
– Werden bei Backups nicht mitgesichert
• Erstellen mit:– CREATE TEMPORARY TABLESPACE <TS-NAME>
TEMPFILE <Dateipfad>
SIZE <n K|M|G>;
5102.06.2010 Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.201018
Default Temporär-Tablespace
• Fallback für alle Benutzer, die keinen Temporär-Tablespace
explizit zugewiesen bekommen haben
• Erstellen mit:– CREATE DATABASE ...
DEFAULT TEMPORARY TABLESPACE <TS-NAME> ...
– ALTER DATABASE
DEFAULT TEMPORARY TABLESPACE <TS-NAME>
• Kann nicht gelöscht werden, solange kein anderer existiert
5202.06.2010 Oracle 11g Datenbank Administration
Default Permanent Tablespace
• Fallback für alle Benutzer, die keinen Standard-Tablespace
explizit zugewiesen bekommen haben
• Erstellen mit:– CREATE DATABASE ...
DEFAULT TABLESPACE <TS-NAME> ...
– ALTER DATABASE
DEFAULT TABLESPACE <TS-NAME>
• Kann nicht gelöscht werden, solange kein anderer existiert
5302.06.2010 Oracle 11g Datenbank Administration
Undo Tablespace
• Automatisches Management der Rollback-Segmente
• Wird über Serverparameter verwaltet
– undo_management = AUTO
– Standardeinstellung seit Oracle9i
• Tablespace-Erstellung mit– CREATE DATABASE ...
UNDO TABLESPACE <TS-Name> ...
– CREATE UNDO TABLESPACE <TS-Name> ...
– Ansonsten automatische Erstellung „SYS_UNDOTBS“ beim Instanzstart
5402.06.2010 Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.201019
Transportable Tablespace
• Physikalische Kopie eines Tablespaces in eine andere
Datenbank
• Limitierungen:
– Gleicher Zeichensatz (und NCHAR-Zeichensatz)
– Keine Abhängigkeiten VON Objekten außerhalb des Tablespaces
• Index mit Tabelle in anderem Tablespace
• Andere Partitionen in anderen Tablespaces
• Foreign Key-Constraints zu Tabelle in anderem Tablespace
– Während der Migration Read-Only
– Plattformwechsel über Konvertierung mittels RMAN
• Metadaten-Übertragung (Data Dictionary Export/Import)– EXP TRANSPORT_TABLESPACE=y ...
– IMP TRANSPORT_TABLESPACE=y ...
5502.06.2010 Oracle 11g Datenbank Administration
Segment
• logische Einheit aller Daten eines Objekts
• beliebig viele Segmente pro Tablespace
• ein oder mehrere Extents pro Segment
• ein Segment ist einem Tablespace zugeordnet
• ein Segment kann über mehrere Dateien verteilt sein
• Bei partitionierten Tabellen ist jede Partition ein Segment und
kann dementsprechend in einem eigenen Tablespace liegen
• Widersprechende Ziele
– logische Daten als physische Einheit
– Wachstum der Datenmenge möglich
5602.06.2010 Oracle 11g Datenbank Administration
Segmenttypen (1)
• Daten Segment (Speicherung der Information)
– Tabelle (nicht partitioniert)
– Cluster
– Index Organized Table
– Tabellen-Partition
• Index Segment
– B*Baum-Index (nicht partitioniert)
– Bitmapped Index
– Index-Partition
• Spezialfall: Externe Tabelle
• LOB-Segmente
– Für BLOB-/CLOB-/NCLOB-Spalten
– Zwei Speicherungsarten: Securefile vs Basicfile
5702.06.2010 Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.201020
Segmenttypen (2)
• Rollback / UNDO - Segment
– Zwischenspeicherung alter Daten
– Für ROLLBACK-Befehl
– Für Lesekonsistenz
• Temporär-Segment
– Sortierungen für Abfragen
– Aufbau von Indizes (CREATE INDEX ...)
– Nur benutzt, wenn Sortierbereich im Hauptspeicher nicht ausreicht
– Temporärtabellen
5802.06.2010 Oracle 11g Datenbank Administration
Extent
• liegt vollständig innerhalb einer Datei
• wird zusammenhängend angelegt
• ist genau einem Segment zugeordnet
• wird nicht wieder freigegeben, solange das Segment besteht
• Ausnahmen:– TRUNCATE <TABLE | CLUSTER> DROP STORAGE;
• Über Locally Managed Tablespace werden Extent Anzahl und
Größe automatisch verwaltet
5902.06.2010 Oracle 11g Datenbank Administration
Block
• kleinste Einheit für ORACLE
• Größe
– meist ein Vielfaches von Betriebssystem-Blöcken
(2 kByte bis 32 kByte)
– kann über Initialisierungsparameter beim
CREATE DATABASE angepasst werden
– Kann je Tablespace separat definiert werden
• Aufbau
– Block Header
– Datenbereich
6002.06.2010 Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.201021
Datenblock-Struktur
61 02.06.2010
Blockheader
Free Space
Row
Row
Row
Row
Row
statischer Bereich 61 byte
transaction header min. 23 Byte
* INITTRANS
row dictionary 2 Byte pro Satz
DATEN (netto + overhead)
ROWID Format (Basis 64):
OOOOOOFFFBBBBBBRRR
OOOOOO data object number
FFF Datafile
BBBBBB Datablock
RRR Row
PCTFREE = 10
10% Free Space
werden bei Inserts
freigelassen und für
Updates reserviert
PCTUSED = 40
Keine neue Sätze
kommen in den Block,
bis der Füllgrad unter
40 % liegt
Nicht mehr nötig mit
ASSM-Tablespaces
Row
Row
Row
Row
Row
Oracle 11g Datenbank Administration
Copyright © 2006 Quest Software© 2010 Quest Software, Inc. ALL RIGHTS RESERVED
Kapitel 3
Installation
Namenskonvention
• ORACLE_BASE = Basisverzeichnisse für alle Oracle Dateien
• ORACLE_HOME = Verzeichnis eines bestimmen Oracle
Releases
• ORACLE_SID = System Identifier, spezifiziert lokal eine
bestimmte Oracle Instanz
63Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201022
Software
• Generell ist die Installation und der Betrieb der Datenbank
kostenfrei, solange keine Produktionsdatenbank betrieben wird
(auch Schulung ist produktiv!!!)
• Software kann über OTN (Oracle Technology Network)
heruntergeladen werden
• Derzeitige Pakete
– Database (ca. 2,2 GB)
– Client
– Examples (Companion)
– Grid Infrastructure (Clusterware + ASM)
– Gateways
– Uninstall
– Grid Control
• Ein Patchset für alle Komponenten
64Oracle 11g Datenbank Administration02.06.2010
Voraussetzungen Linux (11g R2)
• X-Windows-System, mindestens 1024 x 768
– Laut Dokumentation für Silent Installation nicht notwendig!
• 1 GB Hauptspeicher
• 3.95 GB für Software (Enterprise Edition)
• 400 MB Temp-Space
• Gnu C-Compiler (!)
• Empfehlung: Hostname über /etc/hosts auflösen
• Bei Multihome-Installationen (mehrere Hostnamen) Variable
ORACLE_HOSTNAME setzen
65Oracle 11g Datenbank Administration02.06.2010
Vorbereitungen
• Unix/Linux
– Anlegen eines Benutzers und ein bzw. zwei Gruppen
• User: oracle
• Group:
– oinstall (Verwalter des Oracle Inventories)
– dba (Oracle Datenbank-Administrator = OSDBA erhält das Privileg
SYSDBA)
– Ev. zusätzliche Gruppe oper = OSOPER erhält das Privileg SYSOPER)
– Bei Verwendung Grid Infrastructure am besten separate Benutzer
• User
– grid
• Group
– asmdba
66Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201023
Verzeichnisstruktur
67Oracle 11g Datenbank Administration
oracle
admin
diag
product
<SID> scripts
lsnr
rdbms
asm
...
<DB2>
<DB1><SID1>
<SID2>
db_1
dbs
bin
assistants
install
lib
sqlplus
rdbms
...
trace
metadata
alert
...
11.1.0
11.2.0
...
app
oraInventory
oragrid
02.06.2010
Installationsarten
• Installation immer mit grafischer Oberfläche!!!
• Interaktive Installation
– Standardinstallation
• Standard Edition
• Standard Edition One
• Enterprise Edition
– Inklusive DB oder nur Software
– Custom Installation
• Automatische Installation
=> Responsefile Installation
68Oracle 11g Datenbank Administration02.06.2010
Tipp: Install database software only!
69Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201024
Nur bei RAC Installation!
70Oracle 11g Datenbank Administration02.06.2010
Basisinstallation
71Oracle 11g Datenbank Administration02.06.2010
Software Installation Screenshots
72Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201025
Preinstallation Check / Fixit Skripts
7302.06.2010 Oracle 11g Datenbank Administration
Datei-Konfigurationsarten
• Dateisystem
– Variable Verzeichnisstruktur
– Gemeinsame Verzeichnisstruktur
– Oracle Managed Files
• Automatic Storage Management (ASM)
• Raw-Devices
• Bei produktiven Datenbanken sollten alle Dateien
auf einem gespiegelten und gestripten Plattensystem liegen
(S.A.M.E = Stripe And Mirror Everything)
74Oracle 11g Datenbank Administration02.06.2010
Database Configuration Assistant (dbca)
75Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201026
DBCA Screenshots
• Linux: dbca
• Window: Datenbank-Konfigurationsassistent
7602.06.2010 Oracle 11g Datenbank Administration
Vordefinierte Datenbanken
• enthalten:
– Oracle JVM
– Oracle Text
– Oracle XML DB
– Oracle Multimedia
– Oracle Spatial
– Enterprise Manager Repository
– Oracle Application Express
– Oracle Warehouse Builder
• Einziger Unterschied:
– DataWarehouse: star_query_transformation_enabled = TRUE
7702.06.2010 Oracle 11g Datenbank Administration
Vorschläge für die Konfiguration
• Character-Set
– WE8ISO8859P15
– WE8MSWIN1252 (besser als WE8ISO8859P15 da mehr Zeichen)
– AL32UTF8
• Dateigrößen beschränken
(Default = unendlich)
• Autoextend relativ zur Dateigröße setzen
(wenn überhaupt)
– 10 MB für kleine Dateien (maximal 1 GB)
– 100 MB für größere Dateien
• Default für Oracle Managed Files: 1 Block (!)
• Tipp: dbca für die Konfiguration benutzen und dann Skript
erstellen!
– Datei: createDBCatalog.sql => set echo off
78Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201027
Namenskonventionen
• Endungen entsprechend OMF:
– Controlfiles .ctl
– Datafiles .dbf
– Tempfiles .tmp
– Online Redologfiles .log
– Archivierte Redologfiles .arc
• Datafiles sollten den Namen des entsprechenden Tablespaces
enthalten
• Redologfiles den Member (bei Spiegelung), die Gruppe und
den Thread (bei RAC)
79Oracle 11g Datenbank Administration02.06.2010
Manuelle Installation
• Vorbereitung des Betriebssystems
– Setzen Sie die Variable ORACLE_SID
– Erzeugen Sie eine Parameter-Datei init<sid>.ora mit folgenden
• Mindestangaben:
DB_NAME, CONTROL_FILES, DB_BLOCK_SIZE
– Dienst (Service) für die Instanz (MS-Windows)
– Password-File für die Instanz:
80Oracle 11g Datenbank Administration
oradim -NEW -SID new –PFILE d:\oradb\dbs\initnew.ora
orapwd FILE=d:\oracle\ora10\database\pwdnew.ora
PASSWORD=secret
02.06.2010
CREATE DATABASE
81Oracle 11g Datenbank Administration
CREATE DATABASE "JA11G2"
…
DATAFILE 'E:\oradata\JA11G2\system01.dbf' SIZE 700M REUSE
AUTOEXTEND ON NEXT 10240K MAXSIZE 1000M EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE 'E:\oradata\JA11G2\sysaux01.dbf' SIZE 600M REUSE
AUTOEXTEND ON NEXT 10240K MAXSIZE 1000M
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP
TEMPFILE 'E:\oradata\JA11G2\temp01.dbf' SIZE 20M REUSE
AUTOEXTEND ON NEXT 10240K MAXSIZE 1000M
SMALLFILE UNDO TABLESPACE "UNDOTBS1"
DATAFILE 'E:\oradata\JA11G2\undotbs01.dbf' SIZE 200M REUSE
AUTOEXTEND ON NEXT 10240K MAXSIZE 1000M
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('E:\oradata\JA11G2\redo01.log') SIZE 51200K,
GROUP 2 ('E:\oradata\JA11G2\redo02.log') SIZE 51200K,
GROUP 3 ('E:\oradata\JA11G2\redo03.log') SIZE 51200K
USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY
"&&systemPassword";
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201028
Data Dictionary und Packages
• Nach dem Erzeugen einer neuen Instanz müssen die folgenden
beiden Skripte unbedingt unter dem SYS- oder INTERNAL-
User ausgeführt werden:
– catalog.sql Erzeugen des Data Dictionary
– catproc.sql Erzeugen der Standard-Packages
• Beide Skript befinden sich im Verzeichnis ORACLE_HOME\rdbms\admin
82Oracle 11g Datenbank Administration
SQL> connect / as sysdba
Connected.
SQL> @ ?\rdbms\admin\catalog.sql *)
*) @ steht für „Start“
? Steht für das ORACLE_HOME Verzeichnis
02.06.2010
Der Administrator
• DBA-Benutzer auf ORACLE-Ebene
– SYS (Eigentümer des Data-Dictionaries)
– SYSTEM (Eigentümer der Tool-Tabellen, Beispiel-DBA)
– andere Benutzer mit DBA-Aufgaben und Rechten
• Betriebssystem-Ebene
– beliebiger Benutzer
– priviligiert für Installation und Dateiverwaltung
– priviligiert für spezielle Administrations-Kommandos
– NT: Gruppe ORA_DBA
83Oracle 11g Datenbank Administration02.06.2010
Data Dictionary (1)
• Metadaten zur Beschreibung der Datenbank, ihrer Objekte und
Benutzer
• Abfrage-Möglichkeiten auf alle Komponenten
• Interne Verwaltung durch ORACLE-Kernel
• Externer Zugriff über SQL
– Informationen über interne Strukturen
– Monitoring
84Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201029
Data Dictionary (2)
85Oracle 11g Datenbank Administration
User User User
Views, Synonyms, DBA_..., ALL_..., USER_...
Tabellen, Virtuelle Tabellen (V$...)
ORACLE
02.06.2010
Data Dictionary (3)
• Externes DD
– USER_ Benutzer-eigene Objekte
– ALL_ zugreifbare Objekte
– DBA_ globale Sicht
• V$-Tabellen
– virtuelle Performance Tabellen
– liefern Informationen für Monitoring
86Oracle 11g Datenbank Administration02.06.2010
Data Dictionary (4)
• Internes DD
– wird intern von ORACLE gepflegt
– darf niemals über DML oder DDL manipuliert werden, sonst droht ein
Verlust der gesamten Datenbank! (Ausnahme: Audit-Trail AUD$)
– dient als Basis für externen DD
– „CREATE“, „ALTER“, „DROP“
werden intern als „INSERT“, „UPDATE“, „DELETE“
auf die entsprechenden Data-Dictionary Tabellen ausgeführt
87Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201030
Informationen aus dem Data Dictionary
• Abfragen der Data Dictionary-View DBA_OBJECTS
• DESCRIBE Befehl
88Oracle 11g Datenbank Administration
SQL> SELECT owner, object_name
FROM dba_objects
WHERE status= 'INVALID';
SQL> DESCRIBE user1.projekte;
02.06.2010
Information über eine Session
• Sie können eine bestimmte Session eines Benutzers beenden
– Welche Benutzer sind eingeloggt?
– Eine bestimmte Session kann unter Angabe der SID und SERIAL#
beendet werden
89Oracle 11g Datenbank Administration
SQL> SELECT username, sid, serial# FROM v$session;
SQL> ALTER SYSTEM KILL SESSION '11,1436';
02.06.2010
Trace und Alert-Dateien
• Der Oracle Server führt Alert- und Trace-Files als Protokolldateien
• der Speicherort der Trace- und Alert-Files wird über die Parameter USER_DUMP_DEST und BACKGROUND_DUMP_DESTeingestellt
• Trace-Files können von Server- und von Hintergrundprozessen geschrieben werden
• in den Trace-Files stehen Fehler, im Alert-File wird ein Protokoll über wichtige Aktivitäten (z.B. Herauf- und Herunterfahren) geführt
• die Protokollierung von Server-Prozessen kann gezielt durch folgenden Befehl aktiviert werden:
90Oracle 11g Datenbank Administration
SQL> ALTER SESSION SET sql_trace=TRUE;
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201031
asm/ clients/ crs/ diagtool/ lsnrctl/ netcman/ ofm/ rdbms/
Automatic Diagnostic Repository (ADR)
diag/
$ORACLE_BASE
<DB1> <DB2>
<SID1> <SID2>
alert cdump hm incident ir lck metadata stage sweep trace
91Oracle 11g Datenbank Administration02.06.2010
ADR
• All files as XML-File
– Old alert-log and traces in subdirectory traces
• Server Parameter:– _diag_adr_enabled
– diagnostic_dest = $ORACLE_BASE
• View v$diag_info
• Tool Enterprise Manager or adrci
(Automatic diagnostic repository command line interface)
– View data
– Create incidents for support
– Online view like „tail –f“ also on Windows
92Oracle 11g Datenbank Administration02.06.2010
Incident Packaging Service (IPS)
• Part of ADR
• Incident Flood control to suppress messages
• Combination of traces, logs, environment information for
support
• Zip-file for upload at „my Oracle support“ former Metalink
93Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201032
Copyright © 2006 Quest Software© 2010 Quest Software, Inc. ALL RIGHTS RESERVED
Kapitel 4
Backup & Recovery
Übersicht
• DB-Vorbereitung
• Archiving
• Backup Strategie
• Recovery Manager (RMAN)
• Fehleranalyse
• Recovery-Strategien
• Standby Datenbank
• Flashback-Techniken
• Oracle LogMiner
95Oracle 11g Datenbank Administration02.06.2010
Backup Komponenten
96Oracle 11g Datenbank Administration
User
SMON PMON PnnnRECO CJQn
Buffer Cache LogbufferShared Pool
Dictionary
Cache
Library
Cache
SELECT SELECT
INSERT
Datendatei(en)
DBWn LGWR
ARCn
User
Instanz
Datenbank
Redolog-Dateien
Archivierte
Redolog-Dateien
ServerServer
SGA
Parameter
Datei
CKPT
Kontrolldateien
Jnnn
Backups
RMANFlash / Fast
Recovery
Area02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201033
Physikalische Spiegelung
• Erster Level der Verfügbarkeit einer Datenbank
– sollte immer aufgesetzt sein
• Hardware oder Betriebssystemspiegelung
– Raid 1, 3 ,5 ...
• Spiegelung der Datenbank oder Teile davon
• Dadurch wird ein Backup nicht überflüssig!
• Ab Raid 3 Performanceeinbußen beim Schreiben
• Kontroll- und Redolog-Dateien sollten trotzdem über Oracle
Mechanismen gespiegelt werden
97Oracle 11g Datenbank Administration02.06.2010
Redo Log Dateien spiegeln
• zweites (oder mehr) zusätzliches Set von Redo Log Dateien
• Werden über den Logwriter (LGWR) synchron beschrieben
• Ausfall einer Gruppe führt nicht zum Fehler
98Oracle 11g Datenbank Administration02.06.2010
Redologs spiegeln
SQL> ALTER DATABASE
ADD LOGFILE THREAD 1 GROUP 3
'/oradata1/SUNDB/redo03.log',
'/oradata1/SUNDB/redo13.log' SIZE 20M
SQL> ALTER DATABASE
ADD LOGFILE MEMBER
'/oradata1/SUNDB/redo13.log' TO GROUP 3
SQL> ALTER DATABASE
ADD LOGFILE MEMBER
'/oradata1/SUNDB/redo13.log' TO
'/oradata1/SUNDB/redo03.log'
99Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201034
Kontrolldatei spiegeln
• Kontroll-Datei spielt extrem wichtige Rolle für ein vollständiges
Recovery!
• Backup der Kontroll-Datei bei jeder Struktur-Änderung
100Oracle 11g Datenbank Administration02.06.2010
Kontrolldatei nachträglich spiegeln
• SPFILE ändern:
• Datenbank herunter fahren
• Zusätzliche Kontrolldateien kopieren
• Datenbank wieder starten
101Oracle 11g Datenbank Administration
SQL> ALTER SYSTEM SET control_files =
'$HOME/ORADATA/u01/ctrl01.ctl',
'$HOME/ORADATA/u02/ctrl02.ctl'
SCOPE=SPFILE;
SQL> Shutdown immediate;
$ cp $HOME/ORADATA/u01/ctrl01.ctl
$HOME/ORADATA/u02/ctrl02.ctl;
02.06.2010
Die Recovery-Lücke
102Oracle 11g Datenbank Administration
t
Create DB Backup Beginn
ältestes
Online Log
Crash
Lücke
t
Create DB Backup Beginn
ältestes
Online Log
Crash
Archiving
Archivelog-Modus
Noarchivelog-Modus
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201035
Noachivelog-Modus
103Oracle 11g Datenbank Administration
Redologfiles
Datafiles
Controlfiles
Montag: Backup
Redologfiles
Redologfiles RedologfilesFreitag: Plattencrash
.
.
.
Lücke
.
.
.
02.06.2010
Archivelog-Modus
104Oracle 11g Datenbank Administration
Redologfiles Redologfiles
Redologfiles
Datafiles
Controlfiles
Montag: Backup
Redologfiles
Redologfiles RedologfilesFreitag: Plattencrash
Redologfiles Redologfiles
Redologfiles Redologfiles
Archivelogs
Der ARCH-Prozess sichert die
Redolog-Dateien, bevor sie
durch den LGWR-Prozess
überschrieben werden dürfen
02.06.2010
Konfiguration Archiving
105Oracle 11g Datenbank Administration
100
Online Redo Logs
100
Gruppe 1
101
101
Gruppe 2
Archivierte Redo Logs
101ARCH
D:\schulung\archive\redo23.arc
LOG_ARCHIVE_DEST = D:\schulung\archive\
LOG_ARCHIVE_FORMAT = redo%s.arc
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201036
Serverparameter für das Archiving
log_archive_dest = dest
log_archive_dest_n *) = Location=…
log_archive_duplex_dest = duplex_dest
log_archive_dest_state_n *) = enable|defer
log_archive_format = format
log_archive_max_processes = n *)
log_archive_min_succeed_dest = n *)
log_archive_trace = m (m = 0,1,2,4...)
remote_archive_enable = true|false
*)n = 1 … 31
Format enthält:
%r für Resetlog_ID
%s/%S für Log-Sequence-Nummer
%t/%T für Thread-Nummer
106Oracle 11g Datenbank Administration02.06.2010
Archiver Best Practice
• Da die archivierten Redo Log-Files von elementarer Bedeutung beim
Recovery sind, empfiehlt es sich, auch diese zu spiegeln
• Es gibt die Möglichkeit zu bestimmen, wie viele bzw. welche Kopien
der Archivelogs erfolgreich geschrieben werden müssen
107Oracle 11g Datenbank Administration
LOG_ARCHIVE_MIN_SUCEED_DEST = 2
Oder:
LOG_ARCHIVE_DEST_1 = "LOCATION=D:\archive1 MANDATORY"
LOG_ARCHIVE_DEST_2 = "LOCATION=E:\archive2 OPTIONAL"
LOG_ARCHIVE_DUPLEX_DEST = E:\DUP_ARCHIVE
Oder:
LOG_ARCHIVE_DEST_1 = "LOCATION=D:\schulung\archive"
LOG_ARCHIVE_DEST_2 = "LOCATION=E:\dup_archive"
02.06.2010
Archiver Best Practice
• Mit einem Serverparameter können dynamisch
Archivierungsziele aktiviert und deaktiviert werden:
• Abschalten:– LOG_ARCHIVE_DEST_STATE_2 = DEFER
• Einschalten:– LOG_ARCHIVE_DEST_STATE_2 = ENABLE
108Oracle 11g Datenbank Administration
ALTER SYSTEM SET log_archive_dest_state_2 = ENABLE;
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201037
Fast Recovery Area
• Spezieller Datenbank-Bereich für alles was mit Backup zu tun
hat bzw. für Recovery benötigt wird:
– Archivierte Redolog-Dateien
– RMAN-Backups der Datenbank
– Flashback Logs
• Angegeben wird dieser Bereich über zwei Serverparameter
– db_recovery_file_dest Verzeichnis
(am besten eigenes Filesystem)
– db_recovery_file_dest_size Maximale Nutzung durch diese
Datenbank und damit
automatische Überwachung
109Oracle 11g Datenbank Administration02.06.2010
Fast Recovery Area
• Aktivierung und Prüfung durch
• Fast Recovery Area wird automatisch als Zielverzeichnis zur
Verfügung gestellt
– Für Archivierung
– Für RMAN-Backups
– Für Flashback-Logs
– Implizit: log_archive_dest_10=use_db_recovery_file_dest (Oracle 10g)
bzw. log_archive_dest_1=use_db_recovery_file_dest (Oracle 11g)
110Oracle 11g Datenbank Administration
SQL> ALTER SYSTEM SET db_recovery_file_dest = '/oraflash';
SQL> ALTER SYSTEM SET db_recovery_file_dest_size = 1G;
SQL> SELECT * FROM v$recovery_file_dest;
02.06.2010
Platzprobleme mit Fast Recovery Area
• Wenn der angegebene Platz zu klein wird, bleibt die Datenbank
u.U. stehen, falls dieser Bereich für die Archivelogs verwendet
wird.
• Fehlermeldung im Alert-File
111Oracle 11g Datenbank Administration
ORA-19815: WARNING: db_recovery_file_dest_size of 1048576000 bytes is 99.63%
used, and has 3872768 remaining bytes available.
*************************************************************
You have the following choices to free up space from flash recovery area:
1. Consider changing your RMAN retention policy.
If you are using dataguard, then consider changing your
RMAN archivelog deletion policy.
2. Backup files to tertiary device such as tape using the
RMAN command BACKUP RECOVERY AREA.
3. Add disk space and increase the db_recovery_file_dest_size
parameter to reflect the new space.
4. Delete unncessary files using the RMAN DELETE command.
If an OS command was used to delete files, then use
RMAN CROSSCHECK and DELETE EXPIRED commands.
*************************************************************
Deleted Oracle managed file
/oraflash/JAUX10G/backupset/2004_08_06/o1_mf_nnndf_TAG20040806T175900_0k7bp7z
3_.bkp02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201038
ARCHIVELOG-Modus aktivieren
1. Ggf. Setzen einschlägiger Serverparameter
2. "Sauberes" Herunterfahren der Datenbank mit SHUTDOWN
[NORMAL|IMMEDIATE|TRANSACTIONAL]
3. Hochfahren der Datenbank in den Mount-Status
4. Datenbank in den Archivelog-Modus versetzen
5. Datenbank öffnen
6. Überprüfen, ob Archivierung funktioniert
7. Vollständige Sicherung der Datenbank
112Oracle 11g Datenbank Administration02.06.2010
ARCHIVELOG-Modus aktivieren
113Oracle 11g Datenbank Administration
SQL> SHUTDOWN IMMEDIATE
SQL> CONNECT / AS SYSDBA
SQL> STARTUP MOUNT
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
02.06.2010
Kontrolle Archivierung
• Data Dictionary Views:– V$ARCHIVED_LOG
– V$ARCHIVE_DEST
– V$ARCHIVE_PROCESSES
– V$DATABASE
– V$LOG_HISTORY
• Direkt über SQL*Plus als SYSDBA
114Oracle 11g Datenbank Administration
SQL> CONNECT / AS SYSDBA
SQL> ARCHIVE LOG LIST
STOP
START TO <dest>
NEXT
ALL
<int>
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201039
Kontrolle Archivierung
115Oracle 11g Datenbank Administration
SQL> SELECT archiver
FROM v$instance;
ARCHIVE
-------
STARTED
SQL> SELECT log_mode
FROM v$database;
LOG_MODE
------------
ARCHIVELOG
02.06.2010
Backup-Modi
• Online Database Backup
– Nur möglich, wenn die Datenbank im Archivelog-Modus gefahren wird
– Vorteile:
• Datenbank ist durchgängig verfügbar
• Offline Database Backup
– im Archivelog- und im Noarchivelog-Modus möglich
– Vorteile:
• einfaches Konzept
– Nachteile:
• Datenbank ist während der Zeit des Backups nicht verfügbar
• Für produktive Datenbanken immer Online Backup nutzen!
116Oracle 11g Datenbank Administration02.06.2010
Offline Backup
• SHUTDOWN der Instanz
• Sicherung der gesamten DB (Daten- und Kontroll-Dateien)
– Redolog-Dateien brauchen nicht gesichert zu werden
• Sicherung hat konsistenten Zustand, falls die Instanz NORMAL,
IMMEDIATE oder TRANSACTIONAL heruntergefahren ist
– ansonsten erfolgt beim nächsten STARTUP ein Instance Recovery
(auch hierfür werden keine Redologs benötigt!)
• Achtung: Es besteht immer die Gefahr, Dateien zu vergessen,
daher:
– Datenbank nicht komplett offline sichern, sondern im Mount-Status
– Zu sichernde Dateien auslesen via Views v$datafile bzw. v$controlfile
117Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201040
Offline Backup
• Kurzer Vorgriff auf RMAN (Recovery Manager)
– Schwerpunktmäßig für Online-Sicherungen
– Aber erlaubt auch eine Offline-Sicherung im MOUNT-Status
– Sehr einfach und robust:
118Oracle 11g Datenbank Administration
rman system/manager@SUN10G
RMAN> SHUTDOWN IMMEDIATE
RMAN> STARTUP MOUNT
RMAN> BACKUP DATABASE
RMAN> ALTER DATABASE OPEN;
02.06.2010
Online Backup
• Nur im ARCHIVELOG-Modus möglich und sinnvoll
• Instanz bleibt im OPEN-Status, d.h. Aktivität ununterbrochen
• Sicherung wahlweise
– Der kompletten Datenbank
– Einzelner Tablespaces
– Einzelner Datendateien
• Sollte immer den Oracle RMAN (Recovery Manager) nutzen
• „Old-Style“ Online Backup sollte nicht mehr verwendet werden
– ALTER TABLESPACE BEGIN | END BACKUP…
119Oracle 11g Datenbank Administration02.06.2010
Recovery Manager
• Transparentes, servergestütztes Backup und Recovery
• Protokollieren der Aktionen im Repository
– Kontrolldatei der Datenbank
– Optional: zentrale „Katalog-Datenbank“
• Automatisierung durch gespeicherte Skripts
• Aufbau von „Backup Sets“ oder einfachen „Image Copies“
• Differentielle Backup Sets: Kumulativ oder inkrementell
• Konsistenzprüfung (fractured block detection)
• Erkennen und Protokollieren von korrupten Blöcken
• Optional: direkte Anbindung an Tape-Libraries
– Tivoli Storage Manager, EMC Networker, Symantec NetBackup etc.
120Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201041
Recovery Manager Architektur
121Oracle 11g Datenbank Administration02.06.2010
Backup Set
• Oracle-spezifisches Format
• Getrennte Speicherung von Daten und archivierten Redologs
• Stückelung in Backup-Pieces, z.B. für Archivierung auf DVD
• Optional komprimiert und verschlüsselt
• Logisch leeren Datenblöcke werden als solche erkannt und nur
per Platzhalter in das Backup-Set geschrieben
• Ein „RMAN-Channel“
– Entspricht einer RMAN-Session in der Datenbank
– wird bei Beginn des Backups alloziert
– Schreibt in ein Backup-Set
– Paralleles Backup durch mehrere Channel pro Datenbank
122Oracle 11g Datenbank Administration02.06.2010
RMAN Backup Syntax
123Oracle 11g Datenbank Administration
RMAN> BACKUP DATABASE;
RMAN> BACKUP ARCHIVELOG ALL;
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
RMAN> BACKUP TABLESPACE <TS-NAME>;
RMAN> BACKUP DATAFILE <DF-NAME>;
RMAN> BACKUP RECOVERY AREA;
RMAN> BACKUP CURRENT CONTROLFILE;
RMAN> BACKUP SPFILE;
RMAN> BACKUP NOT BACKED UP SINCE TIME 'SYSDATE – 7'
DATABASE;
RMAN> BACKUP DATABASE AS COPY;
RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY;
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201042
Backup Konfiguration
124Oracle 11g Datenbank Administration
*) CONTROLFILE AUTOBACKUP => automatische Sicherung der
Kontrolldatei und des SPFILES, dadurch ist ein Recovery
wesentlich einfacher.
Tipp: Mit RMAN> SHOW ALL
bekommt man die aktuelle Konfiguration angezeigt
rman target=system/manager@SUNDB
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 3;
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK
FORMAT = "/oradata2/backup/%d_%s_%T";
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; *)
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT
FOR DEVICE TYPE DISK TO
'/oradata2/backup/%F.ctl';
02.06.2010
RMAN Format-Elemente
• FORMAT = …– %a Aktivierungs-ID der Datenbank
– %c Nummer eines Backup-Pieces (Duplex Backup)
– %d Name der Datenbank
– %D Tag des Monats
– %F Datenbank-ID (DBID) plus Tag, Monat, Jahr, fl. Nummer
– %I Datenbank-ID
– %M Monat
– %n Name der Datenbank (mit x auf 8 Stellen aufgefüllt)
– %p Nummer des Backup-Pieces
– %s Nummer des Backup-Sets
– %t Zeitstempel des Backup-Sets (4 Byte)
– %T Datum (Jahr, Monat, Tag im Format YYYYMMDD)
– %u 8-Zeichen langer Name aus Backupset und Zeit
– %U Zusammengesetztes eindeutiges Format (%u_%p_%c)
– %Y Jahr
– %% %
125Oracle 11g Datenbank Administration02.06.2010
Backup-Beispiele
• Sicherung der Datenbank incl. Archivelogs und anschließend
Löschen der gesicherten Archives
• Sicherung der Archivelogs, die noch nicht mindestens zweimal
gesichert worden sind
• Löschen der Archivelogs, die älter als drei Tage sind
• Überprüfen der vorhandenen Archivelogs
(„House-Keeping“, z.B. nach manuellem Löschen von Dateien)
126Oracle 11g Datenbank Administration
RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
RMAN> BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE - 3';
RMAN> CROSSCHECK ARCHIVELOG ALL;
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201043
Benutzung der Fast Recovery Area
• Zurücksetzen der Parameter auf Defaultwerte
• Sicherung in Fast Recovery Area
• Überprüfung der Fast Recovery Area
127Oracle 11g Datenbank Administration
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP clear;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT clear;
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK clear;
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
./JAUX10G/archivelog/2007_08_06/o1_mf_1_1_0k75gyfc_.arc
./JAUX10G/archivelog/2007_08_06/o1_mf_1_2_0k75tjg1_.arc
./JAUX10G/archivelog/2007_08_06/o1_mf_1_3_0k7693bh_.arc
./JAUX10G/archivelog/2007_08_06/o1_mf_1_4_0k76j9b1_.arc
./JAUX10G/archivelog/2007_08_06/o1_mf_1_5_0k76nj14_.arc
./JAUX10G/autobackup/2007_08_06/o1_mf_s_533495072_0k77j3tx_.bkp
./JAUX10G/backupset/2007_08_06/o1_mf_annnn_TAG20040806T170207_0k7ckj8_.bkp
./JAUX10G/backupset/2007_08_06/o1_mf_nnndf_TAG20040806T170224_0k7d9p9_.bkp
./JAUX10G/backupset/2007_08_06/o1_mf_annnn_TAG20040806T170424_0k7ht5w_.bkp
02.06.2010
Fehleranalyse
• Benutzerfehler
• Anweisungsfehler
• Prozessfehler
• Netzwerkfehler
• Instancefehler
• Medienfehler
128Oracle 11g Datenbank Administration02.06.2010
Benutzerfehler
• Reaktion je nach Fehlertyp
• evtl. Wiederherstellung des alten Datenbestands
– Import eines zuvor durchgeführten Datenexports
– Unvollständige Wiederherstellung
• Aufwändig, da Oracle/RMAN kein Object-Level Recovery bietet
– Flashback-Techniken, z.B. Flashback Query
• Überprüfung der Sicherheits-Mechanismen
129Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201044
Anweisungsfehler
• Statement-Level-Rollback (automatisch)
• Analyse der Fehlerursache
130Oracle 11g Datenbank Administration02.06.2010
Prozessfehler
• Oracle-Server-Prozess (dedicated oder multi-threaded) stürzt
ab
• PMON-Prozess führt automatisch ein Rollback durch und gibt
Ressourcen / Sperren wieder frei
131Oracle 11g Datenbank Administration02.06.2010
Netzwerkfehler
• Falls nur ein Serverprozess beteiligt: PMON-Prozess führt
automatisch Recovery durch (wie Prozessfehler)
• Spezialfall: PC "ausschalten“: Erkennung durch Dead
Connection Detection
• Verteilte Transaktionen mit Two-Phase-Commit:
automatisches Recovery durch RECO-Prozess
132Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201045
Instancefehler
• Verursacht durch Hardware-, Software-, oder Bedienfehler
• Automatisches Instance Recovery beim nächsten Neustart
• Eventuell vorher SHUTDOWN ABORT notwendig
• Analyse der Fehlerursache
– Insbesondere Alert-Log und Trace-Dateien
133Oracle 11g Datenbank Administration02.06.2010
Medienfehler
• Physikalischer Defekt einer Platte
• Recovery-Aktion des DB-Administrators notwendig
• Palette der Möglichkeiten abhängig von der DB-Vorbereitung
– Archivelog- vs Noarchivelog-Modus
– Flashback Logging aktiv
– Vorhandene Backups / Backup-Strategie
– Standby-Datenbanken
134Oracle 11g Datenbank Administration02.06.2010
Medienfehler
• ARCHIVELOG-Modus
– Online Redologs und archivierte Redologs verfügbar
– Media Recovery möglich
• NOARCHIVELOG-Modus
– nur Online Redologs verfügbar
– Kein Media Recovery möglich, nur Instance Recovery
135Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201046
Medienfehler
• Vollständiges Recovery (alle Transaktionen werden
wiederhergestellt) NUR DANN möglich, wenn
– Kontrolldatei aktuellen Zustand hat (KEIN Restore!),
– notwendige Backups der Datendateien vorliegen und
– lückenlose Folge von archivierten/Online Redologs bis zum aktuellen
Zeitpunkt vorhanden.
• Ansonsten unvollständiges Recovery!
136Oracle 11g Datenbank Administration02.06.2010
Recovery im NOARCHIVELOG-Mode
• Alle Dateien der Datenbank wiederherstellen:
– Datafiles
– Controlfiles
– Redo Log-Files
– Password-File (optional)
– spfile<SID>.ora bzw. init<sid>.ora (optional)
• Vorteile:
– Leicht zu handhaben, je nach Datenmenge relativ geringe Zeit zur
Wiederaufnahme des Betriebs
• Nachteile:
– Alle Daten, die seit dem letzten Backup erfasst wurden, gehen verloren
137Oracle 11g Datenbank Administration02.06.2010
Recovery im ARCHIVELOG-Mode
• Nur beschädigte Dateien wiederherstellen
• Vorteile:
– Nur beschädigte Dateien müssen wiederhergestellt werden
– Alle Daten bleiben erhalten
• Nachteile:
– Archivierte Redolog-Dateien müssen seit dem letzten Backup bis zum
Ausfallzeitpunkt vorhanden sein
138Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201047
Recovery-Szenarien
• Closed-Database-Recovery:
– Wiederherzustellende Dateien gehören
• zum System-Tablespace oder
• zu Tablespaces mit Undo-Segmenten
(normalerweise nur der Undo-Tablespace)
– Die gesamte Datenbank ist im MOUNT-Status
für Anwender nicht verfügbar
– Die gesamte Datenbank bzw. der größte Teil der Dateien muss
wiederhergestellt werden
• Opened-Database-Recovery:
– Wiederherzustellenden Dateien gehören zu anderen Tablespaces
– Die Datenbank kann geöffnet bleiben. Die betroffenen Datendateien sind
offline
Auf den restlichen Daten kann weitergearbeitet werden
139Oracle 11g Datenbank Administration02.06.2010
Recovery-Informationen
• V$RECOVER_FILE enthält alle Datenfiles, die
wiederhergestellt werden
müssen
• V$DATAFILE enthält alle Datenfiles. Spalte
STATUS gibt an, ob das
Datafile Recovery benötigt
• V$RECOVERY_LOG enthält alle archivierte
Redologs, die zum Recovery
benötigt werden
• V$LOG_HISTORY enthält alle archivierten
Redologs der Datenbank
140Oracle 11g Datenbank Administration02.06.2010
RMAN Recovery Beispiel
• Verlust eines Tablespaces
• Verlust eines Datafiles
141Oracle 11g Datenbank Administration
rman target=SYSTEM/MANAGER@SUN10G
RMAN> SQL 'ALTER TABLESPACE users OFFLINE IMMEDIATE';
RMAN> RESTORE TABLESPACE users;
RMAN> RECOVER TABLESPACE users;
RMAN> SQL 'ALTER TABLESPACE users ONLINE';
SQL> ALTER DATABASE DATAFILE '/oradata/JA10G/users01.dbf'
OFFLINE IMMEDIATE;
rman target=SYSTEM/MANAGER@SUN10G
RMAN> RESTORE DATAFILE '/oradata/JA10G/users01.dbf';
RMAN> RECOVER TABLESPACE '/oradata/JA10G/users01.dbf';
SQL> ALTER DATABASE DATAFILE '/oradata/JA10G/users01.dbf'
ONLINE;
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201048
RMAN Recovery Beispiel
• Verlust der ganzen Datenbank
142Oracle 11g Datenbank Administration
sqlplus system/manager@SUNDB as sysdba
SQL> STARTUP NOMOUNT;
SQL> EXIT;
rman
RMAN> SET DBID=2749674549
RMAN> CONNECT TARGET SYSTEM/MANAGER@SUNDB
RMAN> SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE
DISK TO '/oradata2/backup/%F.ctl';
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
RMAN> ALTER DATABASE MOUNT;
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN RESETLOGS;
02.06.2010
RMAN Überprüfung
• Untersuchung einer Datenbank und der archivierten Redolog-
Dateien auf Fehler
• Validierung eines Backups
143Oracle 11g Datenbank Administration
RMAN> BACKUP VALIDATE DATABASE ARCHIVELOG ALL;
RMAN> RESTORE DATABASE VALIDATE;
RMAN> RESTORE TABLESPACE <TS-NAME> VALIDATE;
RMAN> RESTORE ARCHIVELOG ALL VALIDATE;
RMAN> RESTORE CONTROLFILE VALIDATE;
RMAN> VALIDATE BACKUPSET <Backupsetnummer>;
02.06.2010
Media Recovery
• Verlust von Online Redologs
• Falls nur Log-Member (Spiegel) verloren: Spiegel wieder
aufsetzen
• Schlimmster Fall: Verlust einer kompletten Log-Gruppe
– SHUTDOWN ABORT
– Restore der kompletten DB
– Unvollständiges Recovery!
144Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201049
Media Recovery
• Verlust von archivierten Redologs
• Kein unmittelbares Problem
• Aber: Recovery-Lücke bei zusätzlicher Beschädigung einer
Datendatei!
– Backup so schnell wie möglich!
• Bei zusätzlicher Beschädigung einer Datendatei
– Evtl. nur unvollständiges Recovery möglich!
145Oracle 11g Datenbank Administration02.06.2010
Media Recovery
• Verlust der Kontrolldateien
– Controlfile-Backup einspielen oder
– mit CREATE CONTROLFILE neu erzeugen
• Umständlich: alle Daten- und Redolog-Dateien angeben!
• Einfacher: CREATE CONTROLFILE -Kommando präventiv erzeugen durch:
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
146Oracle 11g Datenbank Administration02.06.2010
RMAN Recovery Beispiel
• Verlust der Kontrolldateien
147Oracle 11g Datenbank Administration
sqlplus / as sysdba
SQL> STARTUP NOMOUNT;
rman target /
RMAN> SET DBID=2749674549
RMAN> SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE
DISK TO '/oradata2/backup/%F.ctl';
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
RMAN> ALTER DATABASE MOUNT;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN RESETLOGS;
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201050
Datenbank zurücksetzen
• Gründe
– Der Versuch, ein vollständiges Recovery durchzuführen schlug fehl, da
eine oder mehrere archivierte Redologs fehlen
– Alle Controlfiles sind unbrauchbar
– Alle Online Redologs und ein Datafile sind unbrauchbar
– Benutzerfehler
• eine wichtige Tabelle wurde gelöscht
• wichtige Tabelleninhalte wurden gelöscht
• es wurden fehlerhafte Daten in eine Tabelle eingetragen
• Techniken
– Zurücksetzen über Restore / Recovery
• Restore eines älteren Backups
• Unvollständiges Recovery bis Zeitpunkt oder SCN
– Zurücksetzen über Flashback Database
148Oracle 11g Datenbank Administration02.06.2010
Unvollständiges Recovery - Modi
• Bis zu einer Redolog-Nummer
• Bis zu einem Zeitpunkt
149Oracle 11g Datenbank Administration
RMAN> RECOVER DATABASE UNTIL SEQUENCE 987;
RMAN> RECOVER DATABASE UNTIL TIME
'2000-02-25 23:00:00';
02.06.2010
Flashback Database
• Voraussetzungen
– Flash-Recovery-Area ist gesetzt
– Flashback Retention Target (in Minuten) ist gesetzt
– Flashback-Logging ist eingeschaltet
150Oracle 11g Datenbank Administration
SQL> ALTER SYSTEM SET db_file_recovery_dest = '/oraflash‚;
SQL> ALTER SYSTEM SET db_file_recovery_dest_size = 10G;
SQL> ALTER SYSTEM SET db_flashback_retention_target = 1440;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER DATABASE OPEN;
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201051
Zurücksetzen der Datenbank
• Herunterfahren der Datenbank und Zurücksetzen der
Datenbank auf eine bestimmte Uhrzeit
• Überprüfung, ob der Stand der Datenbank richtig ist
• Bei erfolgreichem Recovery Datenbank öffnen
151Oracle 11g Datenbank Administration
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> FLASHBACK DATABASE TO TIMESTAMP
TO_DATE('11.08.2007 13:54:16','DD.MM.YYYY HH24:MI:SS');
SQL> ALTER DATABASE OPEN READ ONLY;
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP;
02.06.2010
Recovery-Tipps
• Verringerung der Downtime durch:
– Parallelisieren des Recovery
• Parallelisierung des Recovery kann durch den Serverparameter
RECOVERY_PARALLELISM bestimmt werden
• Parameterwert gibt den Grad der Parallelisierung an
• Optimal: ein bis zwei Prozesse pro Festplatte, die Datafiles enthält
– Hochfahren der Datenbank und Begrenzung des Recovery auf fehlerhafte
Tablespaces
– Neuanlegen nicht erforderlicher bzw. rekonstruierbarer Tablespaces,
anstatt diese zu recovern
152Oracle 11g Datenbank Administration02.06.2010
Tools zur Fehlererkennung
• Alert-Datei (alert<SID>.log) im Background-Dump-Dest
– Informationen und Fehler, die im laufenden Betrieb erzeugt werden
– den aktuellen Status des Systems
– neueste Informationen immer am Ende der Datei
– Datum und Uhrzeit von wichtigen Systemabläufen
• DBVERIFY:
– Programm, um Datafiles auf korrupte Blöcke zu überprüfen
• ANALYZE VALIDATE STUCTURE:
– SQL-Anweisung, um die Integrität einer Tabelle oder eines Index zu
überprüfen
• DBMS_REPAIR:
– PL/SQL-Package, zur Erkennung und Markierung von korrupten Blöcken
153Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201052
Recovery Manager Repositories
• Speicherung des Recovery Katalogs in einer getrennten
Datenbank
• Zusätzliche Sicherungskonzepte für diese Repository
Datenbank
• Erlernen einer Skriptsprache für die Benutzung der
Kommandozeilen-Version der Backup Managers
154Oracle 11g Datenbank Administration02.06.2010
Repository
• Einrichten eines Repository Users
• Anmelden an Repository und Datenbank(Anmeldung erfolgt automatisch als SYSDB)
155Oracle 11g Datenbank Administration
SQL> CREATE USER rmc IDENTIFIED BY rmc
DEFAULT TABLESPACE SYSAUX;
SQL> ALTER USER rmc QUOTA UNLIMITED ON SYSAUX;
SQL> GRANT RECOVERY_CATALOG_OWNER TO rmc;
rman CATALOG rmc/rmc@JA10G
RMAN> CREATE CATALOG;
rman CATALOG rmc/rmc@JA10G TARGET system/manager@SUN10G
RMAN> REGISTER DATABASE;
RMAN> RESYNC CATALOG;
02.06.2010
Data Guard / Standby Datenbank
• Aufbau einer Schattendatenbank auf gleicher Hardware
(gleiches Betriebssystem)
– räumlich getrennt
• Permanentes Recovery der archivierten Redolog Dateien
– Replikation der Redolog-Dateien an Standby-Datenbank durch LGWR
– Kann gleichzeitig für lesenden Zugriff geöffnet sein (Read-Only)
– Recovery-Lücken, z.B. durch Netzwerkprobleme, werden automatisch
erkannt und die Archivelogs nachgefordert
• FAL (Fetch Archivelog)
• Unterschiedliche Modi
– Maximum availability / protection / performance
• Bei Ausfall der Primär-DB automatischer Rollentausch
Primär/Standby möglich
– Data Guard Broker
156Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201053
Flashback Queries
• Einsehen / “Wiederherstellen” eines alten Datenbestands
– Z.B. nach Benutzer-/Job-/Anwendungsfehlern
• Granularität ca. 3 Sekunden
• Maximale Rückblickzeit: 5 Tage, hängt aber vorrangig vom
Serverparameter undo_retention ab
• Voraussetzungen:
– Automatic Undo-Management (heute immer der Fall ab Oracle9i)
– In der Zwischenzeit keine DDL-Changes auf dem Objekt
• Z.B. TRUNCATE TABLE
• Syntax:– SELECT ...
FROM ...
AS OF [SCN | TIMESTAMP] ...
157Oracle 11g Datenbank Administration02.06.2010
Flashback Queries - Beispiele
SQL> SELECT *
FROM city
AS OF SCN 380921;
SQL> SELECT *
FROM city
AS OF TIMESTAMP
TO_DATE('17.09.2009 16:33:26',
'DD.MM.YYYY HH24:MI:SS');
SQL> CREATE TABLE cities_before_error
AS
SELECT *
FROM city
AS OF TIMESTAMP
TO_DATE('17.09.2009 16:33:26',
'DD.MM.YYYY HH24:MI:SS');
158Oracle 11g Datenbank Administration02.06.2010
Flashback Transaction Queries
• Information über DMLs auf einer Tabelle
SQL> desc flashback_transaction_query
Name Typ
-------------------------- --------------
XID RAW(8)
START_SCN NUMBER
START_TIMESTAMP DATE
COMMIT_SCN NUMBER
COMMIT_TIMESTAMP DATE
LOGON_USER VARCHAR2(30)
UNDO_CHANGE# NUMBER
OPERATION VARCHAR2(32)
TABLE_NAME VARCHAR2(256)
TABLE_OWNER VARCHAR2(32)
ROW_ID VARCHAR2(19)
UNDO_SQL VARCHAR2(4000)
159Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201054
Flashback Transaction Queries - Beispiel
SQL> UPDATE city SET zipcode = 50000;
SQL> COMMIT;
SQL> SELECT start_scn, start_timestamp, undo_sql
FROM flashback_transaction_query
WHERE table_name = 'CITY'
AND start_timestamp > SYSDATE - 30/24/60;
START_SCN START_TIMESTAMP
---------- -------------------
UNDO_SQL
--------------------------------------------------------------------------------
380921 17.09.2004 16:33:26
update "DEMO"."CITY" set "ZIPCODE" = '80543' where ROWID = 'AAAC/oAAEAAAAnsAAe';
380921 17.09.2004 16:33:26
update "DEMO"."CITY" set "ZIPCODE" = '80001' where ROWID = 'AAAC/oAAEAAAAnsAAd';
380921 17.09.2004 16:33:26
update "DEMO"."CITY" set "ZIPCODE" = '70087' where ROWID = 'AAAC/oAAEAAAAnsAAc';
160Oracle 11g Datenbank Administration02.06.2010
Flashback Table
• Zwei unabhängige Varianten:
• Zurücksetzen einer Tabelle auf einen Zeitpunkt– FLASHBACK TABLE <tablename> TO [ SCN | TIMESTAMP ]
– Nutzt Undo-Informationen, um Tabelle auf einen bestimmten
Zeitpunkt zurückzusetzen
– Entspricht Anwendung einer kompensierenden Transaktion gemäß
Ausgabe der Flashback Transaction Query
• Wiederherstellung einer gelöschten Tabelle– FLASHBACK TABLE <tablename> TO BEFORE DROP
– Nutzt Papierkorbfunktion
• Beim Löschen wird die Tabelle in Wahrheit nur umbenannt
161Oracle 11g Datenbank Administration02.06.2010
Flashback Table - Beispiele
SQL> FLASHBACK TABLE city
TO SCN 380921;
SQL> FLASHBACK TABLE city
TO TIMESTAMP
TO_DATE('17.05.2004 16:33:26',
'DD.MM.YYYY HH24:MI:SS');
• Voraussetzung:
Row-Movement aktiviertSQL> ALTER TABLE orte ENABLE ROW MOVEMENT;
162Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201055
Wiederherstellung gelöschter Tabellen
• Recyclebin = Papierkorb
• DROP TABLE <tablename>
– Tabelle wird nach BIN$<ID>$<VERSION> umbenannt
• Entsprechende Umbenenungen für Indizes, Constraints, Trigger
– Objekte verbleiben in ihrem Tablespace
– Manche Views zeigen diese Objekte weiterhin an
• SELECT * FROM TAB
• Aber nicht: SELECT * FROM user_tables
• Alternativ: DROP TABLE <tablename> PURGE
– Löscht die Tabelle wirklich
• Papierkorbobjekte werden gepurged, wenn im TablespacePlatz für andere Objekte benötigt wird– Tablespace wird NICHT per Auto-Extend erweitert, um das Purging
gelöschter Objekte zu verhindern
163Oracle 11g Datenbank Administration02.06.2010
Recyclebin
• Funktioniert nur für direkte Löschung des Objekts– Nicht für implizite Löschung mittels DROP USER oder DROP TABLESPACE
• Spezielle View: – SELECT * FROM dba_recyclebin
• Fehlermeldung des FLASHBACK TABLE, wenn Objekt nicht
mehr im Papierkorb liegt:ERROR at line 1:
ORA-38305: object not in RECYCLE BIN
164Oracle 11g Datenbank Administration02.06.2010
Oracle LogMiner
• Analyse der Redolog-Dateien (online und offline)
• Zurücksetzen von Transaktionen
• Alternativ zu Flashback Queries / Flashback Transaction
Queries, wenn Undo-Daten nicht mehr vorhanden sind
165Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201056
Oracle LogMiner
• DBMS_LOGMNR_D.BUILD(
DICTIONARY_FILENAME =>'dictionary.ora',
DICTIONARY_LOCATION =>'D:/oracle/admin/JA10G/udump');
• DBMS_LOGMNR.ADD_LOGFILE(
LOGFILENAME => 'E:/oracle/oradata/JA10G/redo01.log',
OPTIONS => sys.dbms_logmnr.NEW);
• DBMS_LOGMNR.ADD_LOGFILE(
LOGFILENAME => 'E:/oracle/oradata/JA10G/redo02.log',
OPTIONS => sys.dbms_logmnr.ADDFILE);
• DBMS_LOGMNR.ADD_LOGFILE(
LOGFILENAME => 'E:/oracle/oradata/JA10G/redo03.log',
OPTIONS => sys.dbms_logmnr.ADDFILE);
• DBMS_LOGMNR.START_LOGMNR(
DICTFILENAME
=>'D:/oracle/admin/JA10G/udump/dictionary.ora');
166Oracle 11g Datenbank Administration02.06.2010
Oracle LogMiner
SQL> SELECT sql_undo
FROM v$logmnr_contents
WHERE username = 'DEMO';
SQL_UNDO
--------------------------------------------
update "DEMO"."ORTE" set "PLZ" = 10000 where
ROWID = 'AAABt2AAIAAABgYAAA';
update "DEMO"."ORTE" set "PLZ" = 20000 where
ROWID = 'AAABt2AAIAAABgYAAB';
167Oracle 11g Datenbank Administration02.06.2010
Copyright © 2006 Quest Software© 2010 Quest Software, Inc. ALL RIGHTS RESERVED
Kapitel 5
Oracle Utilities
SIG Database
Oracle 11g Datenbank Administration 02.06.201057
Scheduler
• Exakte Ausführung von Programmen aus der Oracle DB
• Unterschiedliche Funktionen:
– Scheduler Chains
– Scheduler Jobs
– Scheduler Job Classes
– Scheduler Windows
– Scheduler Window Groups
– Scheduler Schedules
– Scheduler Programs
• PL/SQL Programme und Betriebssytem Kommandos
169Oracle 11g Datenbank Administration02.06.2010
Scheduler
• Beispiel
– “ls –l /tmp“ alle 30 Minuten
• Best Practice:
– Programm über “scheduler program“ definieren
– Ausführungszeitpunkt über “scheduler job“
170Oracle 11g Datenbank Administration
SYS.DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'DEMO.testjob',
repeat_interval => 'FREQ=HOURLY; BYMINUTE=0,30',
job_type => 'EXECUTABLE',
job_action => 'ls -l /tmp'
);
02.06.2010
Export/Import
• Utilities zur logischen Datensicherung
• Migration zwischen Releases und Betriebssystemen
• Granularität:
– ganze DB
– Schema
– Tabelle
– Transportable Tablespace
• Modus: Interaktiv, Kommandozeile, Parameterdatei
• Export wird nicht mehr weiterentwickelt!
171Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201058
Export/Import
• Inkrementeller Export sichert nur veränderte Objekte (Tabellen,
Cluster)
• Ergänzung zum physikalischen Backup, keine Alternative!
• Views werden mit catexp.sql erstellt
• Rollen: EXP_FULL_DATABASE, IMP_FULL_DATABASE zur
Behandlung fremder Objekte
172Oracle 11g Datenbank Administration02.06.2010
Data Pump
• expdp / impdp
• Ersetzt exp / imp
– Inkompatibel!
• Granularität
– Datenbank
– Tablespace
– Schema
– Tabelle
– Transportable Tablespaces
• Teilmengen möglich (WHERE Klausel)
• Restore einzelner Objekte
173Oracle 11g Datenbank Administration02.06.2010
Data Pump
• Serverseitige Ausführung
– Dumpfiles
– Logfiles
• Keine Übertragung von Daten zwischen Datenbank und Client
• Direkter Datapump Import über Datenbank Link aus Quelle
möglich
• Parallele Ausführung möglich (Nur Enterprise Edition)
• Erstellt einen Datenbank-Job
• Kann angehalten – geändert – neu gestartet werden
• Metadata in XML Format gespeichert
174Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201059
Data Pump Beispiel
175Oracle 11g Datenbank Administration
expdp system/manager@JA11G
directory=mypumpdir
dumpfile=demo.dmp
logfile=exp_demo.log
schemas=DEMO
job_name=myexpjob
impdp system/manager@JA11G
remap_schema=DEMO:DEMONEU
directory=mypumpdir
dumpfile=demo.dmp
logfile=imp_demo.log
tables=(KUNDE,AUFTRAG)
job_name=myimpjob
Export
Schema
DEMO
Import Tabelle
KUNDE, AUFTRAG
in Schema DEMONEU
02.06.2010
Data Pump Architektur
176Oracle 11g Datenbank Administration
Dumpfile
Dumpfile
Dumpfile
DM01Master-Tables
DataPump API
(DBMS_DATAPUMP)
Metadata API
(DBMS_METADATA)
DB-Objekte:
- Tables
- Views
- …
Logfile
Worker-Pool
...expdp oder impdp
Client
Server
DW03
DW02
DW01
02.06.2010
SQL*Loader
177Oracle 11g Datenbank Administration
Sequentielle DateiLoader-Kontrolldatei
load data
infile abc.dat
into table a
(feld1 position (1:4) integer external,
feld2 position (6:11),
feld3 position (13:15) character)
SQL*Loader
Logdatei
Statistiken des Ladevorgangs
Baddatei
fehlerhafte Datensätze
Discarddatei
Benutzer-Kriterien nicht erfüllt
1234 abcdef 333
3456 jklmno 444
Feld1 Feld2 Feld3
1234
1234
abcdef
jklmno
333
444
02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201060
Konventioneller Pfad
• generiert Insert-Statements
• benutzt Array-Interface
• Client/Server geeignet
• benutzt SGA
• Insert/Append/Replace Modus
• Unterstützung von Constraints und Triggern
178Oracle 11g Datenbank Administration02.06.2010
Konventioneller Pfad
• automatische Datentypkonvertierung
• nutzt NLS-Einstellungen
179Oracle 11g Datenbank Administration02.06.2010
Direkter Pfad
• formatiert leere Datenbank-Blöcke
• benutzt nicht die SGA
• allokiert Platz über Verschieben der High-Water-Mark
• keine Trigger unterstützt
• nur bestimmte Constraints unterstützt
180Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201061
Direkter Pfad
• Indizes für geladene Daten werden mit bestehenden Indizes
gemischt
• SORTED INDEXES-Option
• Parallel Load mit Parallel Query Option
• Zusätzliche Option „unrecoverable“
– Keine Redolog Informationen
181Oracle 11g Datenbank Administration02.06.2010
Enterprise Manager
• Database Control
– Gehört zur Datenbank Installation dazu
– Administration und Überwachung einer Datenbank
– Erweiterbar über Management Packs
– Installation über Database Configuration Assistant
• Grid Control
– Administrations und Überwachungs-Infrastruktur
– Oracle Management Server als zentrales Repository
– Agenten für unterschiedliche Anforderungen (z.B. Datenbank)
– End-To-End Monitoring
– Erst seit April 2010 in der Version 11g verfügbar
18202.06.2010 Oracle 11g Datenbank Administration
Enterprise Manager im DBCA
183Oracle 11g Datenbank Administration02.06.2010
SIG Database
Oracle 11g Datenbank Administration 02.06.201062
Architektur
• Database Control Grid Control
18402.06.2010 Oracle 11g Datenbank Administration
Datenbank
DB Control
Datenbank
Server
Agent
Middleware
Agent
Datenbank
Agent
OMS
Database Control
18502.06.2010 Oracle 11g Datenbank Administration
Default Port: 1158
Grid Control Ports
18602.06.2010 Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.201063
Grid Control
18702.06.2010 Oracle 11g Datenbank Administration
SQL Developer
• Kostenloses Werkzeug für Datenbank Entwicklung
– Webbasiert
– Keine Installation erforderlich (z.B. Memory Stick)
• Browser Funktion für Oracle und Access Datenbanken
• Integration weitere Oracle Packages
(z.B. Change Management Pack)
18802.06.2010 Oracle 11g Datenbank Administration
SQL Developer
18902.06.2010 Oracle 11g Datenbank Administration
SIG Database
Oracle 11g Datenbank Administration 02.06.201064
Toad for Oracle (Quest Software)
• Werkzeug für Entwicklung und Administration
– Windows basiert
• Browser Funktionalität
• Health Checks
• Integration weiterer Werkzeuge
19002.06.2010 Oracle 11g Datenbank Administration
Toad for Oracle
19102.06.2010 Oracle 11g Datenbank Administration
Copyright © 2006 Quest Software© 2010 Quest Software, Inc. ALL RIGHTS RESERVED
Fragen?