Datapatching

Heute haben wir in einer Oracle SE2 mit PDBs

1 Lokale PDB
1 Master Refreshable Clone
1 Snapshot Clone vom Master Clone

Die Datenbank von 19.9 auf 19.21 gepatched

Nachdem Patch kam es zu einem Fehler..

 
alter pluggable database MASTER refresh; 

* ERROR at line 1: ORA-00283: recovery session canceled due to errors ORA-01114: IO error writing block to file 20 (block # 1) ORA-27041: unable to open file Linux-x86_64 Error: 13: Permission denied

Der existierte eindeutig schon vor dem Datapatch.
(da dieser Fehler auf Grund des Snapshots Clones ausgelöst wird)

Jede refreshable PDB wird unrefreshable nachdem ein Snapshot Clone erstellt wurde. Man kann dies nun wieder korrigieren.

execdbms_dnfs.restore_datafile_permissions('MASTER');

Und siehe da der Master lebt wieder, lässt sich auch refreshen.

alter pluggable database MASTER open read only;

Warning: PDB altered with errors.

Der Master Clone wurde natürlich nicht datapatched, da dieser ja read only bzw. mounted ist und das wollen wir natürlich auch so.

select * from PDB_PLUG_IN_VIOLATIONS ;

Hier sieht man die Patcherrors

  • Interim patch 35787077/25410019 (DATAPUMP BUNDLE PATCH 19.21.0.0.0): Installed in the CDB but not in the PDB
  • Call datapatch to install in the PDB or the CDB

Aber wie gehts eigentlich unserem Snapshot Clone?

Ich konnte mich connecten, ich konnte sogar abfragen durchführen.. What? Filecache oder sowas denk ich..

Aber als ich dann

alter pluggable database CLONE close;
  • ERROR at line 1:
  • ORA-03113: end-of-file on communication channel
  • Process ID: 1577474
  • Session ID: 50 Serial number: 59102

War die Instance gestorben.. sogar die CDB war nicht mehr online;

Also immer die Snasphot Clones vorher droppen und dann den MASTER refreshen!