PLS-00553 beim Restore mit RMAN

Es geht hier um ein Problem des fehlenden bzw. falschen default charaterset des RMAN-Cataloges.
Dies ist in Metalink durch hinlänglich viele Bug’s beschrieben für die Versionen 8.1 über 9 bis hin zu 10.2.0.5.

Mein Problem:

Beim Erstellen eines Klones (ich verwende das Backup einer anderen DB für das Recovery) der Produktion in eine Abnahmeumgebung tritt folgender Fehler auf und RMAN beendet sich:

RMAN-06900: WARNING: unable to generate V$RMAN_STATUS or V$RMAN_OUTPUT row
RMAN-06901: WARNING: disabling update of the V$RMAN_STATUS and V$RMAN_OUTPUT rows
RMAN-06003: ORACLE error from target database:
ORA-06550: line 1, column 152:
PLS-00553: character set name is not recognized
ORA-06550: line 0, column 0:
PL/SQL: Compilation unit analysis terminated

und

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 09/01/2010 15:09:59
ORA-06550: line 1, column 43:
PLS-00553: character set name is not recognized
ORA-06550: line 0, column 0:
PL/SQL: Compilation unit analysis terminated

Was bis dahin erfolgreich durchgeführt wurde, war der Restore der Controlfiles und die Ausführung verschiedener SQL-Statements (z.b. Löschen der Standby Logs und Deaktivieren von Flashback). Der Fehler tritt auf bei dem eigentlichen RESTORE-Kommando.

Der Workaround

Ein schneller Workaround für dieses Problem sieht folgendermassen aus:

  1. Im RMAN-Template wird alles auskommentiert was bis dato erfolgreich ausgeführt wurde
  2. Neustart des RMAN und alles funktioniert.

Das RMAN-Template

Das Template für den 2.ten Versuch:

run {
   allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/var/opt/oracle/conf/tdpo.opt),BLKSIZE=524288';
   #
#   restore controlfile;
#   alter database mount;
   #
#   SQL "alter database flashback off";
#   SQL "alter database set standby database to maximize  performance";
#   SQL "alter database disable block change tracking";
#   SQL "alter database drop standby logfile group     11";
   #
   restore database FORCE CHECK READONLY;
   #
   recover database delete archivelog;
}

Bildnachweise:
Titelbild: © sqldev-101614-2340766-ci

Das könnte Sie auch interessieren

Bleiben Sie informiert:

its-people hilft Ihnen...

Weitere Blogthemen:

its-people – wir machen Ihre IT moderner,
leistungsfähiger und sicherer

Erfahren Sie bei einem persönlichen Gespräch, wie wir Sie gewinnbringend unterstützen können. Suchen Sie sich einen passenden Zeitpunkt aus. Wir melden uns. Versprochen!