Oracle RAC Upgrade Einfach und rollend? Andreas Karlin Consultant 30.08.2012
Oracle RAC bietet Ausfallsicherheit und Lastverteilung auf Datenbankebene. Darüber hinaus bietet die RAC Architektur eine erhöhte Servicezeit, da einige Patches z.b. PatchSetUpdates rollend eingespielt werden können. Wie sieht die gesamte Prozedur bei einer Migration auf ein höheres Patchset aus? Kann eine solche Migration ebenso rollend durchgeführt werden, oder muss ich mit einer Downtime rechnen? Wie ist hier generell vorzugehen? Ist das Patchen der Datenbank auch rollend möglich? Der Artikel beschreibt ein Upgrade von 11.2.0.2 auf 11.2.0.3 unter Linux x86-64 und verweist auf einige Besonderheiten. Das Upgrade der Datenbank wurde mit dem Database Upgrade Assistant durchgeführt. 1. Konzept Oracle bietet seit dem Patchset 11.2.0.2 nur Softwarevollinstallationen an. Bei einer Neuinstallation muss somit nichtmehr wie bisher das Basisrelease und anschließend das entsprechende Patchset installiert werden, sondern direkt die gewünschte Zielversion. Für ein Upgrade kann die In-Place- oder Out-of-Place-Methode verwendet werden. In-Place bedeutet, daß wie zuvor, der Patchset direkt auf das Oracle Home der alten Version installiert wird. Out-of-Place bedeutet, daß ein separates Home mit dem neuen Patchset installiert wird. Nachdem die Software installiert wurde, wird die Datenbank in das neue Home umgezogen. Trivadis und Oracle empfehlen das Out-of-Place Upgrade, da diese Methode den Fallback auf die Ursprüngliche Konfiguration erleichtert. Für Real Application Cluster werden sogenannte RAC Rolling Patches angeboten. Diese Patches können pro Knoten eingespielt werden, d.h. ein Knoten bleibt immer Verfügbar. Somit ist sichergestellt, daß die Produktion nicht gestoppt werden muss. 2. Verfügbarkeit Die Patchsets sind für alle Plattformen erhältlich. Die Releasetermine sind je Plattform unterschiedlich. Bisher erscheinen Oracle-Patches zuerst für Linux Plattformen, gefolgt von den Patches für Windows-Plattformen. Anschließend werden Patches für die Unix-Derivate bereitgestellt. Aktuelle Releasetermine können in der MyOracleSupport-Note Release Schedule of Current Database Releases [742060.1] eingesehen werden. info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 2 / 17
3. Vorbereitung Generell empfehlen wir die Oracle Patches und Patchsets zuerst in einer separaten Umgebung genauestens zu testen.. Eventuell können bisher nicht bekannte Konflikte auftreten, welche unbedingt vor der Installation bereinigt werden müssen. Die Quellversion des zu patchenden Homes muss mindestens 11.2.0.2.1 also 11.2.0.2 mit PSU1 sein. Patchsets lassen sich über das My Oracle Support Portal unter Menüpunkt Patches & Updates herunterladen. Hierbei ist zu beachten, dass im Rahmen des Menüpunktes <Release> das gewünschte Patchset angegeben wird. Unter der Auswahl <Type> sollte der Begriff <Patchset> angegeben werden. Vor jeder Installation muss die Readme studiert werden. Besonderes Augenmerk sollte hierbei auf die Known Issues gelegt werden. Eventuell müssen spezielle Pre- und Post- Konfigurationen durchgeführt werden. Generell muss vor jeder Version der aktuelle OPatch heruntergeladen und installiert werden. Die nächste Abbildung zeigt den Abschnitt des Readmes mit dem Hinweis auf die Verwendung der aktuellen OPatch Version. info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 3 / 17
4. Installation Die Installation unterteilt sich in folgende Arbeitsschritte: Erstellen der OCM Responsedatei ASM Patch Installation Erhöhen der ASM Memory Parameter 11.2.0.3 Grid Infrastructure Installation & Upgrade 11.2.0.3 RDBMS Installation & Upgrade Upgrade der Datenbanken via DBUA Check aller SQLNet- und ORATAB Dateien Deinstallation der alten Homes Sicher ist Sicher (Reboot) 4.1 Erstellen der OCM Responsedatei Vor der eigentlichen Installation muss eine Responsedatei für den Oracle Configuration Manager erzeugt werden. In der Datei wird hinterlegt, ob OPatch nach kritischen Patches online suchen soll. Die Datei wird mit dem Tool emocmrsp erstellt und wird im aktuellen Pfad gespeichert. Die Datei wird bei jeder Patchinstallation benötigt, die OPatch benutzt. [root@racn1 upgr11203]# /u00/app/oracle/gi11202h1/opatch/ocm/bin/emocmrsp [oracle@racn1 upgr11203]# mv ocm.rsp../. info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 4 / 17
4.2 ASM Patch Installation Bevor migriert werden kann, muss zuvor ein ASM Patch auf 11.2.0.2 eingespielt werden. Der Hinweis wird nicht im eigentlichen Readme des Patches, sondern in einer My Oracle Support Note genannt. In der Note Things to Consider Before Upgrading to 11.2.0.3 Grid Infrastructure/ASM [ID 1363369.1] ist dieser Hinweis unter Punkt C zu finden. Die folgende Abbildung zeigt den relevanten Abschnitt dieser MOS Note. Der Patch verhindert, daß der Start der ASM Instanzen der nachfolgenden Knoten fehlschlägt. Der Patch wird in die Grid Infrastructure und das RDBMS Home installiert. [oracle@racn1 upgr11203]# unzip p12539000_112023_linux-x86-64.zip [oracle@racn1 upgr11203]# rm p12539000_112023_linux-x86-64.zip [root@racn1 upgr11203]# export PATH=/u00/app/oracle/gi11202h1/OPatch:$PATH # Patch der Grid Infrastructure [root@racn1 upgr11203]# opatch auto /u01/software/upgr11203 -oh /u00/app/oracle/gi11202h1 # Patch des RDBMS [root@racn1 upgr11203]# opatch auto /u01/software/upgr11203 -oh /u00/app/oracle/base/db11202h1 info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 5 / 17
4.3 Erhöhen der ASM Memory Parameter Oracle empfiehlt die ASM Instanzparameter zu erhöhen, um Speicherprobleme bei vielen Datenbankzugriffen zu vermeiden. Der Hinweis ist auch hier nicht im eigentlichen Readme des Patches, sondern in einer My Oracle Support Note zu finden. In der Note Things to Consider Before Upgrading to 11.2.0.3 Grid Infrastructure/ASM [ID 1363369.1] ist dieser Hinweis unter Punkt E zu finden. Das nächste Bild zeigt den Ausschnitt der Note. Die Befehle werden direkt in SQLPlus gegen die ASM Instanz abgesetzt. sqh alter system set memory_max_target=4096m scope=spfile; alter system set memory_target=1536m scope=spfile; info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 6 / 17
4.4 11.2.0.3 Grid Infrastructure Installation & Upgrade Nach dem ASM Patch wird die GI-Software in ein eigenes Home installiert. Hierbei sollen die Oracle Environment-Variablen entfernt werden. Unter Linux muss zuvor ein Display gesetzt werden. oracle@racn1:~/ [dgrac11] unset ORACLE_HOME oracle@racn1:~/ [dgrac11] unset ORACLE_BASE oracle@racn1:~/ [dgrac11] unset ORACLE_SID oracle@racn1:~/ [] cd /u01/software/grid/ oracle@racn1:/u01/software/grid/ []./runinstaller Nach dem Aufruf des RunInstallers erscheint der bekannte Universal Installer. Es gibt hierbei keinen wesentlichen Besonderheiten. Zu erwähnen ist jedoch, dass alle Knoten zur Installation ausgewählt werden müssen. info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 7 / 17
Der Installer prüft alle notwendigen Konfigurationen ab. Am Ende muss das rootupgrade Script auf jedem Knoten gestartet werden. info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 8 / 17
Vor dem Ausführen des rootupgrade Scriptes empfiehlt Oracle, die Datenbankinstanz des betroffenen Servers zu stoppen. oracle@racn1:/u01/software/ [+ASM1] srvctl stop instance -d dgrac1_rz1 -i dgrac11 [root@racn1 ~]# /u01/app/oracle/gi11203h1/rootupgrade.sh Das Rootupgrade Script muss auf allen Knoten ausgeführt werden. Wichtig hierbei ist, daß auf dem ersten und dem letzten Knoten das Script separat ausgeführt wird. Auf den Knoten dazwischen darf das Script parallel gestartet werden. 4.5 11.2.0.3 RDBMS Installation & Upgrade Die RDBMS-Software wird in ein eigenes Home installiert. Hierbei sollen die Variablen entfernt werden. Unter Linux muss zuvor ein Display gesetzt werden. oracle@racn1:~/ [dgrac11] unset ORACLE_HOME oracle@racn1:~/ [dgrac11] unset ORACLE_BASE oracle@racn1:~/ [dgrac11] unset ORACLE_SID oracle@racn1:~/ [] cd /u01/software/database/ oracle@racn1:/u01/software/database/ []./runinstaller Nach dem Aufruf des RunInstallers erscheint der bekannte Universal Installer. Hierbei ist die Option Software Only auszuwählen. info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 9 / 17
Anschließend wird die Software als RAC Installation für alle Knoten des Clusters ausgerollt. Nach der Installation muss das root.sh Script ausgeführt werden. [root@racn1 upgr11203]# /u01/app/oracle/base/db11203h1/root.sh Das Root.sh wird nacheinander auf allen Knoten ausgeführt. info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 10 / 17
4.6 Datenbankmigration via Database Update Assistant Bevor der DBUA ausgeführt wird, sollte zuvor der Recycle Bin gelöscht und die Dictionary statistiken erneut erstellt werden. Das nächsten Bilder zeigen die Hinweise im Upgrade Guide der Oracle Dokumentation. Die Befehle werden direkt in SQL*Plus als SYS gestartet. SQL> PURGE DBA_RECYCLEBIN; SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS; Jetzt kann der Database Upgrade Assistant gestartet werden. Zuvor sollte das Display nicht vergessen werden. oracle@racn1:~/ [db11203h1] dbua info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 11 / 17
Der DBUA prüft, ob alle Vorraussetzungen erfüllt wurden und verweist auf fehlende bzw. nicht durchgeführte Vorbereitungen. Bevor das Upgrade durchgeführt wird, zeigt der DBUA eine Zusammenfassung des Vorgangs. info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 12 / 17
Nach dem Upgradevorgang erscheint eine Zusammenfassung der einzelnen Vorgänge. info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 13 / 17
4.7 Check aller SQLNet- und ORATAB Dateien In der ORATAB müssen die Einträge geprüft werden. Wichtig ist hierbei, daß der DBUA die Einträge auf das neue Home gesetzt hat. Sofern eine Tnsnames.ora im alten Datenbankhome vorhanden ist, muss diese manuell in das neue DB-Home kopiert werden. Die SQLNet-Dateien Tnsames.ora, Listener.ora, Endpoints_listener.ora und Sqlnet.ora des neuen Grid Infrastrukturhomes, müssen geprüft und falls notwendig angepasst werden. Wichtig bei der Prüfung ist, daß alle genannten Dateien mit identischen Inhalt aus dem alten Home im neuen Home vorhanden sind. Die Endpoints_listener.ora ist für ältere Datenbanken und Clients < 11.2 wichtig und sorgt dafür, daß die SCAN Listener korrekt genutzt werden können. 4.8 Deinstallation der alten Homes Für die Deinstallation des Datenbank Homes muss das Tool DeInstall genutzt werden. Das Tool wird direkt aus dem alten Oracle Home aufgerufen, kann aber auch als Standalonevariante genutzt werden. Ein Link zu den Downloads und weitere Informationen zu Deinstall, sind in der My Oracle Support Note How To Deinstall/Uninstall Oracle Home In 11gR2 [ID 883743.1] beschrieben. Vor dem Aufruf des Tools sollten diverse Variablen entfernt werden. Hierbei ist besonders darauf zu achten, daß TNS_ADMIN entfernt wird. Achtung: Wenn TNS_ADMIN nicht entfernt wird, so besteht die Gefahr, daß der Listener aus dem neuen Home entfernt wird. Weitere Details können in der MyOracleSupport-Note 11.2 DEINSTALLER REMOVING LISTENERS RUNNING FROM OTHER ORACLE_HOMES [ID 1067622.1] eingesehen werden. Bei der Deinstallation des alten Grid Infrastrukturhomes soll laut My Oracle Support nicht das Deinstall-Tool genutzt werden. Details können in der Support-Note How to Deinstall Old Clusterware Home Once Upgrade to Newer Version is Complete [ID 1346305.1] eingesehen werden. Die Dateien sollen manuell gelöscht werden. Zuvor wird das Home mit dem Oracle Universal Installer aus dem Central Inventory entfernt. Nach dem Entfernen des Directories aus dem Central Inventory kann via OPatch geprüft werden, ob das Home noch registriert ist. Das Ergebnis der Prüfung muss negativ sein. info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 14 / 17
#### Manuelle Deinstallation Grid Infrastructure Home 11.2.0.2 unset ORACLE_BASE unset ORACLE_HOME unset ORACLE_SID unset TNS_ADMIN [oracle@racn1 ~]$ export ORACLE_HOME=/u00/app/oracle/gi11202h1 [oracle@racn1 ~]$ /u00/app/oracle/gi11202h1/oui/bin/runinstaller -detachhome -slient ORACLE_HOME=/u00/app/oracle/gi11202h1 Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 65538 MB Passed The inventory pointer is located at /etc/orainst.loc The inventory is located at /u00/app/oracle/orainventory 'DetachHome' was successful. [oracle@racn1 ~]$ /u00/app/oracle/gi11202h1/opatch/opatch lsinventory -all Invoking OPatch 11.2.0.1.6 Oracle Interim Patch Installer version 11.2.0.1.6 Copyright (c) 2011, Oracle Corporation. All rights reserved. Oracle Home : /u00/app/oracle/gi11202h1 Central Inventory : /u00/app/oracle/orainventory from : /etc/orainst.loc OPatch version : 11.2.0.1.6 OUI version : 11.2.0.2.0 Log file location : /u00/app/oracle/gi11202h1/cfgtoollogs/opatch/opatch2012-06-14_16-50-55pm.log List of Homes on this system: Home name= Ora11g_gridinfrahome2, Location= "/u00/app/oracle/gi11203h1" Home name= OraDb11g_home2, Location= "/u00/app/oracle/base/db11203h1" Inventory load failed... OPatch cannot load inventory for the given Oracle Home. Possible causes are: Oracle Home dir. path does not exist in Central Inventory Oracle Home is a symbolic link Oracle Home inventory is corrupted LsInventorySession failed: OracleHomeInventory gets null oraclehomeinfo OPatch failed with error code 73 #### Deinstallation Datenbank Home 11.2.0.2 via deinstall unset ORACLE_BASE unset ORACLE_HOME unset ORACLE_SID unset TNS_ADMIN oracle@racn1:~/ [dgrac11] /u00/app/oracle/base/db11202h1/deinstall/deinstall Danach sollten die Verzeichnisse eigenhändig als root gelöscht werden. Der Deinstaller entfernt nicht alle Dateien. info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 15 / 17
4.9 Sicher ist Sicher Nachdem alle Systeme erfolgreich gepatcht wurden, ist es anzuraten, auf jeder Maschine einen reboot durchzuführen. Stoppt und Startet die Clusterware erfolgreich, kann von einer erfolgreichen Patchprozedur gesprochen werden. 5. Fazit Die Upgradeprozedur funktioniert ohne Zwischenfälle. Die Anleitung ist mittlerweile verständlich Aufgebaut und gut lesbar. Wichtig hierbei ist eine saubere Vorbereitung. Das Upgrade sollte unbedingt in einer Testumgebung durchgeführt und entsprechend protokolliert werden. Generell ist ein Upgrade auf das aktuellste Patchset sinnvoll. Besonders die Clusterware profitiert von zahlreichen Bugfixes. Es ist nicht auszuschließen, daß neue Bugs auftauchen können (Stichwort Tests). Trivadis empfiehlt generell auf das Release des ersten PSU s zu warten und diesen gleich mit einzuspielen. Somit können bisher vorhandene erste Bugs umgangen werden. Weitere Details und Empfehlungen zum Thema PatchSetUpdates können in meinem Artikel Oracle PSU Sorgenfreies Patchen? nachgelesen werden. Link zu dem PSU Artikel: http://www.trivadis.com/uploads/tx_cabagdownloadarea/trivadis_patch_set_update_aka.pdf: Schlussendlich die Kernantwort: Die Clusterware wird erst dann auf einem Knoten gestoppt, wenn das Script Rootupgrade gestartet wird. Das Script wird so gestartet, das mindestens ein Knoten online ist und somit die Produktion verfügbar bleibt. Bei der Installation der neuen Datenbanksoftware müssen keine Prozesse gestoppt werden. Root.sh hat keinen Einfluss auf die laufenden Instanzen. Lediglich das Datenbankupgrade selbst verlangt nach einer Downtime. Die nötige Downtime sollte zuvor in einer Testumgebung genau bestimmt werden. Auch wenn die Clusterware Rolling Upgradeable installiert werden kann, empfiehlt es sich für diesen Arbeitsschritt eine Downtime einzuplanen Sicher ist Sicher. Da das eigentliche Datenbankupgrade während einer Downtime durchgeführt wird, ist es anzuraten, die gesamte Upgradeprozedur in einer globalen Downtime durchzuführen. Viel Erfolg beim Einsatz von Trivadis-Know-how wünscht Ihnen Andreas Karlin Trivadis GmbH Industriestrasse 4 Tel: +49-711-90 363230 DE-70565 Stuttgart Fax: +49-711-903 63 259 Internet: www.trivadis.com Mail: andreas.karlin@trivadis.com info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 16 / 17
Literatur und Links www.trivadis.com http://docs.oracle.com/cd/e11882_01/install.112/e22489/procstop.htm#babehgjg: How to Upgrade to Oracle Grid Infrastructure 11g Release 2 http://docs.oracle.com/cd/e11882_01/server.112/e23633/toc.htm: Oracle Database Upgrade Guide Note 1363369.1: Things to Consider Before Upgrading to 11.2.0.3 Grid Infrastructure/ASM Note 742060.1: Release Schedule of Current Database Releases Note 756671.1: Recommended Patches -- Oracle Database Note 161549.1: DB Server Patches for Microsoft Platforms Note 883743.1: How To Deinstall/Uninstall Oracle Home In 11gR2 Note 1067622.1: Deinstaller removing Listeners from other Oracle Homes Note 1346305.1: How to Deinstall Old Clusterware Home Once Upgrade to Newer Version is Complete Note 293369.1: Master Note For Opatch http://www.trivadis.com/uploads/tx_cabagdownloadarea/trivadis_patch_set_update_aka.pdf: Oracle PSU Sorgenfreies Patchen? Note 854428.1: Patch Set Updates for Oracle Products info@trivadis.com. www.trivadis.com. Info-Tel. 0800 87 482 347. Datum 05.09.2012. Seite 17 / 17