Skip to main content

Oracle - Aktualizacja silnika bazy danych oraz klienta

  1. Wykonanie snapshotu maszyny
  2. Przygotowanie środowiska
     
  • Pobieranie odpowiedniego patcha :

Należy zweryfikować jaki jest aktualny patch do bazy danych oracle oraz do aktualizatora środowiska (program Opatch).

 

  • Logujemy się na stronę supportu oracle 
  • Po zalogowaniu się wybieramy "Patches & Updates" 


     

    • Po prawej stronie wczyta nam się formularz, w którym musimy wybrać "Product or Family (Advanced)": 


     

    • Na potrzeby tego poradnika wykorzystujemy silnik bazy oracle w wersji 19c, więc szukamy patcha "DATABASE", wypełniając jak poniżej:

                image.png

     

    • Interesuje nas "COMBO OF OJVM COMPONENT <version> + DB RU <version> (Patch)", w tym przypadku do wersji 19.24 

                       image.png

     

    • Klikamy w numer, po tej akcji klikamy w "download" 

                       image.png

    • I na samym końcu w nazwę pliku by rozpocząć pobieranie.

    "OPatch"

    • Aby znaleźć odpowiedni, najnowszy patch aplikacji "OPatch" wyszukiwanie ustawiamy w następujący sposób:

            image.png

    • Klikamy w numer patcha po lewej stronie, otworzy nam się taki widok:
                  image.png
    • Klikamy download i pobieramy dany patch.

     Wrzucanie patcha poprzez winscp do lokalizacji /install/oracle_patches
     

    • Pobrane wcześniej patche wrzucamy poprzez winscp do lokalizacji /install/oracle_patches. Do folderu "OPatch_repo" wrzucamy paczkę z OPatchem:
       

      image.png


      Natomiast do folderu "combo_RU_OJVM" patch docelowy dla db:

             image.png

    • Zmiamy ownera paczek na oracle:oinstall, a następnie wykonujemy unzip patchy korzystając z konta "oracle"

             image.png

             image.png

             image.png 

    1. Aktualizacja Środowiska:

    Aktualizacja OPatch oraz binariów dotyczy zarówno klienta jak i bazy danych Oracle. Aktualizacje i rekompilacje danych (datapatch) wykonuje się tylko dla bazy danych Oracle.

    Aktualizacja OPatch

     

    Usunięcie starego OPatch - rm -rf * z lokalizacji $ORACLE_HOME/OPatch
     

    • Sprawdzamy ścieżkę do aktualnie wykorzystywanej aplikacji OPatch:

                       image.png

    • przechodzimy do danej lokalizacji i usuwamy wszystkie pliki: 

                       image.png

    • Wykopiowanie nowego opatch do $ORACLE_HOME/Opatch z lokalizacji /install/Opatch 

                      image.png

     

    • Weryfikujemy poprawnosć aktualizacji poprzez komendę:

      opatch version

             image.png

     

    • Wyłączamy bazy danych - Ważne należy zweryfikować wcześniej czy istnieje tylko jedna instancja, jeżeli nie wyłączamy każdą instancję:
       
       sqlplus / as sysdba
      shutdown immediate;

                 image.png

    Aktualizacja binariów oraz OJVM bazy/klienta:
     

    • Wchodzimy do katalogu patcha bazy danych, znajdują się tam dwa podkatalogi - jeden zawiera patch dla OJVM, a drugi to patch dla samej DB. Należy wejść do każdego katalogu z danym patchem i wykonać poniższą komendę: 

      opatch apply

            image.png

    • Log który nam się wyświetla warto wyświetlić drugim połączeniem poprzez tail -f "ścieżka"

                      image.png

                      image.png

     

    • Jeżeli wszystko jest w porządku zgadzamy się wpisując "y" i zatwierdzamy enterem
    • Potwierdzamy także wyłączenie wszystkich instancji bazy danych:


    • Opatch powinien rozpocząć patchowanie:


    • Po poprawnym wykonaniu aktualizacji otrzymamy komunikat : OPatch succeded.

                       image.png

    4. Weryfikacja aktualizacji 

    • Startujemy bazę podczas logowania widać już wersję bazy danych podniesioną do 19.24:
    sqlplus / as sysdba
    startup

            image.png 

    • Uruchamiamy Listenera poprzez

      lsnrctl start


    image.png

    • Weryfikujemy status listenera poprzez

      lsnrctl status

      Należy odczekać około minuty :

              image.png

    Po tych działaniach mamy zaktualizowną baze danych, OJVM jak i aktualizator OPatch i możemy przejść do aktualizacji danych:

    Przechodzimy do katalogu OPatcha:

    image.png

    Na niektórych serwerach może być zainstalowane więcej niż jedna instancja! Przełączenie między instancjami odbywa się za pomocą polecenia: 

    . oraenv

    Po wykonaniu polecenia zobaczymy w nawiasach kwadratowych aktualnie wybraną instancje. Zmiana instancji następuje poprzez wpisanie nazwy instancji, na którą chcemy się przełączyć

    image.png

    Poniższe kroki wykonujemy każdorazowo dla wszystkich instancji!

    Uruchamiamy polecenie datapatch

    ./datapatch --verbose

    image.png

    Patche powinny zacząć się instalować: 

    image.png

    W razie bezproblemowej aktualizacji output powinien wyglądać tak :

    image.png

    Po poprawnym patchowaniu danych logujemy się do bazy danych poprzez:

    sqlplus / as sysdba

    i weryfikujemy czy wszystkie komponenty są VALID:

    select comp_name,version,status from dba_registry where STATUS <> 'VALID';

    Bezproblemowy output powinien wyglądać tak: 

    image.png

    Należy też zweryfikować wersję:

    col comp_id for a10
    col VERSION_FULL for a12
    col STATUS for a10
    col MODIFIED for a21
    SELECT comp_ID, version_full, status, modified FROM DBA_REGISTRY;

    image.png

    Uruchamiany : 

    @?/rdbms/admin/utlrp.sql

    output który powinniśmy zobaczyć to :

    image.png

    W razie problemów ze z którymś modułem:

    image.png

    image.png

    Np dla modułu XDB uruchamiamy walidację:

    exec DBMS_REGXDB.VALIDATEXDB;

    image.png

    Może się zdarzyć że schema SYS zablokowała wszystkie statystyki - odblokowujemy za pomocą:

    exec dbms_stats.unlock_schema_stats('SYS');

    image.png

    Oraz uruchamiamy ponownie:

    exec DBMS_REGXDB.VALIDATEXDB;
    @?/rdbms/admin/utlrp.sql

    Na koniec ustawiamy z poziomu konta z uprawnieniami roota poprawne uprawnienia dla extjob (aktualizacje może je zmienić, więc lepiej wykonać dla pewności poniższe komendy):

    chown root $ORACLE_HOME/bin/extjob
    chmod 4750 $ORACLE_HOME/bin/extjob

    image.png