Oracle Database: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Michi (Diskussion | Beiträge) 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:\ | 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;