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:
- Im RMAN-Template wird alles auskommentiert was bis dato erfolgreich ausgeführt wurde
- 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