next Erstellen einer Datenbank
up Fundamentals
previous Getting Started with the Oracle Server
  Contents   Index

Subsections


Die Oracle Instance

Ermitteln der SID
select name, value
  from v$parameter 
  where name = 'instance_name';


Initialisierungsparameter

Es gibt zwei Arten von Parametern. Anzeige der Initialisierungsparameter in der OEM-Konsole. OEM-Konsole starten.
oemapp console
Netzwerk | Datenbanken | SID | Instanz | Konfiguration
Alle Initialisierungsparameter

Beispiele

MAXLOGFILES, MAXLOGMEMBERS, MAXLOGHlSTORY, MAXDATAFILES, MAXINSTANCES

UNDO_MANAGEMENT = AUTO
undo tablespace created with database creation, when undo_tablespace omitted

UNDO_TABLESPACE = undotbs
choosing/switching undo tablespace

CONTROL_FILES = path/filename
if not specified, control files created with database creation in OMF directory

DB_CREATE_FILE_DEST = path
datafiles, tempfiles OMF
(if db_create_online_log_dest_n not specified: also redo log files, control files)

DB_CREATE_ONLINE_LOG_DEST_1 ? 5 = path
redo log files, control files OMF

BACKGROUND_DUMP_DEST = path
location alert log file (and background process trace files)

LOG_CHECKPOINTS_TO_ALERT = TRUE
monitoring checkpoints in alert log file

LOG_ARCHIVE_START = TRUE
starting the archiver process

FAST_START_MTTR_TARGET = seconds
max time needed for instance recovery,
determines the number of buffers being written by DBWn

REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE
password authentication single instance

SORT_AREA_SIZE = bytes | k | m
uniform size of the temporary tablespace should be a multiple of the SORT_AREA_SIZE

RESOURCE_LIMIT = TRUE
enforce resource limits


Parameterfiles zur Initialisierung

Die Parameterfiles initialisieren die Instanz beim Start. Z.B. werden durch die Initialisierungsparameter die Größen der Speicherstrukturen im SGA festgelegt. Dies erfolgt bis 8i durch das PFILE. Ab 9i erfolgt die Initialisierung standardmäßig per SPFILE. Wahlweise kann aber auch bei 9i mit einem PFILE initialisiert werden. Jede Instanz hat normalerweise ihr eigenes (S)PFile.


PFILE - initSID.ora

Default Location: $ORACLE_HOME/dbs
Das PFILE ist eine ASCII Datei und wird auch als statisches Parameterfile bezeichnet. Man kann es mit einem Texteditor bearbeiten. Die Änderungen werden erst nach dem nächsten Neustart der Instanz wirksam.


PFILE erzeugen:

Da ab Oracle 9i kein PFILE mehr per default verwendet wird, muss man es erst erzeugen. Dies ist sinnvoll, da man das PFILE für Sicherungs- und Dokumentationszwecke verwenden kann.

Anmerkung: Die Initialisierung einer Oracle-Instanz ab Version 9i sollte immer mit einem SPFILE erfolgen. Die ausschließliche Verwendung eines PFILES wird nicht empfohlen.

Ausnahmen: Datenbank-Upgrades oder Kompatibilitätsgründe.

Bemerkung: RMAN kann auch das persistente Parameterfile sichern.

create PFILE = '/oracle/ora92/database/pfile_testdb29_01.ora' 
  from spfile  '/oracle/ora92/database/spfile';


SPFILE - spfileSID.ora

Default Location: $ORACLE_HOME/dbs
Das SPFile ist eine binäre Datei und wird auch als persistentes Parameterfile bezeichnet. Änderungen können persistent gegenüber shutdown und startup gemacht werden. Manuell kann es nicht verändert werden. Einsehbar ist es aber z.B. mit dem Unix-Befehl less spfileSID.ora.


SPFILE aus einem PFILE erzeugen:

Dies kann z.B. bei einem fehlerhaften SPFILE notwendig sein.
create SPFILE = '/oracle/ora92/database/spfile_testdb29_01.ora'
  from pfile    '/oracle/ora92/database/inittestdb29.ora';


Reihenfolge der Auswertung von Parameterfiles beim Start

  1. spfileSID.ora
  2. Default SPFILE
  3. initSID.ora
  4. Default PFILE


Starten mit einem PFILE:

Man kann aber auch expizit ein PFILE angeben:
startup pfile = '/oracle/ora92/database/pfile_testdb29_01.ora';


Parameter ändern:

Das SPFILE wird nicht manuell editiert. Die Änderungen erfolgen mittels Anweisungen.
ALTER SYSTEM SET parameter_name = parameter_wert 
  SCOPE = MEMORY | SPFILE | BOTH SID = '*'
;
MEMORY - Änderungen werden nur im Memory gespeichert. Sie sind also nur bis zum Shutdown wirksam.
SPFILE - Änderungen werden nur in das SPFILE geschrieben.
BOTH - Änderungen werden im Memory und in das SPFILE geschrieben (Default).
SID - Identifiziert die ORACLE_SID. * bedeutet das Default-SPFILE.

Parameter wieder auf default setzen:

ALTER SYSTEM RESET parameter_name parameter_wert
  SCOPE = MEMORY | SPFILE | BOTH 
;


STARTUP-Optionen

Vergleichbar mit den Runlevel bei vielen Unix-Betriebssystemen ist es auch möglich eine Instanz in Stufen hochzufahren.
  1. SHUTDOWN
  2. NOMOUNT
  3. MOUNT
  4. OPEN

Keine Option

startup;
Wird keine keine Option beim Befehl STARTUP angegeben, starten alle Instanzen entsprechend den Einstellungen in der Datei /etc/oratab bis OPEN.


NOMOUNT

startup nomount;
NOMOUNT wird zur Datenbankerstellung und zur Wiederherstellung der Control Files verwendet. Es werden folgende Schritte abgearbeitet. Die Datenbank muss per DB_NAME gesetzt sein oder in den Initialisierungsfiles stehen.


MOUNT

startup mount;
Die Datenbank wird gemountet aber nicht geöffnet. Dies ist für folgende Arbeiten notwendig. Es werden folgende Schritte abgearbeitet.


OPEN

startup open;
Jeder gültige User kann jetzt auf die Datenbank zugreifen. Es werden folgende Schritte abgearbeitet.


Weitere STARTUP Optionen

startup force;
Bricht eine laufende Instanz ab und führt einen normales STARTUP aus.
startup restrict;
ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege
Erlaubt nur Usern mit dem Privileg RESTRICTED SESSION den Zugang zur Datenbank.
startup recover;
Beginnt ein Media Recovery wenn die Datenbank startet.


ALTER DATABASE

alter database testdb29 mount;
Ändert des Status der Datenbank von NOMOUNT zu MOUNT.
alter database testdb29 open read only;
Öffnet eine Database schreibgeschützt.
alter database testdb29 open read write;
Öffnet eine Database mit Schreibzugriff.


ALTER SYSTEM

alter system enable restricted session;
Erlaubt nur Usern mit dem Privileg RESTRICTED SESSION den Zugang zur Datenbank.
alter system disable restricted session;
Allen User wird der Zugriff erlaubt.
alter system kill session 'SID,SERIAL#';
Beendet eine eine Session. SID und SERIAL# kann aus V$SESSION ermittelt werden.
alter system suspend;
alter system resume;


SHUTDOWN-Optionen

Das Herunterfahren einer Instanz kann mit unterschiedlichen Dringlichkeiten erfolgen.


NORMAL

shutdown normal;
Neue User können sich nicht mehr anmelden. Bestehende Sessions werden nicht beendet. Erst wenn der letzte User sich abgemeldet hat wird die Instanz herunter gefahren. Database Buffer und Redo Buffer werden in die Files geschrieben. Nach dem Neustart ist kein Recovery notwendig.


TRANSACTIONAL

shutdown transactional;
Es wird gewartet bis alle offenen Transactionen beendet sind. Ansonsten werden alle Sessions sofort beendet. Nach dem Neustart ist kein Recovery notwendig.


IMMEDIATE

shutdown immediate;
Laufende Transaktionen werden zurückgerollt. Aktuelle SQL Statements werden nicht beendet. Alle User Sessions werden sofort beendet. Nach dem Neustart ist kein Recovery notwendig.


ABORT

shutdown abort;
Transaktionen werden weder beendet noch zurückgerollt. Dateien werden nicht geschlossen. Die Datenbank wird weder geschlossen noch dismountet. Die Datenbank ist inkonsistent. Beim Neustart erfolgt ein Rollback aller Transactionen Beim Neustart ist ein Instanz-Recovery notwendig. Dies erledigt SMON.


Instance Recovery

Instance Recovery - Bei Oracle Real Application Clusters Konfiguration.
Crash Recovery - Bei nur einer Instance.

Reihenfolge beim Instance Recovery

  1. Nicht synchronisierte Datendatei (Crash).
  2. Roll Forward (Redo)
    DBWR schreibt festgeschriebene und nicht festgeschriebene Daten in die Datendateien. Alle Änderungen, die in den Log-Dateien protokolliert wurden, werden auf die Datenblöcke angewendet.
  3. Festgeschriebene und nicht festgeschriebene Daten befinden sich in den Datendateien. Die Datenbank wird geöffnet.
  4. Rollback (Undo).
  5. In Dateien festgeschriebene Daten.


Überwachen der Alert Log File und Trace Files

Zur Fehlerüberwachung und Diagnostik dienen mehrere Arten von Log/Trace-Files. Diese ASCII-Dateien können mit den üblichen Unix-Befehlen (tail, grep) betrachtet und ausgewertet werden.


alertSID.log

Pfad wird in BACKGROUND_DUMP_DEST festgelegt. Dies ist die eigentliche Log-Datei für die Instanz. Diese sollte regelmäßig untersucht und dann geleert werden.


Background Trace Files

Pfad wird in BACKGROUND_DUMP_DEST festgelegt. Die Benennung ist: sid_prozessname_pid.trc. Wobei der Prozessname sich aus dem Background-Prozess ergibt (LGWR, DBWR, ...). Die PID ist die PID vom Betriebssystem. Diese Dateien werden nur bei Fehlern angelegt. Diese sollte regelmäßig untersucht und dann gelöscht werden.


User Trace Files

Pfad wird in USER_DUMP_DEST festgelegt. Die Bennenung ist: sid_ora_PID.trc. Diese Dateien werden nur bei Fehlern angelegt. Diese sollte regelmäßig untersucht und dann gelöscht werden.


(De-)Aktivieren des User-Tracing

alter session set SQL_TRACE = TRUE;
SQL_TRACE ist ein statischer Parameter.
Achtung: Es entstehen sehr viele Daten, da z.B. jedes SQL-Statement geloggt wird. Die Default-Einstellung ist TRUE und sollte daher auf FALSE gesetzt werden.

Übung PFILE / SPFILE

Übungen siehe Seite [*].

Übung Hoch- / Herunterfahren

Übungen siehe Seite [*].
next Erstellen einer Datenbank
up Fundamentals
previous Getting Started with the Oracle Server
  Contents   Index


Stefan Hietel dama.go GmbH, Robert Warnke http://rowa.giso.de