=====Anmerkungen zu Installation des Oracle Real Application Cluster 12c R1 auf einem Oracle Linux 7===== **Oracle 12c R1** **Erstellt: April 2015, überarbeitet April 2016** Bis auf den entscheidenden Unterschied, das mit der Release 2 der 12c, der Installer des Clustes aus einem kopierten Software Home aufgerufen wird, passen die folgenden Punkte auch noch gut zu einer Relase R2 Cluster installation, siehe auch => [[dba:install_rac_linux_12c_r2|Anmerkungen zu einer Installation vom Oracle Real Application Cluster 12c R2 auf Oracle Linux x64 7.3]]. Bzgl. Upgrade der Umgebung siehe [[dba:upgrade_12cr2_grid_linux_to_12cr2_grid|Oracle Clusterware 12c R1 auf Oracle 12c R2 mit minimaler Downtime upgraden - Rolling Upgrade auf 12c R2 Cluster]]. Die Größenanfordungen für die Managemnt DB scheint aber höher geworden zu sein ( min. mehr als 28GB!), soll dann dies mit auf die Voting Disks sollten diese also recht groß ausgelegt werden! Besser ist das dann wohl für diesen Bereich eine eigene Diskgroup mit ca. 50GB einzuplanen. === Übersicht über den generellen Aufbau der Umgebung === {{ :dba:rac:oracle_rac_12c_installation_overview_v01.png?550 | Übersicht Real Application Cluster 12c }} Als Betriebssystem wird Oracle Linux **7.2** eingesetzt. Die Anbindung der Lun's für die Cluster Platten erfolgt über das iSCSI Protokoll. D.h. die Test Umgebung wird unter VMware mit drei Maschinen abgebildet, zwei DB Knoten mit je 6 GB RAM / 2CPU und einen iSCSI Target mit 2GB RAM / 2CPU für die shared Disks (alle unter Oracle Linux 7). Zusätzlich kommt als DNS und Zeitserver ein Raspberry PI mit PowerDNS mit 512BM RAM zum Einsatz. ==Platzbedarf== Die Grid Software benötigt 6,9GB an Plattenplatz. == Interconnect == Für den Interconnect können ab Oracle 11g 11.2.0.2 auch zwei Netzwerk Interfaces verwendet werden, dann kann das Bonding der Netzwerkkarten auf den Interconnect Interface in einer produktiven Umgebung entfallen. Diese HAIP Feature soll unter anderen in dieser Testinstallation untersucht werden. Die Empfehlung von Oracle ist es auch zwei unterschiedliche Netzwerke und Netzwerkmasken für diese Interfaces zu verwenden. ==OCR/VOT Platten === Netto sind für das OCR Volume mit dem Grid Infrastructure Management Repository (4.5 GB + 300 MB Voting files + 400 MB OCR) bis 5 Knoten ca. 5.2 GB notwendig, für jeden weiteren Knoten müssen weitere 500 MB eingeplant werden. In dieser Installation sollen die Oracle Clusterware files (OCR und Voting files) und das Grid Infrastructure Management Repository redundant über die Oracle Software gespiegelt werden, dazu sind bei "external redundancy" zum Beispiel drei Platten a ~5.2 GB bzw. 6 GB notwendig. Siehe [[http://docs.oracle.com/database/121/CWLIN/storage.htm#CWLIN286|Table 7-5 Oracle Clusterware Minimum Storage Space Required by Redundancy Type]] in der Dokumentation. Auch liegt per Default die Cluster Management Datenbank auf diesen Platten! Das ist deutlich mehr als in der Version 11g, dort waren 2GB mehr als ausreichend und könnten bei Upgrade zu Problemen führen! == Container Database for Oracle Grid Infrastructure Management Repository (GIMR) == Nach einer 12.2.0.2 Installation wird automatisch eine Datenbank "MGMTDB" mit auf dem ersten Knoten angelegt. Die Datendateien liegen dabei mit auf den VOT Platten. In dieser Datenbank liegen auch die Cluster Health Monitor (CHM) Daten , die noch zuvor in der Version 11g in einer Berkley Datenbank lagen siehe auch [[dba:rac_ora_crf|Oracle Real Application Cluster Resource “ora.crf” – Der Cluster Health Monitor - 11g ]] Mehr zu der Oracle Grid Infrastructure Management Repository (GIMR) siehe => [[dba:oracle_rac_12c_gmir|Oracle Clusterware 12c - Grid Infrastructure Management Repository (GIMR)]] ---- === Ablauf der Installation === - Bereitstellen der notwendigen Software - Storage bereitstellen - DNS Server konfigurieren - Zwei Linux Server installieren und Betriebssystem für den Oracle RAC Betrieb optimieren - Oracle Clusterware Software unter dem User "grid" installieren - Oracle Datenbank Software unter dem User "oracle" installieren - Datenbank GPIDB aufsetzen - Aktuellen Patch Level „rolling“ (im laufenden Betrieb) einspielen ==== Bereitstellen der notwendigen Software ==== === Zertifizierung für Linux 7 überprüfen === Über das Support Portal die Zertifizierung überprüfen: * Oracle Database 12.1.0.2.0 is certified on Linux x86-64 Oracle Linux 7 ! * Oracle Clusterware 12.1.0.2.0 is certified on Linux x86-64 Oracle Linux 7 Damit steht einer Oracle RAC Installation auf Linux 7 in der Version 12c R1 nicht mehr im Wege. === Download der Software === Software über https://edelivery.oracle.com/ herunterladen. ==Database== * V46095-01_1of2 .zip - database Part 1 * MD5 080435A40BD4C8DFF6399B231A808E9A * V46095-01_2of2 .zip - database Part 2 * MD5 30F20EF9437442B8282CE3984546C982 ==Clusterware== * V46096-01_1of2.zip - Grid Part 1 * MD5 D793C2BA5DB9008B79077BFF8D27A219 * V46096-01_1of2.zip - Grid Part 2 * MD5 0E18A9ABB80427BAF18F85865B1ECD5D === Letzte Patche identifizieren und bereitstellen=== Siehe Support Dokument => Quick Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and Patchsets (Doc ID 1454618.1) ==Patchset Jan 2015== Patch 19954978: GRID INFRASTRUCTURE PATCH SET UPDATE 12.1.0.2.2 (JAN2015) für Linux x86 * p19954978_121020_Linux-x86-64.zip 872.9 MB (915338678 bytes) * MD5 05C9874AD19DE97328B3F4EAF91C3885 Java Patch Set * Oracle Recommended Patches -- "Oracle JavaVM Component Database PSU" (OJVM PSU) Patches (Doc ID 1929745.1) ACFS Patch für Linux 7 * Patch: 18321597 (Patch 18321597: ACFS SUPPORT FOR RHEL7 AND OL7 ) ==OPatch utility version 12.1.0.1.5 or later== Patch 6880880: OPatch patch of version 12.1.0.1.6 for Oracle software releases 12.1.0.x (JAN 2015) * p6880880_121010_Linux-x86-64.zip 49.8 MB (52216311 bytes) * MD5 12B0BD2668874C86F26694EAEFA02CD4 == Check Werkzeug ORAchk laden == Siehe folgende Note um ORAchk zu laden: * ORAchk - Health Checks for the Oracle Stack (Doc ID 1268927.2) == Cluster Verification Utility == Download unter : * http://www.oracle.com/technetwork/database/options/clustering/downloads/cvu-download-homepage-099973.html Die "LINUX x86-64 => Download Linux (x86-64) (December 2013)" ist tatsächlich die aktuelle Version auch für 12c, es kommt zum Schluss eine Version "12.1.0.1.0" zum Vorschein... Siehe auch http://www.hhutzler.de/blog/cluvfy/#impact-of-latest-cluvfy-version ---- ====Betriebssystem vorbereiten==== Für das Oracle RAC Cluster werden zwei Linux Server aufgesetzt und die Basis Konfiguration für eine solche Umgebung auf den Servern durchgeführt. ==Netzwerk Konfiguration== Ein Server für eine RAC Umgebung besitzt mindestens zwei Netzwerk Karten. Ein Oracle Real Application Cluster benötigt pro Host mindestens 4 IP Adressen: * Die physikalische IP Adressen - fest auf das Interface konfiguriert * Die VIP Adresse - IP Adresse wird vom Cluster verwaltet und auf das öffentliche Interface der Maschine im laufenden Cluster Betrieb gebunden * Eine SCAN IP Adresse - Wird später für den SCAN Listener verwendet * Eine IP Adresse auf einem privaten Netz für die Cluster Kommunikation Um den Interconnect auch Ausfallsicher ohne komplexes Network Bonding zu gestalten, können bis zur vier Interfaces für den privaten Interconnect hinterlegt werden, diese sollen sogar in unterschiedlichen Netzen liegen, siehe auch: * => [[dba:rac_redundant_interconnect|RAC Grid Infrastructure Redundant Interconnect]] * => [[https://docs.oracle.com/database/121/CWLIN/networks.htm#CIHBIBDF|5.3 Private Interconnect Redundant Network]] ==DNS== Die IP Adressen müssen alle über eine Namensauflösung vom den DB Knoten aufgelöst werden, ein Eintrag in die Host Datei ist dabei NICHT ausreichend. Die Interfaces Name müssen auf allen DB Knoten gleich lauten! Daher die neue Linux 7 Namensgebung auch wieder dekonfiguriert. Nach der Grundinstallation der Server ist vorerst nur per Ping auf die physikalische und die Interconnect IP Adresse(n) ansprechbar, die anderen Adressen werden erst zusammen mit der Cluster Software aktiv. Übersicht: {{ :dba:rac:oracle_rac_12c_network_overview_v01.png?600 | Netzwerk Übersicht Oracle Real Application Cluster }} Mit diesen Informationen wird ein entsprechenden Nameserver in der Umgebung aufgebaut, zum Beispiel mit dem DNS Server „PowerDNS“ siehe [[raspberry:pidora_power_dns|Raspberry PI als DNS Applicance für PowerDNS]] oder [[linux:power_dns|PowerDNS 4.x - Ein Alternative für BIND - Mit einer Oracle Datenbank als Backend verwenden]] Überprüfen, ob das alles auch richtig per DNS aufgelöst wird: #Domain abfragen mit: host -l pipperr.local | sort ns1.pipperr.local has address 192.168.178.100 pipperr.local name server ns1.pipperr.local. racdb01-haip.pipperr.local has address 10.1.1.191 racdb01-priv.pipperr.local has address 10.1.1.190 racdb01-vip.pipperr.local has address 10.10.10.192 racdb01.pipperr.local has address 10.10.10.190 racdb02-haip.pipperr.local has address 10.1.1.195 racdb02-priv.pipperr.local has address 10.1.1.194 racdb02-vip.pipperr.local has address 10.10.10.196 racdb02.pipperr.local has address 10.10.10.194 scanracdb.pipperr.local has address 10.10.10.200 scanracdb.pipperr.local has address 10.10.10.210 ==GNS == Alternativ lässt sich auch die Aufgabe des DNS Service für die Cluster relevanten Anfragen an einen eigenen Dienst im RAC, den GNS, delegieren. Nur die Domain wird im "großen" DNS hinterlegt, für diese wird dann der GNS als nächster zu fragende DNS Server hinterlegt. Siehe auch im Detail: * https://martincarstenbach.wordpress.com/2011/11/17/simplified-gns-setup-for-rac-11-2-0-2-and-newer/ * www.youtube.com/watch?v=qqUJFNByYp0 * https://docs.oracle.com/database/121/CWLIN/networks.htm#CWLIN214 * Node DNS and DHCP Setup Example for Grid Infrastructure GNS (Doc ID 946452.1) ==Installation== Beide Server müssen dabei möglichst identisch aufgesetzt werden. * => [[linux:linux_7_system_grundeinstellungen_oracle_datenbank_rac|Ein Oracle Linux 7 Basis System als Grundlagen für eine Oracle Clusterware und Datenbank Installation vorbereiten]] Ist der erste Server soweit wie beschrieben aufgesetzt, kann die Maschine geklont und der Klone als zweite RAC Umgebung angepasst werden. Danach kann der SSH Key der User oracle, grid und root unter den Maschinen verteilt werden. ==SSH Key einrichten == siehe [[linux:vi#ssh_key_austausch|SSH Key's austauschen]] als root, grid, oracle User #generate key on every node ssh-keygen -t rsa #self cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh racdb01 #key on 2 ssh racdb02 ssh-keygen -t rsa # Copy public key from one node to the other #2 to 1 ssh racdb02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #1 to 2 ssh racdb02 ssh racdb01 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #self cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ssh racdb02 Testen auf JEDEM Knoten mit: ssh -o NumberOfPasswordPrompts=0 -o StrictHostKeyChecking=no -l $USER racdb01 "echo check ssh connect" ssh -o NumberOfPasswordPrompts=0 -o StrictHostKeyChecking=no -l $USER racdb02 "echo check ssh connect" ---- ====Storage bereitstellen==== Für den Betrieb des Clusters werden gemeinsame Platten benötigt. Für diesen Test werden die Lun's als iSCSI Ziele realisiert. Für die Vorbereitung des Storage Servers siehe auch: * => [[vmware:iscsi_target_for_shared_disks#auf_dem_rac_knoten_asm_platte_einrichten|iSCSI Target für das Bereitstellen von Cluster Platten in VMWare unter Linux 7]] == ASM Library installieren == **User: root** yum install oracleasm-support == ASM konfigurieren auf allen Knoten == **User: root** Damit der Grid User UND der Oracle User auf die Platten zugreifen, die Gruppe asmadmin gewählt! oracleasm configure -i Default user to own the driver interface []: grid Default group to own the driver interface []: asmadmin Scan for Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: done Ist Multipatching im Einsatz muss nun des Scan bei start der ASM Library auf die Multipath Pfade eingeschränkt werden: vi /etc/sysconfig/oracleasm # ORACLEASM_SCANORDER: Matching patterns to order disk scanning ORACLEASM_SCANORDER="dm" # ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan ORACLEASM_SCANEXCLUDE="sd" siehe auch http://www.oracle.com/technetwork/topics/linux/multipath-097959.html == ASM starten == **Als user root!** oracleasm init == Linux I/O Scheduler für Oracle setzen == **User: root** Vorgeschlagener Scheduler von Oracle "Deadline disk I/O scheduler" #prüfen ob bereits ok cat /sys/block/${ASM_DISK}/queue/scheduler noop [deadline] cfq #setzen bei Bedarf über Script mit: echo deadline > /sys/block/${ASM_DISK}/queue/scheduler In meiner Umgebung bereits von der ASM Lib so vorbelegt und damit ok. ---- ====Oracle Clusterware Software unter dem User "grid" installieren==== Zuerst die Software auf dem ersten Host auspacken und mit dem Cluster Verification Utility das Betriebssystem und die Konfiguration der Umgebung überprüfen. Testen ob „unzip“ zur Verfügung steht und bei Bedarf als root mit "yum install zip unzip" nachinstallieren. == Software == **User grid ** Verzeichnis „/home/grid/install/grid2 auf dem ersten Knoten anlegen und dort die Clusterware Software mit md5sum prüfen (Ergebnis genau prüfen um Download Fehler zu vermeiden!) und auspacken: mkdir /home/grid/install/grid #Software Pakete V46096-01_1of2.zip und V46096-01_2of2.zip md5sum V46096-01_1of2.zip d793c2ba5db9008b79077bff8d27a219 V46096-01_1of2.zip md5sum V46096-01_2of2.zip 0e18a9abb80427baf18f85865b1ecd5d V46096-01_2of2.zip unzip V46096-01_1of2.zip unzip V46096-01_2of2.zip # die Software wird in das Verzeichnis „grid“ ausgepackt Das unbedingt unter dem OS User "grid" durchführen! Auf dem Installationsmedium liegt das cvuqdisk RPM für das Cluster Verification Utility, ohne das Packet kann clufy nicht die gesharten Platten erkennen. == cvuqdisk RPM for Linux == **User:root** Hier wieder als root user anmelden und auf BEIDEN Knoten installieren! su - cd /home/grid/install/grid/rpm CVUQDISK_GRP=oinstall; export CVUQDISK_GRP yum install –nogpgcheck cvuqdisk-1.0.9-1.rpm #Install on second node scp cvuqdisk-1.0.9-1.rpm root@racdb02:/tmp ssh racdb02 CVUQDISK_GRP=oinstall; export CVUQDISK_GRP yum install –nogpgcheck /tmp/cvuqdisk-1.0.9-1.rpm rm /tmp/cvuqdisk-1.0.9-1.rpm exit #prüfen ob auch wirklich installiert: yum list | grep cvuqdisk === Umgebung prüfen === Mit dem "Cluster Verification Utility" wird die Umgebung genauestens überprüfen, es dürfen keinerlei Fehler, egal wie nebensächlich die Fehler scheinen, übrig bleiben. Können diese Testes erfolgreich und positiv abgeschlossen werden, kann meist die Software dann problemlos und ohne große Mühe installiert werden! == cluvfy Check Nr. 1 - Erreichbarkeit der Knoten "comp nodereach" == **User grid ** cd cd /home/grid/install/grid ./runcluvfy.sh comp nodereach -n racdb01,racdb02 -verbose Verifying node reachability Checking node reachability... Check: Node reachability from node "racdb01" Destination Node Reachable? ------------------------------------ ------------------------ racdb01 yes racdb02 yes Result: Node reachability check passed from node "racdb01" Verification of node reachability was successful. == cluvfy Check Nr. 2 - Netzwerk "comp nodecon" == cd /home/grid/install/grid ./runcluvfy.sh comp nodecon -n racdb01,racdb02 -verbose == cluvfy Check Nr. 3 - Shared Disks "comp ssa" == Dieser Test funktioniert in der aktuellen Version nicht wie geplant, für diesen Test muss die separat erhältliche Download Version verwendet werden. Test mit der Version im Gird Install Verzeichnis: cd /home/grid/install/grid ./runcluvfy.sh comp ssa -n racdb01,racdb02 -verbose No shared storage found Shared storage check failed on nodes "racdb01,racdb02" Verification of shared storage accessibility was unsuccessful on all the specified nodes. #Test mit Device Angabe ergibt den Fehler: ./runcluvfy.sh comp ssa -n racdb01,racdb02 -verbose -s /dev/oracleasm/disks/DATA01 Verifying shared storage accessibility Checking shared storage accessibility... ERROR: /dev/oracleasm/disks/DATA01 PRVG-11502 : Path "/dev/sdb1" of type "Disk" is not suitable for usage as RAC database file for release "12.1". Supported storage types are "NFS, ASM Disk Group, OCFS2, VXFS, ACFS". Shared storage check failed on nodes "racdb01,racdb02" Verification of shared storage accessibility was unsuccessful on all the specified nodes. #test der Platten als root blkid | grep asm /dev/sdb1: LABEL="DATA01" TYPE="oracleasm" oracleasm listdisks DATA01 Mit der eigenständig heruntergeladenen clufy Version kann aber der Test erfolgreich durchgeführt werden! == cluvfy Check Nr. 4 - Hard - Software "stage -post hwos" == Hard- und Software Voraussetzungen prüfen lassen: cd /home/grid/install/grid ./runcluvfy.sh stage -post hwos -n racdb01,racdb02 -verbose == cluvfy Check Nr. 5 - Prerequists für die Cluster Installation "stage -pre crsinst" == Voraussetzungen für die gesamte Installation prüfen: cd /home/grid/install/grid ./runcluvfy.sh stage -pre crsinst -n racdb01,racdb02 -verbose Problem: PRVE-0426 : The size of in-memory file system mounted as /dev/shm is "2101248k" megabytes which is less than the required size of "2048" megabytes on node "" Kann ignoriert werden => see Support Note "The size of in-memory file system mounted at /dev/shm is "24576" megabytes which does not matccd ..h the size in /etc/fstab as "0" megabytes (Doc ID 1918620.1)" Alle diese Tests müssen erfolgreich und ohne Fehler abgeschlossen werden! === Software Installation starten === **User: grid ** Darauf achten das das X Forwarding auch funktioniert! Testen mit: # vom Rechner mit der X Oberfläche auf den DB Knoten zugreifen ssh -X racdb01 #Display setzen oder XAuth konfigurieren # testen mit: /usr/bin/xdpyinfo #Muss die Parameter des Remote X zeigen cd /home/grid/install/grid ./runInstaller Problem: [INS-30515] Insufficient space available in the selected disks. => VOTING Platten zu klein gewählt! => d.h. für die Version 12c ca. ~ 6GB pro Lun einplanen. Ablauf: ^Schritt^Bemerkung^Screenshot^ |1|Install Option: "Install and Configure"| {{ :dba:rac:rac_12c_install_v01.png?400 | 12c - Install Screen 1}}| |2|Configure a Standard Cluster| {{ :dba:rac:rac_12c_install_v02.png?400 |12c - Install Screen 2}}| |3|Advanced Installation| {{ :dba:rac:rac_12c_install_v03.png?400 |12c - Install Screen 3}}| |4|Product Language - English| {{ :dba:rac:rac_12c_install_v04.png?400 |12c - Install Screen 4}}| |5|Cluster Name => "racdbCluster" + Scan Listener DNS Name => "scanracdb.pipperr.local" + Scan Port => 1521" - Kein GNS| {{ :dba:rac:rac_12c_install_v05.png?400 |12c - Install Screen 5}}| |6|Zweiten Knoten hinzufügen (racdb02.pipperr.de - racdb02-vip.pipperr.de )| {{ :dba:rac:rac_12c_install_v06_0.png?400 |12c - Install Screen 6}} {{ :dba:rac:rac_12c_install_v06_1.png?400 |12c - Install Screen 6}}| |7|Netzwerk Interfaces zuordnen| {{ :dba:rac:rac_12c_install_v07.png?400 |12c - Install Screen 7}}| |8|Use ASM for Standard Storage | {{ :dba:rac:rac_12c_install_v08.png?400 |12c - Install Screen 8}}| |9|ASM Platte für OCR/VOT anlegen, dazu den Discovery Patch anpassen auf "/dev/oracleasm/disk/*" , die drei VOT Platten auswählen und den DISK Namen in "VOT" ändern | {{ :dba:rac:rac_12c_install_v09.png?400 |12c - Install Screen 9}} {{ :dba:rac:rac_12c_install_v09_01.png?400 |12c - Install Screen 9}}| |10|ASM Passwörter setzen | {{ :dba:rac:rac_12c_install_v10.png?400 |12c - Install Screen 10}}| |11|Kein IPMI verwenden | {{ :dba:rac:rac_12c_install_v11.png?400 |12c - Install Screen 11}}| |12|Oracle Enterprise Manager ausswählen falls vorhanden | {{ :dba:rac:rac_12c_install_v12.png?400 |12c - Install Screen 12}}| |13|Gruppen auswählen|{{ :dba:rac:rac_12c_install_v13.png?400 |12c - Install Screen 13}}| |14|Oracle Base => "/opt/oracle" und Grid Home => "/opt/12.1.0.2/grid"| {{ :dba:rac:rac_12c_install_v14.png?400 |12c - Install Screen 14}}| |15|Directory für das Oracle Inventory auswählen => "/opt/oraInventory"|{{ :dba:rac:rac_12c_install_v15.png?400 |12c - Install Screen 15}}| |16|Automatische Konfiguration - abgewählt da breits alles vorbereitet| {{ :dba:rac:rac_12c_install_v16.png?400 |12c - Install Screen 16}}| |17|Überprüfen der Umgebung - Ergebnisse bewerten und Schalter für Ignore All setzen, wenn soweit ok und weiteren Warnhinweis mit "Yes" bestätigen| {{ :dba:rac:rac_12c_install_v17.png?400 |12c - Install Screen 17}}| |18|Summary - Response File speichern| {{ :dba:rac:rac_12c_install_v18.png?400 |12c - Install Screen 18}}| |19|Installation läuft, Root Script Hinweis beachten und die Scripte je erst auf 1 und 2 ausführen. Nicht parallel! Erst die aus dem OraInventory auf 1 und dann auf 2, dann root.sh auf 1, das kann ca 5. bis 10 Minuten dauern bis je nach Leistungsfähigkeit der Umgebung. Folgende Meldung zeigt den Erfolg an: "2015/03/22 14:37:54 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded", danach auf Knoten 2 starten. Das eigentliche Cluster wird mit diesem Schritt angelegt, schläft das fehl, kann nicht weiter installiert werden bis der Fehler behoben ist! | {{ :dba:rac:rac_12c_install_v19.png?400 |12c - Install Screen 19}} {{ :dba:rac:rac_12c_install_v20.png?400 |12c - Install Screen 19}}| | |Konfigurations-Assistenten laufen durch, je nach System kann das etwas dauern, in dieser VM Umgebung ~ 10minuten|{{ :dba:rac:rac_12c_install_v19_01.png?400 | 12c - Install Screen 19}}| | |Fehler Meldung mit dem Oracle Cluster Verification Utility => Kann erstmal ignoriert werden, wir hatte ja schon zuvor Fehler mit dem Tool bzgl. Erkennen der ASM Platten und NTP | {{ :dba:rac:rac_12c_install_v19_02.png?400 | 12c - Install Screen 19 - clufy Fehler}}| |20|Abschluss der Installation, Fehler vom Schritt zuvor mit YES bestätigen und Fenster mit Close schließen | | **Anmerkungen** **Schritt Überprüfung** Bei der Überprüfung der Umgebung im Schritt 17 konnten folgende Ergebnisse nicht nachvollzogen werden: * Checks whether /dev/shm is mounted correctly as temporary file system * => mit df - h überprüft ist da * This test verifies the Single Client Access Name configuration * => 3 Wird vom Test Verlangt, in einem zwei Knoten Cluster * This task verifies cluster time synchronization on clusters that use Network Time Protocol (NTP) * => ntp läuft! * This is a prerequisite check to verify that the specified devices meet the requirements for ASM * => Platten ok, test mit andere Clufy Version erfolgreich * This is a prerequisite condition to test whether sufficient total swap space is available on the system * => OK für ein Test System * This is a prerequisite condition to test whether the system has at least 4GB (4194304.0KB) of total physical memory * => ok für ein testsystem **Schritt root.sh** Da root.sh einen Fehler ausgibt (sh: /bin/netstat: No such file or directory ) ist doch die Installation der Linux 6 Tools zu empfehlen (yum install net-tools)! **Probleme bei der ersten Installation:** Das Root Script auf dem ersten Knoten bricht mit folgendem Fehler ab: ... ASM created and started successfully. Disk Group VOT mounted successfully. 2015/03/15 16:58:46 CLSRSC-12: The ASM resource ora.asm did not start 2015/03/15 16:58:47 CLSRSC-258: Failed to configure and start ASM Died at /opt/12.1.0.2/grid/crs/install/crsinstall.pm line 2017. The command '/opt/12.1.0.2/grid/perl/bin/perl -I/opt/12.1.0.2/grid/perl/lib -I/opt/12.1.0.2/grid/crs/install /opt/12.1.0.2/grid/crs/install/rootcrs.pl ' execution failed Alert log der ASM Instance geprüft, nichts auffälliges (unter $ORACLE_BASE/diag ). Nochmals versuchen, dazu zuvor wieder deconfigurieren mit dem Perl aus dem Oracle Home!: cd /opt/12.1.0.2/grid/crs/install/ /opt/12.1.0.2/grid/perl/bin/perl rootcrs.pl -verbose -deconfig -force Wird das Perl aus dem OS verwendet, trifft man auf den folgenden Bug "rootcrs.pl/roothas.pl Fails With "Can't locate Env.pm" (Doc ID 1925577.1)" Im ersten Schritt vermutet, dass die ASM Instance nicht schnell genug startet, Leistung der VM Maschinen erhöht (6GB RAM + 2 CPU) und nochmals installiert, jetzt lief die Installation erfolgreich durch! Troubleshooting : * http://www.hhutzler.de/blog/troubleshooting-clusterware-startup-problems/ * http://www.hhutzler.de/blog/troubleshooting-clusterware-startup-problems-dtrace/ === Umgebung und Logfiles des Clusters prüfen === Im Anschluss die Umgebung überprüfen: export ORACLE_HOME=/opt/12.1.0.2/grid/ ./crsctl check cluster CRS-4537: Cluster Ready Services is online CRS-4529: Cluster Synchronization Services is online CRS-4533: Event Manager is online cd $ORACLE_HOME/bin ./crs_stat -t -v ==Logfiles mit adrci prüfen== export ADR_BASE=/opt/oracle export ORACLE_HOME=/opt/12.1.0.2/grid $ORACLE_HOME/bin/adrci adrci adrci> show alert .. 3: diag/crs/racdb01/crs ... Please select option: 3 #Logs auf Auffälligkeiten Prüfen see: * 12.1.0.2 Oracle Clusterware Diagnostic and Alert Log Moved to ADR (Doc ID 1915729.1) == Log File Größe vergrößern == Kontrolle: $ORACLE_HOME/bin/crsctl get css logfilesize CRS-4676: Successful get logfilesize 52428800 for Cluster Synchronization Services. Vergrößern (auf beiden Knoten durchführen!): **User: root** su - export ORACLE_HOME=/opt/12.1.0.2/grid $ORACLE_HOME/bin/crsctl set css logfilesize 157286400 CRS-4686: Successful set logfilesize 157286400 for Cluster Synchronization Services. ---- === Oracle Umgebung mit ORAchk überprüfen === Nach der Grid Installation die Umgebung mit "ORAchk" überprüfen, siehe Support Node "ORAchk - Health Checks for the Oracle Stack (Doc ID 1268927.2)" Ablauf im Detail siehe [[dba:oracle_rac_12c_orachk|Oracle 12c RAC Umgebung mit ORAchk überprüfen]] Die bei diesen Test erzeugten Berichte auswerten und die Probleme beheben. ---- ==== Umgebungsskript ==== Je nach Geschmack empfiehlt es sich ein Script unter den User grid zu setzen, das die Umgebung einstellt und einen schnellen Zugriff auf oft benötigte Dateien ermöglicht. Wie => [[dba:arbeits_umgebung| Arbeitsumgebung setzen und Einrichten unter Windows und Linux]] Ich verwende dazu folgendes Script [[https://orapowershell.codeplex.com/SourceControl/latest#bash/.profile|.profile]] und folgende [[https://orapowershell.codeplex.com/SourceControl/latest#bash/.bash_profile|.bash_profile]] * Script ".profile" nach "~/" Home des Grid Users kopieren * den Aufruf in die ".bash_profile" eintragen bzw. ".bash_profile" ersetzen * Verzeichnis ~/sql anlegen und zum Beispiel die SQL Script von [[https://orapowershell.codeplex.com| Gunther SQL Scripte]] dorthin kopieren * Auf den anderen Knoten verteilenssh racdb02 mkdir ~/sql scp .bash_profile .profile racdb02:$PWD/ scp *.* racdb02:$PWD/ * neu anmelden bzw. mit ". .bash_profile" Umgebung neu sourcen/einlesen * Setup wird automatisch durchgeführt, damit muss die Nummer des aktuellen Knoten (für den ersten Knoten die 1 angegeben werden!) * Mit "setdb" kann nun die vorgefunden Umgebung gesetzt werden (ORACLE_SID/ORALCE_HOME/Pfade etc.){{:dba:rac:rac_12c_set_enviroment_01.png|Umgebung mit eigenen Script einstellen}} Auf beiden Knoten einrichten! ---- ====Listener==== **User: grid** Der Oracle Listener läuft im Cluster, diesen prüfen und optimieren. == SQLNET.EXPIRE_TIME == Auf JEDEM knoten die Datei "sqlnet.ora" anpassen: vi $ORACLE_HOME/network/admin/sqlnet.ora # Parameter for the listner, check after 30min if connection is still alive SQLNET.EXPIRE_TIME = 30 == Scan Listener überprüfen == srvctl config scan == Security == Siehe auch: * http://externaltable.blogspot.de/2014/01/clusterware-12c-and-restricted-service.html ---- ====Reboot Test ==== Test ob nach einem Boot das Cluster sauber startet und alles soweit funktioniert. #ersten Knoten stoppen reboot #30s warten #zweiten Knoten stoppen reboot Mal eine kurze Pause einlegen, ca. 2-5 Minuten warten, damit das Cluster Zeit hat alles zu starten. Prüfen: #Umgebung setzen setdb #prüfen (mit alten Werkzeug .-) ) crs_stat -t -v {{:dba:rac:rac_12c_check_cluster_01.png?400| 12c - Scheller Check mit alten Tools crs_stat -t -v .-) }} ---- ====Weitere ASM Diskgroups anlegen==== **User: grid** Vor der Datenbank Installation die ASM Disk Groups anlegen: {{:dba:rac:rac_12c_db_disk_layout_v01.png| Disk Layout}} Im ersten Schritt werden in dieser Umgebung je nur eine ASM Platte per Disk Group hinzugefügt, die andere Platten werden je nach Bedarf erst im laufenden Betrieb hinzugefügt. ==Mit dem ASM Wizard== #umgebung auf das Grid Home setzen #in meiner Umgebung mit setdb 1 asmca & Auf den Reiter "Disk Groups" wechseln und die Disk Group "REDOA" anlegen * {{:dba:rac:rac_12c_setup_asm_disks_v01.png?400|asmca starten }} * {{:dba:rac:rac_12c_setup_asm_disks_v03.png?400|Asm Disk Group anlegen}} * Für die Redo Platten verbleibt die ASM Stripe Size auf 1MB (kann über die "Advanced Options" eingestellt werden) == Per SQL Script == # Umgebung auf die ASM Instance setzen # in meiner Umgebung mit setdb 1 sqlplus / as sysasm create diskgroup redob external redundancy disk '/dev/oracleasm/disks/red02' attribute 'au_size'='1m' ; create diskgroup data external redundancy disk '/dev/oracleasm/disks/data01' attribute 'au_size'='4m' ; create diskgroup fra external redundancy disk '/dev/oracleasm/disks/data02' attribute 'au_size'='1m' ; # auf zweiten Knoten an der ASM Instance anmelden und die Platte dort auch mounten ssh racdb02 # Umgebung auf die ASM Instance setzen # in meiner Umgebung mit setdb 1 sqlplus / as sysasm alter diskgroup REDOB mount; alter diskgroup FRA mount alter diskgroup DATA mount #prüfen ob die Platte im Rac Sichtbar ist: crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.REDOB.dg ora....up.type ONLINE ONLINE racdb01 #OK! siehe [[https://docs.oracle.com/database/121/OSTMG/asmdiskgrps002.htm#OSTMG10040| 12c Doku - Using the CREATE DISKGROUP SQL Statement]] == Mit asmcmd prüfen== asmcmd ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 4194304 20476 20360 0 20360 0 N DATA/ .... ASMCMD> iostat Group_Name Dsk_Name Reads Writes VOT VOT_0000 133532160 86607872 ... ---- ==== ACFS Filesystem für die Logs anlegen ==== ==ASM Disk im OS anlegen == **User:root** #Platten anzeigen lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdc 8:32 0 20G 0 disk └─sdc1 8:33 0 20G 0 part #prüfen ob die Platte noch frei ist oracleasm querydisk -v /dev/sdc1 Device "/dev/sdc1" is not marked as an ASM disk #ASM Disk anlegen oracleasm createdisk ACFS01 /dev/sdc1 Writing disk header: done Instantiating disk: done #auf jedem knoten erkennen lassen oracleasm scandisks; oracleasm listdisks ssh racdb02 oracleasm scandisks; oracleasm listdisks == ASM Diskgroup ACFS anlegen == **User:grid** # Umgebung auf die ASM Instance setzen # in meiner Umgebung mit setdb 1 sqlplus / as sysasm create diskgroup ACFS external redundancy disk '/dev/oracleasm/disks/ACFS01'; # auf zweiten Knoten an der ASM Instance anmelden und die Platte dort auch mounten ssh racdb02 # Umgebung auf die ASM Instance setzen # in meiner Umgebung mit setdb 1 sqlplus / as sysasm alter diskgroup ACFS mount; == ACFS Einrichten == **Zertifzierung prüfen** siehe ⇒ Node „ACFS Support On OS Platforms (Certification Matrix). (Doc ID 1369107.1)“ Daraus folgt zur Zeit 03.2015: * Für Linux 7 => 12.1.0.2.1 + Patch: 18321597 (Patch 18321597: ACFS SUPPORT FOR RHEL7 AND OL7 ) Update - April 2016 - Patch ist nun bereits im PSU für Januar 2016 enthalten,daher hier gleich diesen einspielen! Für die Installation muss auch OPatch auf jeden Knoten aktualisiert werden. Beide Archive unter den User Grid auf den ersten Knoten herunterladen, zum Beispiel nach /home/grid/install/patch **Patch herunterladen und prüfen** cd /home/grid/install/patch md5sum p18321597_121021forACFS_Linux-x86-64.zip bc62e74c58ab36018f5bfb4835921287 p18321597_121021forACFS_Linux-x86-64.zip #=> Mit Wert vom Support Portal vergleichen MD5 BC62E74C58AB36018F5BFB4835921287 OK! md5sum p6880880_121010_Linux-x86-64.zip 12b0bd2668874c86f26694eaefa02cd4 p6880880_121010_Linux-x86-64.zip **Installieren** # # auf jedem Knoten OPatch aktualisieren und den Patch einspielen! # # Zuvor als root Schreibrechte der oinstall Gruppe testen! # # falls keine Rechte Schreibrecht für die oinstall Gruppe auf das Grid Home Verzeichnis einrichten! #als Root chmod g+w $ORACLE_HOME ssh racdb02 chmod g+w $ORACLE_HOME #als grid User # Grid Oracle Home setzen $ORACLE_HOME/OPatch/opatch version OPatch Version: 12.1.0.1.3 cd /home/grid/install/patch mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_old unzip p6880880_121010_Linux-x86-64.zip -d $ORACLE_HOME $ORACLE_HOME/OPatch/opatch version OPatch Version: 12.1.0.1.6 ssh racdb02 mkdir -p /home/grid/install/patch scp p6880880_121010_Linux-x86-64.zip racdb02:/home/grid/install/patch ssh racdb02 #nun gleiche Schritte wie auf Node 1 um OPatch auszutauschen mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_old unzip p6880880_121010_Linux-x86-64.zip -d $ORACLE_HOME $ORACLE_HOME/OPatch/opatch version # #Patch aber auch gleich wieder löschen! rm p6880880_121010_Linux-x86-64.zip Für das Auto Einspielen vom ACFS Patch die Antwort Datei auf Knoten 1 erstellen: cd /home/grid/install/patch ########################################## #OCM Configuration anlegen $ORACLE_HOME/OPatch/ocm/bin/emocmrsp OCM Installation Response Generator 10.3.7.0.0 - Production Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. Provide your email address to be informed of security issues, install and initiate Oracle Configuration Manager. Easier for you if you use your My Oracle Support Email address/User Name. Visit http://www.oracle.com/support/policies.html for details. Email address/User Name: You have not provided an email address for notification of security issues. Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: Y The OCM configuration response file (ocm.rsp) was successfully created. ######################################### #Datei ocm.rsp wurde nun unter /home/grid/install/patch angelegt Patch als Grid User auspacken und als root User auf JEDEN Knoten einspielen. Erst auf Knote 1 und dann die gleichen Schritte auf dem Knoten 2! cd /home/grid/install/patch #Patch auspacken als Grid User unzip p18321597_121021forACFS_Linux-x86-64.zip -d ./acfs_patch/ #Auf den zweiten Knoten kopieren und dort auch auspacken scp p18321597_121021forACFS_Linux-x86-64.zip racdb02:/home/grid/install/patch scp ocm.rsp racdb02:/home/grid/install/patch ssh racdb02 unzip /home/grid/install/patch/p18321597_121021forACFS_Linux-x86-64.zip -d /home/grid/install/patch/acfs_patch/ #Erste Auf Knoten 1 ########################################## #Als user root automatisch im Cluster installieren export ORACLE_HOME=/opt/12.1.0.2/grid export PATH=$PATH:$ORACLE_HOME/OPatch opatchauto apply /home/grid/install/patch/acfs_patch/18321597 -ocmrf /home/grid/install/patch/ocm.rsp #Cluster auf dem lokalen Knoten wird gestoppt und gepatched OHNE weitere Rückfragen! OPatch Automation Tool Copyright (c)2014, Oracle Corporation. All rights reserved. OPatchauto Version : 12.1.0.1.6 OUI Version : 12.1.0.2.0 Running from : /opt/12.1.0.2/grid opatchauto log file: /opt/12.1.0.2/grid/cfgtoollogs/opatchauto/18321597/opatch_gi_2015-03-28_18-32-25_deploy.log Parameter Validation: Successful Configuration Validation: Successful Patch Location: /home/grid/install/patch/acfs_patch/18321597 Grid Infrastructure Patch(es): 18321597 It does not contain any DB patch Patch Validation: Successful Grid Infrastructure home: /opt/12.1.0.2/grid Performing prepatch operations on CRS Home... Successful Applying patch(es) to "/opt/12.1.0.2/grid" ... Patch "/home/grid/install/patch/acfs_patch/18321597/18321597" successfully applied to "/opt/12.1.0.2/grid". Performing postpatch operations on CRS Home... Successful Apply Summary: Following patch(es) are successfully installed: GI Home: /opt/12.1.0.2/grid: 18321597 opatchauto succeeded. #Nun auch auf Knoten 2 # # gleicher Ablauf wie zuvor! export ORACLE_HOME=/opt/12.1.0.2/grid export PATH=$PATH:$ORACLE_HOME/OPatch opatchauto apply /home/grid/install/patch/acfs_patch/18321597 -ocmrf /home/grid/install/patch/ocm.rsp Überprüfen auf jeden Knoten: # # User grid # $ORACLE_HOME/OPatch/opatch lsinventory #+ACFS Testen: #Als Grid acfsdriverstate supported ACFS-9200: Supported #Als Root User! [root@racdb01 ~]# /opt/12.1.0.2/grid/bin/acfsdriverstate version ACFS-9325: Driver OS kernel version = 3.8.13-35.3.1.el7uek.x86_64(x86_64). ACFS-9326: Driver Oracle version = RELEASE. Wieder aufräumen und auf beiden Knoten die Patche löschen, die ocm.rsp aber stehen lassen! cd /home/grid/install/patch rm -rf acfs_patch/ p18321597_121021forACFS_Linux-x86-64.zip p6880880_121010_Linux-x86-64.zip Ist der Treiber installiert kann das weitere Einrichten kerfolgen: Siehe dazu auch => [[dba:rac_asm_acfs_filesystem#acfs_filesystem_auf_knoten_1_einrichten|Das Oracle ACFS Filesystem auf einer ASM Umgebung für 11g verwenden]] === ACFS Filesystem auf Knoten racdb01 einrichten=== ==Ein ASM Volume in einer ASM Disk Gruppe anlegen== Als User mit SYSASM Rechten über asmcmd anmelden: #Anlegen ASMCMD> volcreate -G ACFS -s 15G voldiag1 Möglicher Fehler: ORA-15032: not all alterations performed ORA-15221: ASM operation requires compatible.asm of 11.2.0.0.0 or higher (DBD ERROR: OCIStmtExecute) Lösung: ompatible.asm höher stetzen und es erneut versuchen: ASMCMD>setattr -G ACFS compatible.asm 12.1 ASMCMD> volcreate -G ACFS -s 15G voldiag1 ==Volume Namen ermitteln== #Anzeigen lassen: ASMCMD> volinfo -G ACFS voldiag1 Diskgroup Name: ACFS Volume Name: VOLDIAG1 Volume Device: /dev/asm/voldiag1-442 State: ENABLED Size (MB): 15360 Resize Unit (MB): 64 Redundancy: UNPROT Stripe Columns: 8 Stripe Width (K): 1024 Usage: Mountpath: Auf den Namen des Volume Device achten! ==Filesystem auf dem Volume anlegen== Als root: /sbin/mkfs -t acfs /dev/asm/voldiag1-442 mkfs.acfs: version = 12.1.0.2.0 mkfs.acfs: on-disk version = 39.0 mkfs.acfs: volume = /dev/asm/voldiag1-442 mkfs.acfs: volume size = 16106127360 ( 15.00 GB ) mkfs.acfs: Format complete. ==Filesystem registrieren== Als root: /sbin/acfsutil registry -a /dev/asm/voldiag1-442 /opt/oracle/diag_acfs acfsutil registry: mount point /opt/oracle/diag_acfs successfully added to Oracle Registry ==Filesystem mounten== Als root: /bin/mount -t acfs /dev/asm/voldiag1-442 /opt/oracle/diag_acfs chown -R grid:dba /u01/app/oracle/diag_acfs #All oracle stuff on the system schould use it chmod 777 /u01/app/oracle/diag_acfs ==Fileystem prüfen== Als Grid User: cd /u01/app/oracle/diag_acfs touch test.txt == Auf dem zweiten Knoten verwenden== Nach dem Anlegen auf Knote 1 ist auch alles bereits auf Knoten 2 verfügbar, evlt. ein 12c Feature? In der letzen 11g Installation musste das FS von Hand gemounted werden. == Beide RAC Knoten neu starten== Beide Server neu starten, um zu prüfen ob das Filesystem danach auch noch automatisch zur Verfügung steht. Etwas warten bis wirklich alles gestartet ist und dann prüfen: acfsutil info fs /opt/oracle/diag_acfs ACFS Version: 12.1.0.2.0 on-disk version: 39.0 flags: MountPoint,Available mount time: Sat Mar 28 20:35:35 2015 allocation unit: 4096 volumes: 1 total size: 16106127360 ( 15.00 GB ) total free: 15994208256 ( 14.89 GB ) file entry table allocation: 49152 primary volume: /dev/asm/voldiag1-442 .... Tip : * Vergrößen mit "acfsutil size **+**20G /u01/app/oracle/diag_acfs" falls auf der ASM Diskgroup noch Platz ist bzw. dort neue asm disk hinzufügen. * Snapshot können von diesem Filesystem erzeugt werden "acfsutil snap create ...." ---- ====Oracle Datenbank Software unter dem User "oracle" installieren==== Die Datenbank Software wird unter dem User "oracle" installiert, alles Default, keine Starter Datenbank. mkdir oracle/install cd /home/oracle/install md5sum V46095-01_1of2.zip 080435a40bd4c8dff6399b231a808e9a V46095-01_1of2-database.zip #=> Vergleichen mit Digest Info vom Download Portal MD5 080435A40BD4C8DFF6399B231A808E9A md5sum V46095-01_1of2.zip 30f20ef9437442b8282ce3984546c982 V46095-01_2of2-database.zip #=> Vergleichen mit Digest Info vom Download Portal MD5 30F20EF9437442B8282CE3984546C982 OK! unzip V46095-01_1of2.zip rm V46095-01_1of2.zip unzip V46095-01_2of2.zip rm V46095-01_2of2.zip cd database ./runInstaller Der Installer starte, Screen durchgehen, im ersten Schritt aber NUR die DB Software instalieren * Screen 1 - Hacken entfernen für E-Mail - next - Dialog bestätigen * Screen 2 - "Install database Software only" auswählen - next * Screen 3 - "Oracle Real Application Cluster database installation" auswählen - next * Screen 4 - Prüfen das alle Cluster Knoten ausgewählt sind - next * Screen 5 - Sprache Englisch auswählen - next * Screen 6 - Nur die Enterprise Edition kann mit 12.1.0.2 installiert werden - next * Screen 7 - Oracle Base = "/opt/oracle" und Software Location = "/opt/oracle/product/12.1.0.2/dbhome_1" - next * Screen 8 - Gruppen auf Default belassen - next * Screen 9 - Prerequisit Checks laufen - Bekannte Checks wie bei der Grid Installation können ignoriert werden - Ignore All Hacken setzen - next - Dialog bestätigen * Screen 10 - Übersichtseite , Pfade sorgfältig prüfen und Response File speichern - Install auswählen * Screen 11 - Install Screen zeigt Fortschritt an, Details über "Details" ~ 5-15minuten je nach Umgebung * Screen 11 - Root Script "root.sh" im neuen $ORACLE_HOME laufen lassen - Auf JEDEN Knoten! * Screen 12 - Rein DB Software Installation ist damit beendet Interessanter weise ließen sich keine Feature der EE einzeln an oder abwählen => hier ist dann auch alles installiert .-). ---- ==== Umgebung der DB Oracle Users setzen ==== Ähnlich wie zuvor unter den Grid User die Umgebung setzen, dazu als Root die .bash_profile und .profile vom Grid User zum Oracle User kopieren und die Rechte dem Oracle User vergeben. Auf beiden Knoten! #als root cp /home/grid/.bash_profile /home/oracle cp /home/grid/.profile /home/oracle chown oracle:oinstall /home/oracle/.bash_profile /home/oracle/.profile Als Oracle User neu einlogen und Frage nach dem Cluster Knoten beantworten. SQL Verzeichniss ~/sql anlegen und die SQL Script dort hinein kopieren ---- ==== TNSNames Dateien verlinken ==== Kann plötzlich der DB Link TNS Name nicht mehr in einer Cluster Umgebung aufgelöst werden, kann es daran liegen das zwar im Cluster erst in der Grid tnsnames gesucht wird und dann im Oracle Home der Datenbank, gelegentlich aber wieder um andersherum, je nach dem in welchen Context die DB wohl ursprünglich gestartet wurde. Setzte daher die TNS_ADMIN für die Arbeitsumgebung auf die Grid Umgebung und verlinke aus der Oracle DB Home Umgebung auf diese tnsnames.ora und sqlnet.ora in der Grid Umgebung. Dann gibt es nur eine Datei und wo was gepflegt werden muss, ist gelöst! Verlinken: #user Oracle cd $ORACLE_HOME/network/admin ln -s /opt/12.1.0.2/grid/network/admin/tnsnames.ora tnsnames.ora ln -s /opt/12.1.0.2/grid/network/admin/sqlnet.ora sqlnet.ora ---- ====Datenbank GPIDB aufsetzen==== Die wichtigsten Informationen beim Aufsetzen der Datenbank sind: * Zeichensatz * Blockgröße Alles andere lässt sich problemlos, zum Teil sogar online, später noch anpassen. === Optimierung der DB Umgebung === Limit Einstellungen des DB Prozesses pürfen: ps uafx | grep smon cat /proc//limits | grep process Hintergrund: DB läuft im Scope des Clusters und erbt von dort auch die Limits, reichen diese nicht aus kann es zu diesem Fehler beim Amelden über den Listener kommen: "ORA-12518: TNS:listener could not hand off client connection" (meist in System mit sehr hohen current Session Anzahlen) (siehe auch =>" The processes and resources started by CRS (Grid Infrastructure) do not inherit the ulimit setting for "max user processes" from /etc/security/limits.conf setting (Doc ID 1594606.1)" ). == Weiters == * Statspack falls keine Diagnostic/Tuning Pack Lizenz vorliegt * Audit Log auf eigenen Tablespace auslagern * Error Log Trigger siehe [[dba:oracle_sqlfehler_protokoll|Erstellen eines Protokolls zur Überwachung von fehlerhaften SQL Statements in der Datenbank]] ---- === Leistung der Umgebung messen === Mit Swing Bench die Umgebung überprüfen: [[dba:swingbench_load_test|Oracle Lasttest mit SwingBench]] ---- ====Aktuellen Patch Level einspielen==== Nach der Installation sollte dann auch gleich der aktuelles Security Patch eingespielt werden Siehe die Seite => http://www.oracle.com/technetwork/topics/security/alerts-086861.html , den letzten verfügbaren Patch auswählen (in unseren Fall April 2015) und für die Cluster Umgebung und die Datenbank den Patch (GI PSU) auf dem Support Portal suchen. (alternativ siehe auch die "Quick Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and Patchsets (Doc ID 1454618.1)" ) Im Zuge des Patches wird auch die Java Virtuell Maschine der Datenbank, des Clusters mit gepatched. Dieser OJVM PSU läßt sich allerdings NUR mit einer kompletten Downtime der gesamten Cluster Umgebung einspielen! Einspielt damit zuerst wie immer der letzte OPatch Patch auf jeden Knoten (Clusterware Home und DB Home!) und dann der GI PSU für April 2015 "Combo OJVM PSU 12.1.0.2.3 and GI PSU 12.1.0.2.3 Patch 20834538" im Auto Mode für alle Homes des Clusters. Ablauf: * Download des Patch 20834538: COMBO OF OJVM COMPONENT 12.1.0.2.3 DB PSU + GI PSU 12.1.0.2.3 (APR2015) (p20834538_121020_Linux-x86-64.zip) * Überprüfen des MD5 Hashes => 716111E6AA71693B4DFE02FEC346E1A8 um Download Fehler auszuschließen * Download des Patch 6880880: OPatch patch of version 12.1.0.1.7 for Oracle software releases 12.1.0.x (APR 2015) * Überprüfen des MD5 Hashes => 664BEF9A8B1FD4364EEFEA2C7343F754 * OPatch in allen Oracle Homes auf allen Knoten ersetzen * ocm response file anlegen export ORACLE_HOME= $ORACLE_HOME/OPatch/ocm/bin/emocmrsp -no_banner -output /file.rsp * Alle Datenbank stoppen mit srvctl/bin/srvctl stop database –d * ACFS Filessystem unmounten * Auf den Knoten 1 als root den GI PSU einspielenopatchauto apply /20834538 -ocmrf -nonrolling * Auf den Knoten 2 als root den GI PSU einspielenopatchauto apply /20834538 -ocmrf -nonrolling * Da ACFS im Einsatz ist, die Knoten neu starten um die Treiber neu zu laden * Prüfen ob alle Datenbank wieder gestartet wurden, bei Bedarf neu starten * Änderungen am internen Code der Datenbanken in die Datenbanken laden mit datapatch (in meine Fall noch Single Tenant ) cd $ORACLE_HOME/OPatch ./datapatch -verbose ---- ==== Oracle Trace File Analyzer (TFA) installieren ==== Für die Wartung und Kontrolle proaktiv den TFA von Oracle Support in Betrieb nehmen. Siehe: * [[dba:oracle_rac_12c_tfa_trace_file_analyser|Oracle 12c RAC Umgebung mit Oracle Trace File Analyzer (TFA) überprüfen]] ---- ====Aktuellen Patch Level „rolling“ einspielen==== Bei einer Neuinstallation lohnt es sich natürlich gleich VOR der DB Installation alle Patche einzuspielen. Hier soll aber getestet werden wie später im laufenden Betrieb der quartalsweise PSU Patch in das System mit minimaler Downtime eingespielt werden kann, d.h. so lange wie möglich soll einer der beiden Knoten für die Anwendung zur Verfügung stehen. Nach dem Abschluss der Patch Aktion prüfen ob die Oracle Binaries auch wirklich alle gleich sind: opatch lsinv -all_nodes .... Binary & Checksum Information ============================== ..... Quellen: * http://en.wikibooks.org/wiki/RAC_Attack_-_Oracle_Cluster_Database_at_Home/Patching_Grid_and_Database_Software ---- ===== Quellen ===== * Database Installation Guide 12c - https://docs.oracle.com/database/121/LADBI/toc.htm Übersicht: * http://www.oracle.com/technetwork/products/clusterware/overview/oracle-clusterware-12c-overview-1969750.pdf Opatch: * http://www.oracle.com/webfolder/technetwork/de/community/dbadmin/tipps/opatch/index.html Weitere Informationen zum Thema: * https://www.redhat.com/en/files/resources/en-rhel-deploy-oracle-rac-database-12c-rhel-7.pdf