Oracle Database: Unterschied zwischen den Versionen

Aus Mikiwiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Notizen vom Kurs "Oracle Administration" 21.-25. Juni 2010
Oracle Universal Installer
Oracle Universal Installer
* wird zum Installieren, Aktualisieren oder Deinstallieren von Softwarekomponenten und zum Erstellen einer Datenbank verwendet
* wird zum Installieren, Aktualisieren oder Deinstallieren von Softwarekomponenten und zum Erstellen einer Datenbank verwendet
Zeile 23: Zeile 25:
* vordefinierter Benutzer "SYS" (Passwort "miro", anmelden als "SYSDBA") bzw. benutzer "SYSTEM" (Passwort "miro")
* vordefinierter Benutzer "SYS" (Passwort "miro", anmelden als "SYSDBA") bzw. benutzer "SYSTEM" (Passwort "miro")
* dient als zentralisierte Systemverwaltung für Systemverwalter
* dient als zentralisierte Systemverwaltung für Systemverwalter
* Werkzeug für Verwaltung, Diagnose und Optimierung mehrerer Datenbanken
* Werkzeug zum Verwalten mehrerer Netzwerkknoten und -dienste von verschiedenen Standorten aus


Oracle Server
* ein Datenbank-Management-Syste, das einen offenen, umfassenden und integrierten Ansatz für die Informationsverwaltung bereitstellt
* besteht aus einer Oracle-Instanz und einer Oracle-Datenbank


Oracle-Instanz
...


Dynamische Performance-Tabellen
Dynamische Performance-Tabellen
Zeile 95: Zeile 109:


Log-Switch erzwingen
Log-Switch erzwingen
  ALTER SYSTEM SWITCH LOGFILE;
  ALTER SYSTEM SWITCH LOGFILE;


Checkpoint erzwingen (z. B. in SQL-Skripten; auf der Konsole macht es wenig Sinn)
Checkpoint erzwingen (z. B. in SQL-Skripten; auf der Konsole macht es wenig Sinn)
  ALTER SYSTEM CHECKPOINT;
  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:
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;
 
  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:
Abruf von Informationen über Gruppen und Member über folgende Views:
Zeile 142: Zeile 160:
* erleichtert die Speicherverwaltung
* erleichtert die Speicherverwaltung
* steuert die einem Benutzer zugeordnete Speichermenge (Quota)
* steuert die einem Benutzer zugeordnete Speichermenge (Quota)
Erstellen über Administration > Datenbankverwaltung: Speicherung > Tablespaces > Erstellen"


Befehl "CREATE TABLESPACE"
Befehl "CREATE TABLESPACE"
  CREATE TABLESPACE tablespace
  CREATE TABLESPACE tablespace
   [DATAFILE clause]
   [DATAFILE clause]
Zeile 155: Zeile 176:
   [segment_managment_clause]
   [segment_managment_clause]
    
    
Erstellen eines Tablespace mit dem Befehl "CREATE TABLESPACE". Beispiel:
Erstellen eines Tablespace mit dem Befehl "CREATE TABLESPACE", wobei der Pfad zur angegebenen Datendatei bereits vorhanden sein muss. Üblicherweise liegen die Dateien unter "c:\oracle\product\10.2.0\oradata\<Rechnername>". Beispiel:


  CREATE TABLESPACE userdata
  CREATE TABLESPACE userdata
Zeile 163: Zeile 184:
Einem Tablespace können weitere Datendateien hinzugefügt werden. Beispiel:
Einem Tablespace können weitere Datendateien hinzugefügt werden. Beispiel:


  ALTER TABLESPACE tb1 ADD DATAFILE 'c:\oraddata\data02.dbf' SIE 200M;
  ALTER TABLESPACE tb1
  ADD DATAFILE 'c:\u01\oradata\data02.dbf' SIZE 200M;
 
Löschen eines Tablespace, dabei wird die zugehörige Datendatei allerdings nicht gelöscht:
 
DROP TABLESPACE userdata;
 
Ansehen der vorhandenen Tablespaces unter "Administration > Datenbankverwaltung > Speicherung > Tablespaces". Ansicht der physischen Sicht unter "Datendateien".


Speicherverwaltung in Tablespaces:
Speicherverwaltung in Tablespaces:
Zeile 171: Zeile 199:
* Vom Dictionary verwalteter Tablespace
* Vom Dictionary verwalteter Tablespace
** freie Extents werden durch das Data Dictionary verwaltet
** freie Extents werden durch das Data Dictionary verwaltet
EXTENT MANAGEMENT-Klausel
[EXTENT MANAGEMENT [DICTIONARY|<u>LOCAL [<u>AUTOALLOCATE</u>UNIFORM [SIZE integer [K|M]]]]]
* AUTOALLOCATE: Tablespace wird vom System verwaltet, Benutzer kann Extent-Grösse nicht selber festlegen
* UNIFORM: Tablespace wird mit einheitlichen Extents der Grösse "SIZE" Byte verwaltet
Lokal verwaltete Tablespaces (neu)
* Verringerung der Konflikte beim Zugriff auf Data Dictionary-Dateien
* Keine Zusammenführung von freiem Speicherplatz erforderlich
* Beispiel:
CREATE TABLESPACE userdata
  DATAFILE 'd:\prog\oracle\oradata\ora01\data01.dbf' SIZE 100M
  EXTENT MANAGEMENT LOCAL
  UNIFORM SIZE 128K;
Vom Data Dictionary verwaltete Tablespaces (alt bis Oracle 8, sollte nicht verwendet werden!)
* Extents werden im Data Dictionary verwaltet
* Jedes Segment kann über eine unterschiedliche STORAGE-Klausel verfügen
* Beispiel:
CREATE TABLESPACE userdata
  DATAFILE 'd:\prog\oracle\oradata\ora01\data01.dbf' SIZE 100M
  EXTENT MANAGEMENT DICTIONARY
  DEFAULT STORAGE
  (initial 1M NEXT 1M PCTINCREASE 0);
Undo-Tablespace
* dient zur Speicherung von Undo-Segmenten, die gerade bearbeitete Tabelleninhalte speichern
* kann keine anderen Objekte enthalten
* Extents werden lokal verwaltet
* Beispiel:
CREATE UNDO TABLESPACE userdata
  DATAFILE 'd:\prog\oracle\oradata\ora01\data01.dbf' SIZE 100M;
Temporäre Tablespaces
* werden für Sortiervorgänge verwendet (DISTINCT, ORDER BY, GROUP BY, UNION...)
* dürfen keine permanenten Objekte enthalten
* es wird empfohlen, Extents lokal zu verwalten
* Beispiel:
CREATE TEMPORARY TABLESPACE temp
  DATAFILE 'd:\prog\oracle\oradata\ora01\data01.dbf' SIZE 100M
  EXTENT MANAGEMENT LOCAL
  UNIFORM SIZE 4M;
Temporärer Tablespace als Default
* gibt für die gesamte Datenbank gültigen temporären Tablespace als Default an
* verhindert, dass der SYSTEM-Tablespace zum Speichern temporärer Daten verwendet wird, was die Performance verringern würde
* kann nur gelöscht werden, wenn zuvor ein neuer Default-Tablespace verfügbar gemacht wurde
* kann nicht offline gesetzt werden
* kann nicht in einen permanenten Tablespace geändert werden
ALTER DATABASE
  DEFAULT TEMPORARY TABLESPACE temp;
Tablespaces können in den Modus "READ ONLY" gesetzt werden.
* Löst einen Checkpoint aus
* Daten sind nur für Lesevorgänge verfügbar
* Objekte können aus Tablespace gelöscht werden
* Beispiel:
ALTER TABLESPACE userdata READ ONLY;
Tablespace offline setzen
* nicht verfügbar für den Datenzugriff
* Folgende Tablespaces können nicht offline gesetzt werden:
** SYSTEM-Tablespace
** Tablespaces mit aktiven Undo-Segmenten
* Beispiel:
ALTER TABLESPACE userdata OFFLINE;
Tablespace online setzen:
ALTER TABLESPACE userdata ONLINE;





Version vom 22. Juni 2010, 09:31 Uhr

Notizen vom Kurs "Oracle Administration" 21.-25. Juni 2010

Oracle Universal Installer

  • wird zum Installieren, Aktualisieren oder Deinstallieren von Softwarekomponenten und zum Erstellen einer Datenbank verwendet
  • basiert auf einer Java-Engine

Oracle Database Configuration Assistant

  • Datenbank erstellen
  • Datenbankoptionen konfigurieren
  • Datenbanken löschen
  • Templates verwalten

SQL *Plus

  • Aufruf über
    • Administration > Zugehörige Links > iSQL*Plus (Anmelden als Benutzer "SYSTEM" mit Passwort "miro")
    • Start > Programme > Oracle > Anwendungsentwicklung > SQL Plus
    • über Befehlszeile: "sqlplus system/miro" (Benutzername/Passwort)
  • Oracle-Werkzeug, das folgendes ermöglicht:
    • Dialog und Manipulation von Datenbanken (z. B. "select sysdate from dual;", Skript laden, Skript speichern, Historie)
    • Hoch- und Herunterfahren von Datenbanken, Erstellung von Abfragen, Hinzufügen von Zeilen usw.
  • Ist eine Teilmenge der SQL-Standardsprache mit speziellen Ergänzungen

Oracle Enterprise Manager (Database Control)

  • http://<Rechnername>:1158/em
  • vordefinierter Benutzer "SYS" (Passwort "miro", anmelden als "SYSDBA") bzw. benutzer "SYSTEM" (Passwort "miro")
  • dient als zentralisierte Systemverwaltung für Systemverwalter
  • Werkzeug für Verwaltung, Diagnose und Optimierung mehrerer Datenbanken
  • Werkzeug zum Verwalten mehrerer Netzwerkknoten und -dienste von verschiedenen Standorten aus

Oracle Server

  • ein Datenbank-Management-Syste, das einen offenen, umfassenden und integrierten Ansatz für die Informationsverwaltung bereitstellt
  • besteht aus einer Oracle-Instanz und einer Oracle-Datenbank

Oracle-Instanz



...

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)

Erstellen über Administration > Datenbankverwaltung: Speicherung > Tablespaces > Erstellen"

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", wobei der Pfad zur angegebenen Datendatei bereits vorhanden sein muss. Üblicherweise liegen die Dateien unter "c:\oracle\product\10.2.0\oradata\<Rechnername>". 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:\u01\oradata\data02.dbf' SIZE 200M;

Löschen eines Tablespace, dabei wird die zugehörige Datendatei allerdings nicht gelöscht:

DROP TABLESPACE userdata;

Ansehen der vorhandenen Tablespaces unter "Administration > Datenbankverwaltung > Speicherung > Tablespaces". Ansicht der physischen Sicht unter "Datendateien".

Speicherverwaltung in Tablespaces:

  • Lokal verwalteter Tablespace
    • freie Extents werden in Tablespace verwaltet
    • Bitmap wird zur Erfassung freier Extents verwendet
  • Vom Dictionary verwalteter Tablespace
    • freie Extents werden durch das Data Dictionary verwaltet

EXTENT MANAGEMENT-Klausel

[EXTENT MANAGEMENT [DICTIONARY|LOCAL [AUTOALLOCATEUNIFORM [SIZE integer [K|M]]]]]
  • AUTOALLOCATE: Tablespace wird vom System verwaltet, Benutzer kann Extent-Grösse nicht selber festlegen
  • UNIFORM: Tablespace wird mit einheitlichen Extents der Grösse "SIZE" Byte verwaltet

Lokal verwaltete Tablespaces (neu)

  • Verringerung der Konflikte beim Zugriff auf Data Dictionary-Dateien
  • Keine Zusammenführung von freiem Speicherplatz erforderlich
  • Beispiel:
CREATE TABLESPACE userdata
  DATAFILE 'd:\prog\oracle\oradata\ora01\data01.dbf' SIZE 100M
  EXTENT MANAGEMENT LOCAL
  UNIFORM SIZE 128K;

Vom Data Dictionary verwaltete Tablespaces (alt bis Oracle 8, sollte nicht verwendet werden!)

  • Extents werden im Data Dictionary verwaltet
  • Jedes Segment kann über eine unterschiedliche STORAGE-Klausel verfügen
  • Beispiel:
CREATE TABLESPACE userdata
  DATAFILE 'd:\prog\oracle\oradata\ora01\data01.dbf' SIZE 100M
  EXTENT MANAGEMENT DICTIONARY
  DEFAULT STORAGE
  (initial 1M NEXT 1M PCTINCREASE 0);

Undo-Tablespace

  • dient zur Speicherung von Undo-Segmenten, die gerade bearbeitete Tabelleninhalte speichern
  • kann keine anderen Objekte enthalten
  • Extents werden lokal verwaltet
  • Beispiel:
CREATE UNDO TABLESPACE userdata
  DATAFILE 'd:\prog\oracle\oradata\ora01\data01.dbf' SIZE 100M;

Temporäre Tablespaces

  • werden für Sortiervorgänge verwendet (DISTINCT, ORDER BY, GROUP BY, UNION...)
  • dürfen keine permanenten Objekte enthalten
  • es wird empfohlen, Extents lokal zu verwalten
  • Beispiel:
CREATE TEMPORARY TABLESPACE temp
  DATAFILE 'd:\prog\oracle\oradata\ora01\data01.dbf' SIZE 100M
  EXTENT MANAGEMENT LOCAL
  UNIFORM SIZE 4M;

Temporärer Tablespace als Default

  • gibt für die gesamte Datenbank gültigen temporären Tablespace als Default an
  • verhindert, dass der SYSTEM-Tablespace zum Speichern temporärer Daten verwendet wird, was die Performance verringern würde
  • kann nur gelöscht werden, wenn zuvor ein neuer Default-Tablespace verfügbar gemacht wurde
  • kann nicht offline gesetzt werden
  • kann nicht in einen permanenten Tablespace geändert werden
ALTER DATABASE
  DEFAULT TEMPORARY TABLESPACE temp;

Tablespaces können in den Modus "READ ONLY" gesetzt werden.

  • Löst einen Checkpoint aus
  • Daten sind nur für Lesevorgänge verfügbar
  • Objekte können aus Tablespace gelöscht werden
  • Beispiel:
ALTER TABLESPACE userdata READ ONLY;

Tablespace offline setzen

  • nicht verfügbar für den Datenzugriff
  • Folgende Tablespaces können nicht offline gesetzt werden:
    • SYSTEM-Tablespace
    • Tablespaces mit aktiven Undo-Segmenten
  • Beispiel:
ALTER TABLESPACE userdata OFFLINE;

Tablespace online setzen:

ALTER TABLESPACE userdata ONLINE;