Zu Oracle

Bereich:
Versionsinfo:
DBA, B&R
getestet mit 9.2.0.8, 10.2.0.4, 11.1.0.6
Erstellung:
Letzte Überarbeitung:
01/2003 MP
07/2009 MM
 Als PDF Downloaden!

Verlust von Controldateien

Wenn eine oder mehrere Controldateien der Datenbank von einem Fehler betroffen sind, stürzt die Instanz sofort ab. In einigen Fällen bleibt die Instanz in einer Zwischenphase hängen und muss mit einem Abort gestoppt werden.

Sollte dies auch nicht mehr möglich sein, kann unter Windows der OracleService<sid> Dienst gestoppt und neu gestartet werden. Als letzte Rettung muss Windows neu gebootet werden.

Danach werden zwei Fehlerfälle unterschieden:

Fall 1: Es gibt noch eine intakte (gespiegelte Controldatei):

Hier kann die defekte Controldatei durch eine intakte überspielt werden. Danach wird die Datenbank neu gestartet

Beispiel (control01.ctl defekt):

SHUTDOWN ABORT
COPY  <dir>\control02.ctl <dir>\control01.ctl
STARTUP

 Fall 2: Es gibt keine aktuelle Controldatei mehr:

Wenn Sie eine Trace-Kopie der Controldatei besitzen, sollten Sie diese verwenden. Man kann eine lesbare Controldatei im laufenden Betrieb erzeugen durch den Befehl:

ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS 'c:\backup\control_ed.bak';

Diese Datei hat dann z.B. folgendes Aussehen:

--     Set #1. NORESETLOGS case
--
-- The following commands will create a new control file and use it
-- to open the database.
-- Data used by the recovery manager will be lost. Additional logs may
-- be required for media recovery of offline data files. Use this
-- only if the current version of all online logs are available.

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS 
ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
 
GROUP 1 'E:\ORACLE\ORADATA\ORCL\REDO01.LOG'  SIZE 50M,
  GROUP 2 'E:\ORACLE\ORADATA\ORCL\REDO02.LOG'  SIZE 50M,
  GROUP 3 'E:\ORACLE\ORADATA\ORCL\REDO03.LOG'  SIZE 50M
-- STANDBY LOGFILE

DATAFILE
 
'E:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF',
  'E:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF',
  'E:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF',
  'E:\ORACLE\ORADATA\ORCL\USERS01.DBF'
CHARACTER SET WE8MSWIN1252
;

-- Recovery is required if any of the datafiles are restored backups,
-- or if the last shutdown was not normal or immediate.
RECOVER DATABASE

-- All logs need archiving and a log switch is needed.
ALTER SYSTEM ARCHIVE LOG ALL;

-- Database can now be opened normally.
ALTER DATABASE OPEN;

-- Commands to add tempfiles to temporary tablespaces.
-- Online tempfiles have complete space information.
-- Other tempfiles may require adjustment.

ALTER TABLESPACE TEMP ADD TEMPFILE 'E:\ORACLE\ORADATA\ORCL\TEMP01.DBF'
 
SIZE 20971520 REUSE AUTOEXTEND ON NEXT 10485760 MAXSIZE 2048M;

--     Set #2. RESETLOGS case
--
-- The following commands will create a new control file and use it
-- to open the database.
-- Data used by Recovery Manager will be lost.
-- The contents of online logs will be lost and all backups will
-- be invalidated. Use this only if online logs are damaged.

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS ARCHIVELOG
    MAXLOGFILES 16
    ...
RECOVER DATABASE USING BACKUP CONTROLFILE

-- Database can now be opened zeroing the online logs.
ALTER DATABASE OPEN RESETLOGS;

...

Die Datei enthält zwei Fälle: NORESETLOGS und RESETLOGS Case. Falls die online Redo-Log-Dateien beschädigt sind, muss die Variante RESETLOGS verwendet. Ansonsten reicht NORESETLOGS aus. Editieren Sie die Datei entsprechend, d.h. entfernen Sie die Zeilen für den unzutreffenden Fall.

Melden Sie sich anschließend als SYSDBA in der SHUTDOWN-Phase an und rufen Sie das angepasste Skript auf. 

CONN sys/<pwd> AS SYSDBA
@ c:\backup\control_ed.bak

Damit werden in der NOMOUNT-Phase neue Controldateien generiert und zwar an den Positionen, die im SPFILE für den Parameter control_files definiert sind.

Suche

Kontakt

Telefon:
  089 6228 6789-0

Telefon (noch gültig):
  089 679090-40

E-Mail Verteiler Monatstipps

Bitte nehmen Sie mich in den Verteiler der monatlichen Tipps & Tricks auf.