Latest Posts

Manuelles Upgrade Oracle 11gR2 / 12cR1 in Oracle Enterprise Linux 6

Der Artikel beschreibt das manuelle Upgrade einer Oracle 11gR2 Single Instance Datenbank auf die Version 12cR1 mit der Out-of-Place Variante in ein neues ORACLE_HOME. Ausgangsversion ist 11.2.0.3 – Zielversion 12.1.0.2.

Ausgangslage

OS und Datenbank-Versionen

  • Oracle Linux 6.5 64 Bit
  • Oracle 11.2.0.3 / PSU October 2014 (19121548)
    • ORACLE_HOME=/u00/app/oracle/product/11.2.0.3
  • Oracle 12.1.0.2 / PSU October 2014 (19303936)
    • ORACLE_HOME=/u00/app/oracle/product/12.1.0.2
  • Oracle Enterprise Edition 11.2.0.3
    • ORACLE_SID=SALEST

Installierte Komponenten

Dokumente

Die neusten Features im Upgrade-Prozess

  • Pre-Upgrade Skript für die Analyse der zu aktualisierenden Datenbank
  • Paralleles Upgrade vom Data Dictionary inkl. Aufsetzen auf der letzten Position im Fehlerfall
  • XML Datenbank wird installiert (falls nicht bereits vorhanden)
  • Skript um 11g Database Control zu entfernen – wird durch 12c EM Express ersetzt

Die Schritte

  1. Online Backup
  2. Skripts preupgrd.sql und utluppkg.sql von der 12c Installation in ein separates Verzeichnis kopieren
  3. Preupgrd.sql in der 11gR2 Datenbank laufen lassen, Fehleranalyse und Bereingung
  4. 11g Listener und Datenbank stoppen
  5. Init.ora / Spfile / Passwort-File und Umgebungsvariablen anpassen
  6. 12c Listener Start
  7. 12c STARTUP UPGRADE
  8. Catalog Upgrade
  9. @catuppst.sql
  10. @utlrp.sql
  11. @utlu121s.sql
  12. @utluiobj.sql
  13. Time Zone aktualisieren
  14. Post-Steps

Upgrade ausführen

Online Backup

Login als Benutzer Oracle auf den Server und setzen der Umgebungsvariablen für die 11gR2 Datenbank SALEST mit dem Oracle Tool oraenv:

 RMAN Login

Ausführen vom Backup

Es wird ein Full-Backup inklusive Controlfile ausgeführt.

 Skripts preupgrd.sql und utluppkg.sql bereitstellen

 Preupgrd.sql in der 11gR2 Datenbank laufen lassen

Output

Drei Files werden erstellt

  • Logfile mit allen Findings und Empfehlungen:
    • /u00/app/oracle/cfgtoollogs/SALEST_SITE1/preupgrade/preupgrade.log
  • Pre-Upgrade Skript:
    • /u00/app/oracle/cfgtoollogs/SALEST_SITE1/preupgrade/preupgrade_fixups.sql
  • Post-Upgrade Skript:
    • /u00/app/oracle/cfgtoollogs/SALEST_SITE1/preupgrade/preupgrade_fixups.sql

Die wichtigen Informationen stehen im Logfile, die beiden anderen Skripts kann man vorher und nachherlaufen lassen, zeigen aber nur den Inhalt vom Logfile an. Ich bevorzuge die Analyse vom Logfile und das manuelle durchführen von Anpassung zur Vorbereitung.

Findings

Im preupgrade.log stehen für die bestehende 11gR2 Datenbank folgende Findings für diese Installation drin – die Zusammenfassung:

Die Anpassungen müssen vor dem Upgrade auf der Quelldatenbank gemacht werden. SQL-Kommandos sind als Benutzer SYS / AS SYSDBA auszuführen.

Findings umsetzen

audit_trail FALSE

sec_case_sensitive_logon

Flashback Database zu klein

Parameter Processes

Enterprise Manager Database Control repository

Im 12c-Verzeichnis hat es das Skript emremov.sql welches das 11g Database Control Repository in der Datenbank löscht. Zuerst wird die Konsole gestoppt:

Und dann die Daten entfernt:

RECYCLE_BIN not empty

Data Dictionary Statistiken sammeln

Older Timezone in use

Das Timezone-Problem wird im Anschluss erledigt und hat keinen Einfluss auf das Upgrade.

Neustart der Datenbank

Sicherstellen dass die neuen Parameter richtig gesetzt sind:

11g Listener und Datenbank stoppen

Datenbank in SQL*Plus herunterfahren

Listener als OS-Benutzer oracle stoppen

Init.ora / Spfile / Passwort-File und Umgebungsvariablen anpassen

Das Server-Parameterfile und das Passwortfile müssen in das neue ORACLE_HOME/dbs kopiert werden. Hier ist das Server-Parameterfile im Administrationsverezichnis der Datenbank gespeichert und muss nur neu verlinkt werden.

Das oratab  File ist mit dem neuen ORACLE_HOME anzupassen:

Danach können die neuen Umgebungsvariablen gesetzt und gestestet werden:

12c Listener Start

12c STARTUP UPGRADE

Nachdem die neuen Umgebungsvariablen gesetzt sind, kann die Datenbank im UPGRADE Modus gestartet werden.

Catalog Upgrade

Data Dictionary updaten

Ausführen vom neuen catctl.pl Skript mit Angabe vom Parallelisierungsgrad. Wird kein Parameter -n mitgegeben so wird der Parallelisierungsgrad 4 verwendet, maximaler Wert ist 8.

Auszug der Ausführung

Fehler bei Schritt 66 – Died at catcon.pm line 6149

Es ist möglich dass das Skript bei Schritt 66 abbricht mit der folgenden Fehlermeldung:

Die Analyse der Logfiles im Verzeichnis $ORACLE_HOME/rdbms /admin zeigt:

Anscheinend wird in 12c die Statistik-Sammelmethode auf CONCURRENT geändert und der Statistikjob kann damit nicht umgehen. Mike Dietrich beschreibt im Oracle Upgrade Blog (https://blogs.oracle.com/UPGRADE/entry/ora_20000_unable_to_gather) den Fall und den Workaround dazu.

Login als SYS / AS SYSDBA und den Modus deaktivieren

Neustart im UPGRADE Modus

Aufsetzen bei Step 66

Danach kann das Data Dictionary Upgrade beim Schritt wo abgebrochen wurde aufsetzen, dazu kann man den Parameter -p mitgeben.

Upgrade beendet

Für die restlichen Schritte werden nur noch ein paar Sekunden benötigt. Die Datenbank wurde durch das Upgrade-Skript runtergefahren.

Danach muss die Datenbank neu gestartet werden.

Kontrolle der Komponenten

Die Version wurde aktualisiert, der UPGRADE Status der einzelnen Komponenten wird nach dem Kompilieren geändert. Expression Filter und Rules Manager wurden entfernt (Obsolescence Notice: Rules Manager and Expression Filter Features of Oracle Database (Doc ID 1244535.1))

@catuppst.sql

Ausführen als SYS / AS SYSDBA:

 

@utlrp.sql

Ausführen als SYS / AS SYSDBA:

 Kontrolle der Komponenten

Die Version wurde aktualisiert, sämtlich Komponenten haben den Status VALID:

@utlu121s.sql

Das Script zeigt Upgrade-informationen und Laufzeiten an.

Output

@utluiobj.sql

Prüfung auf invalide Objekte.

Output

Time Zone aktualisieren

Die My Oracle Support Note Scripts to automatically update the RDBMS DST (timezone) version in an 11gR2 or 12cR1 database . (Doc ID 1585343.1) beschreibt die Aktualisierung und stellt Skripts für die Prüfung und die Aktualisierung bereit.

Version prüfen

Gemäss der My Oracle Support Note Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1) (Doc ID 1503653.1) muss die Version 18 verwendet werden.

Time Zone Script

Das Script aus der My Oracle Support Note wird via FTP auf den Server transferiert und entpackt:

  • upg_tzv_check.sql – prüft die Version
  • upg_tzv_apply.sql – aktualisiert die Version
Prüfen der Version als SYSDBA

Version aktualisieren

Die Datenbank wird automatisch neu gestartet.

Neue Version prüfen

Post-Steps

Parameter compatible

Der Parameter muss auf die Version 12.1.0 angepasst werden – ein Neustart wird benötigt:

Sammeln der neuen Data Dictionary Statistiken

EM Express konfigurieren

Setzen des https-Ports:

Verifikation am Listener ob EM Express mit Port 5500 registriert ist:

Weitere Information rund um die Konfiguration von EM Express: https://docs.oracle.com/database/121/ADMQS/em_manage.htm#ADMQS003

Test EM Express mit der URL https://kestenholz:5500/em:

em_login