Eine Datenbank musste von Windows nach Linux migriert werden. Da ein RMAN-Backup nicht zur Verfügung stand und der Datenbankserver auch nicht mehr gebootet hat (Ein Zugriff auf die Festplatten war noch möglich) wurden die Datafiles, das Controlfile und alles andere nötige auf den Linux-Server geschoben und die Datenbank hat auch wieder funktioniert.
Allerdings war es jetzt nicht mehr möglich, ein Backup der Datenbank per RMAN zu starten, denn beim CROSSCHECK kam diese Meldung:
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=206 device type=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of crosscheck command on ORA_DISK_1 channel at 09/18/2020 16:25:34
ORA-19633: control file record 9193 is out of sync with recovery catalog
Grund war, dass in dem Controlfile noch Archivelogs refenziert waren, die einen Windows-Pfad hatten:
RMAN> list archivelog all;
using target database control file instead of recovery catalog
List of Archived Log Copies for database with db_unique_name ORCL
=====================================================================
Key Thrd Seq S Low Time
------- ---- ------- - ---------
9193 1 9276 A 11-SEP-20
Name: D:\APP\ORACLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2020_09_11\O1_MF_1_9276_HOPT2QGC_.ARC
9194 1 9277 A 11-SEP-20
Name: D:\APP\ORACLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2020_09_11\O1_MF_1_9277_HOPT2RL9_.ARC
9195 1 9278 A 11-SEP-20
Name: D:\APP\ORACLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2020_09_11\O1_MF_1_9278_HOPT2SLB_.ARC
9196 1 9279 A 11-SEP-20
Name: D:\APP\ORACLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2020_09_11\O1_MF_1_9279_HOPTJBP1_.ARC
9197 1 9280 A 11-SEP-20
Name: D:\APP\ORACLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2020_09_11\O1_MF_1_9280_HOPTJD02_.ARC
9198 1 9281 A 11-SEP-20
Name: D:\APP\ORACLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2020_09_11\O1_MF_1_9281_HOPTJF02_.ARC
9199 1 9282 A 11-SEP-20
Name: D:\APP\ORACLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2020_09_11\O1_MF_1_9282_HOPTJF6G_.ARC
9200 1 9283 A 11-SEP-20
Name: D:\APP\ORACLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2020_09_11\O1_MF_1_9283_HOPTJFQ1_.ARC
9201 1 9284 A 11-SEP-20
Name: D:\APP\ORACLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2020_09_11\O1_MF_1_9284_HOPTJG6G_.ARC
Diverse Versuche mit „DELETE ARCHIVELOG SEQUENCE 9131;“ und ähnlichem schlugen fehl. Am Ende hat nur ein Kommando geholfen, nämlich als SYS auf der Datenbank:
SQL> exec SYS.DBMS_BACKUP_RESTORE.resetCfileSection(11);
Dadurch vergisst das Controlfile sämtliche Archivelogs, da die V$ARCHIEVED_LOGS geleert wird. Danach sollten die Vorhandenen natürlich wieder mit „CATALOG START WITH ‚/pfad/zu/der/FRA‘;“ oder besser „CATALOG RECOVERY AREA;“ bekannt gemacht werden.
Ich muss nicht hinzufügen, dass ihr das natürlich nicht in der Produktion machen solltet, solange ihr nicht wisst, was ihr tut. Und natürlich gegenprüfen, ob sich in dem Release nicht die SectionID geändert hat. Prüfen könnt ihr es mit diesem Statement:
SQL> select rownum-1 as SectionID, type from v$controlfile_record_section;
SECTIONID TYPE
---------- ----------------------------
0 DATABASE
1 CKPT PROGRESS
2 REDO THREAD
3 REDO LOG
4 DATAFILE
5 FILENAME
6 TABLESPACE
7 TEMPORARY FILENAME
8 RMAN CONFIGURATION
9 LOG HISTORY
10 OFFLINE RANGE
SECTIONID TYPE
---------- ----------------------------
11 ARCHIVED LOG
12 BACKUP SET
13 BACKUP PIECE
14 BACKUP DATAFILE
15 BACKUP REDOLOG
16 DATAFILE COPY
17 BACKUP CORRUPTION
18 COPY CORRUPTION
19 DELETED OBJECT
20 PROXY COPY
21 BACKUP SPFILE
SECTIONID TYPE
---------- ----------------------------
22 DATABASE INCARNATION
23 FLASHBACK LOG
24 RECOVERY DESTINATION
25 INSTANCE SPACE RESERVATION
26 REMOVABLE RECOVERY FILES
27 RMAN STATUS
28 THREAD INSTANCE NAME MAPPING
29 MTTR
30 DATAFILE HISTORY
31 STANDBY DATABASE MATRIX
32 GUARANTEED RESTORE POINT
SECTIONID TYPE
---------- ----------------------------
33 RESTORE POINT
34 DATABASE BLOCK CORRUPTION
35 ACM OPERATION
36 FOREIGN ARCHIVED LOG
37 PDB RECORD
38 AUXILIARY DATAFILE COPY
39 MULTI INSTANCE REDO APPLY
40 PDBINC RECORD
41 rows selected.