Oracle Database
Dynamische Performance-Tabellen
- V$CONTROLFILE
- V$DATAFILE
- V$PARAMETER
- V$SGA
- V$TABLESPACE
Kontrolldatei
- Kleine binäre Datei
- Definiert den aktuellen Status der aktuellen Datenbank
- Erforderlich im Status "MOUNT" beim Hochfahren der Datenbank
- Ein Verlust kann "Recovery" notwendig machen
- Ist mit einer ganz bestimmten Datenbank verknüpft
- Die Kontrolldatei sollte redundant gesichert werden über "Administration > Datenbankverwaltung > Speicherung > Kontrolldateien" gesichert werden.
Inhalt
- Datenbankname
- Zeitstempel der Datenbankerstellung
- Namen und Speicherorte von Datendateien und Redo Log-Dateien
- Aktuelle Sequenznummer der Redo Log-Datei
- Checkpoint-Informationen
- Backup-Informationen (z. B. des Recovery Manager)
Spiegeln der Kontrolldatei bei Verwendung von SPFILE
- Änderung von SPFILE (unter Angabe der bestehenden sowie der neuen Kontrolldatei)
ALTER SYSTEM SET control_files=... SCOPE = SPFILE;
- Herunterfahren der Datenbank
shutdown immediate
- Erstellung zusätzlicher Kontrolldateien durch Kopieren der Kontrolldatei
- Hochfahren der Datenbank
startup;
Spiegeln der Kontrolldatei bei Verwendung von PFILE
- Herunterfahren der Datenbank
shutdown immediate
- Erstellung zusätzlicher Kontrolldateien durch Kopieren der Kontrolldatei
- Hinzufügen der Kontrolldateinamen zu PFILE durch Bearbeiten des Parameters "CONTROL_FILES"
CONTROL_FILES=...;
- Hochfahren der Datenbank
startup pfile='c:\oracle\init.ora';
Abrufen der Kontrolldatei-Informationen
- grafische Oberfläche unter "Administration > Datenbankverwaltung > Speicherung > Kontrolldateien"
- Auflisten von Namen und Status für alle Kontrolldateien der Instanz auf
select * from v$controlfile;
- Auflisten von Namen, Status und Speicherort der Kontrolldateien
show parameter control_files;
Verwendung von Redo Log-Dateien
Redo Log-Dateien
- erfassen alle an den Daten vorgenommenen Änderungen
- stellen einen Recovery-Modus bereit
- können in Gruppen organisiert werden, wobei mindestens zwei Gruppen benötigt werden, unter "Administration > Datenbankverwaltung > Speicherung > Redo Log-Gruppen"
Funktionsweise
- Redo Log-Dateien werden in zyklischer Weise verwendet
- Ist eine Redo Log-Datei voll, so wechselt LGWR zur nächsten Redo Log-Gruppe
- Dies wird als Log-Switch bezeichnet
- Checkpoint-Vorgang tritt ebenfalls ein
- Informationen werden in die Kontrolldatei geschrieben
Mögliche Statusangaben
- Current: In diese wird gerade hineingeschrieben
- Active: enthalten Logeinträge, die noch im DB-Buffer enthalten sind (würde also für ein Instance Recovery benötigt)
- Inactive:
Log-Switch erzwingen
ALTER SYSTEM SWITCH LOGFILE;
Checkpoint erzwingen (z. B. in SQL-Skripten; auf der Konsole macht es wenig Sinn)
ALTER SYSTEM CHECKPOINT;
Hinzufügen von Redo Log-Gruppen mit dem Befehl "ALTER DATABASE" unter Angabe der "Members". Die Redo Log-Dateien sollten nicht allzu klein sein. Beispiel:
ALTER DATABASE ADD LOGFILE GROUP 3 ('c:\verzeichnis\u01\log3a.rdo', 'd:\ORADATA\u01\log3b.rdo) SIZE 50M;
Abruf von Informationen über Gruppen und Member über folgende Views:
- V$LOG
- V$LOGFILE
Archivierte Redo Log-Dateien
- Gefüllte Online Redo Log-Dateien können archiviert werden
- Datenbank muss sich im Modus "ARCHIVELOG" befinden
- Zweck: Wiederherstellung der Datenbank bei Ausfall einer Festplatte
- Archivierung erfolgt automatisch durch ARCn
- Bei erfolgreicher Archivierung:
- wird ein Eintrag in die Kontrolldatei geschrieben
- werden der Name der archivierten Log-Datei, die Log-Sequenznummer sowie die erste und letzte SCN erfasst
Tablespace und Datendateien
Oracle speichert Daten logisch in Tablespaces und physisch in Datendateien.
Tablespaces
- gehören immer nur zu einer Datenbank
- bestehen aus einer oder mehreren Datendateien
- werden weiter unterteilt in logische Einheiten
Datendateien
- gehören immer nur zu einem Tablespace
- sind ein Repositoiry für Schemaobjektdaten
...Bild logische und physische Sicht...
Arten von Tablespaces:
SYSTEM-Tablespace (Löschen ist nicht möglich)
- wird mit einer Datenbank erstellt
- enthält das Data Dictionary
- enthält das SYSTEM-Undo-Segment
Non-System-Tablespace
- ermöglicht die Speicherung verschiedener Segmente
- erleichtert die Speicherverwaltung
- steuert die einem Benutzer zugeordnete Speichermenge (Quota)
Befehl "CREATE TABLESPACE"
CREATE TABLESPACE tablespace [DATAFILE clause] [MINIMUM EXTEND integer[K|M]] [BLOCKSIZE integer [K]] [LOGGING|NOLOGGING] [DEFAULT storage_clause] [ONLINE|OFFLINE] [PERMANENT|TEMPORARY] [extent_management_clause] [segment_managment_clause]
Erstellen eines Tablespace mit dem Befehl "CREATE TABLESPACE". Beispiel:
CREATE TABLESPACE userdata DATAFILE 'c:\u01\oradata\data01.dbf' SIZE 100M AUTOEXTEND ON NEXT 5M MAXSIZE 200M;
Einem Tablespace können weitere Datendateien hinzugefügt werden. Beispiel:
ALTER TABLESPACE tb1 ADD DATAFILE 'c:\oraddata\data02.dbf' SIE 200M;
Speicherverwaltung in Tablespaces: Vorlage:ca