Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:install_rac_move_database_home

Oracle 11g Datenbank in einem 12c Cluster in ein neues Oracle Home verschieben

Aufgabe:

Unter einem 12c Cluster laufen noch 11.2.0.4 Datenbanken, allerdings alle aus dem selben Oracle Datenbank 11g Home.

Die Datenbanken sollen nun in zwei Homes verschoben werden, um Patch Szenarien abbilden zu können.

Dazu wird im ersten Schritt ein neues Oracle Home wie gewohnt installiert und mit dem Patch Stand des alten Homes versehen, damit die Datenbank nach der Verschiebung auch betrieben werden kann!

D.h. gleiche Software Version + gleicher Patch Stand!

Das eigentliche Verschieben

DB Console der Datenbank stoppen und entfernen

Falls die DB Console im Einsatz ist:

emctl stop dbconsole
emca -deconfig dbcontrol db -repos drop -cluster

Die DB Console überlebt den Umzug in eine neues Oracle Home in der 11g nicht! (siehe gescheiterten Versuch weiter unten)

Datenbank im alten Home stoppen

srvctl stop databaes -d GPI

Konfiguration aus dem Cluster auslesen

srvctl config database -d GPI
 
Database unique name: GPI
Database name: TNG1IF
Oracle home: /opt/oracle/product/11.2.0.4/dbhome_1
Oracle user: oracle
Spfile: +DATA01/GPI/spfileGPI.ora
 
....

Da wir ein zentrales SPFile auf der ASM Disk verwenden, brauchen wir nur das Oracle Home umsetzen

Neues Oracle Home setzen

Oracle Home neu setzen mit „srvctl modify database“:

srvctl modify database -d TNG1IF -o /opt/oracle/product/11.2.0.4/dbhome_2
#prüfen ob es auch geklappt hat!
 
srvctl config database -d GPI
Oracle home: /opt/oracle/product/11.2.0.4/dbhome_2

# so klappt das nicht !!! mit modify arbeiten!

srvctl setenv database -d GPI -t "ORACLE_HOME=/opt/oracle/product/11.2.0.4/dbhome_2"
srvctl getenv database -d GPI -t "ORACLE_HOME"
srvctl unsetenv database -d GPI -t "ORACLE_HOME"

Password File / init.ora verschieben

Nun noch auf beiden Knoten die Password Datei und die init.ora der DB unter „dbs“ im alten Home in das neue Home verschieben.

Auf jeden Knoten!

cd /opt/oracle/product/11.2.0.4/dbhome_1/dbs
mv *GPI* /opt/oracle/product/11.2.0.4/dbhome_2/dbs
 
cd cd /opt/oracle/product/11.2.0.4/dbhome_2/dbs
 
ls -la

Prüfen, ob da die PWD Datei und init.ora auch wirklich da ist und die Rechte ok sind!

Datenbank wieder starten

srvctl start database -d GPI
 
srvctl status database -d GPI

Im Alert log prüfen, ob auch alles geklappt hat!

adrci
adrci> show alert
 
...
Starting up:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters option.
ORACLE_HOME = /opt/oracle/product/11.2.0.4/dbhome_2
System name:Linux
.....

Listener prüfen und per SQL*Net anmelden:

#Normaler Listener 
lsnrctl status LISTENER
 
# je nach dem was da gerade davon auf den jeweiligen Knoten läuft
# Scan listener testen!
lsnrctl status LISTENER_SCAN1
lsnrctl status LISTENER_SCAN2
lsnrctl status LISTENER_SCAN3
 
#Über Scan Anmelden mit passenden TNS Alias
sqlplus system@GPI

Funktioniert !

Backup und Skripte anpassen

Backup Scripte und Umgebungseinstellung anpassen!

DB Console

Wenn benötigt, die DB Console neu anlegen, ⇒ siehe dazu DB Console für eine Datenbank anlegen


Quellen

Oracle Dokumentation:


Versuch die DB Console zu reparieren, scheitert ....

Leider ist bei der DBConsole zu oft das alten Datenbank Home hinterlegt, das manuelle Anpassen führte nicht zum gewünschten Effekt.

DB Console verschieben (auf allen Knoten!!) und Pfade anpassen:

#altes Home
cd /opt/oracle/product/11.2.0.4/dbhome_1
mv *GPI* /opt/oracle/product/11.2.0.4/dbhome_2
 
#Konfiguration anpassen
# nun noch alle obigen kopierten Ordner für die DBConsole durchgehen und dort alle einträge suchen
 
find . -name "*.xml" -exec grep -H dbhome_1 {} \;
find . -name "*.properties" -exec grep -H dbhome_1 {} \;
 
 
#j2ee
#altes Home
cd /opt/oracle/product/11.2.0.4/dbhome_1/oc4j/j2ee
 
mv *GPI* /opt/oracle/product/11.2.0.4/dbhome_2/oc4j/j2ee/
 
# %s/dbhome_1/dbhome_2/g
 
#Konfiguration anpassen:
 
cd /opt/oracle/product/11.2.0.4/dbhome_2/oc4j/j2ee/
 
#konfigfiles finden und dann alle anpassen
 
find . -name "*.xml" -exec grep -H dbhome_1 {} \;
 
# nun noch alle obigen Ordner für die DBConsole durchgehen und dort alle einträge suchen

Das funktioniert leider nicht, d.h. die DB Console überlebt das nicht und muss dann neu angelegt werden!

Da hilft dann nur noch ein:

emca -deconfig dbcontrol db -repos drop -cluster

Und danach manuell alle Verzeichnisse der DB Console löschen!

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
dba/install_rac_move_database_home.txt · Zuletzt geändert: 2016/04/16 18:57 von Gunther Pippèrr