oracle patch patchset opatch - ghdrako/doc_snipets GitHub Wiki
- CPU (Critical Patch Updates) → poprawki bezpieczeństwa, instalowane kwartalnie.
- PSU (Patch Set Updates) → poprawki błędów + CPU.
- RU (Release Updates) → pełne aktualizacje z nowymi funkcjonalnościami.
- OPatch → podstawowe narzędzie do instalacji patchy.
- Data Patch → aktualizuje zmiany w katalogu SQL po instalacji patcha.
- Backup i testy przed instalacją są obowiązkowe!
- Sprawdzenie wersji bazy danych i aktualnego stanu patchy
SELECT * FROM v$version;
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Sprawdzenie zainstalowanych poprawek
SELECT * FROM dba_registry_sqlpatch;
PATCH_ID PATCH_DESCRIPTION STATUS
------------ ------------------------------ ----------
33192793 Database Release Update 19.11 SUCCESS
Sprawdzenie statusu opatch:
$ORACLE_HOME/OPatch/opatch lsinventory
-
Pobranie odpowiedniego patcha CSI trzeba miec zeby utworzyc konto i zalogowac sie do Oracle i pobrac patch
-
Weryfikacja patchy zainstalowanych
export ORACLE_HOME=/ora/OraHome19000
cd $ORACLE_HOME/OPatch
opatch lsinventory
- podstawowe narzędzie z pakietu OPatch służące do wyświetlania listy wszystkich patchy (i ich detali) zainstalowanych w danym ORACLE_HOME.
Opcje
- -detail Pokaże dodatkowe informacje (lista plików, komponentów, zależności), np.
./opatch lsinventory -detail
- -oh <ścieżka> Pozwala wskazać ORACLE_HOME, jeśli nie chcesz ustawiać zmiennej środowiskowej:
./opatch lsinventory -oh /ora/OraHome19000
- -invPtrLoc Jeżeli Twój oraInst.loc jest w niestandardowej lokalizacji.
opatch
opatch lsinventory
opatch -help
opatch lspatches -help
opatch lspatches
opatch lsinventory -help
opatch lsinventory -patch_id
opatch lsinventory -detail
opatch prereq CheckConflictAgainstOHWithDetail -ph ./
opatch prereq CheckConflictAgainstOHWithDetail -ph ./ > /tmp/Oracle_patch/opatch_checkconflict.txt
opatch apply
cd $ORACLE_HOME/OPatch
./datapatch -sanity_checks
./datapatch -sanity_checks >> /tmp/Oracle_patch/lsinventory.txt
./datapatch -verbose
./datapatch -sanity_checks
W Oracle polega na:
- instalacji patcha w nowym katalogu ORACLE_HOME (obok starego),
- a następnie przepięciu binariów (czyli zmiany ORACLE_HOME, tzw. „switch home”),
- bez nadpisywania aktualnego środowiska.
To podejście jest szczególnie bezpieczne i zalecane przez Oracle dla systemów produkcyjnych – minimalizuje czas niedostępności i pozwala na szybki rollback (powrót do starego katalogu).
- Sprawdź aktualne środowisko
echo $ORACLE_HOME
echo $ORACLE_SID
- Skopiuj istniejący ORACLE_HOME
cp -rp /u01/app/oracle/product/19.20.0/dbhome_1 /u01/app/oracle/product/19.22.0/dbhome_1_patch
- Zainstaluj patch do nowego katalogu
Przejdź do nowego katalogu:
cd /u01/app/oracle/product/19.22.0/dbhome_1_patch
Zastosuj patch np. za pomocą opatch:
./opatch apply -silent
Potem:
./datapatch -verbose
- Zaktualizuj środowisko – oratab i .bash_profile
W /etc/oratab
:
- Zmień ścieżkę ORACLE_HOME dla SID:
ORCL:/u01/app/oracle/product/19.22.0/dbhome_1_patch:Y
W .bash_profile:
Zmień:
export ORACLE_HOME=/u01/app/oracle/product/19.22.0/dbhome_1_patch
- Restart instancji bazy
sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
STARTUP;
- Potwierdź, że baza działa z nowego ORACLE_HOME:
SELECT * FROM v$version;
- (Opcjonalnie) Test rollbacku
Jeśli coś pójdzie nie tak, wystarczy:
- Zmienić zmienne środowiskowe na stare ORACLE_HOME
- Przełączyć /etc/oratab
- Wystartować bazę z powrotem
* Install New Oracle Home
* Apply Patch to New Oracle Home
* Update Configuration
* Switch Oracle Database to New Home - downtime,
* Run Post-Patch Steps - na działającej bazie
Dokumentacja Oracle:
- Oracle 19c Patch Strategy: MOS Doc ID 2695484.1
- OOP dla RAC: Doc ID 2419319.1