==== Anmerkungen zu einer Installation Oracle 12c mit der ASM Option unter Oracle Linux 7.2 ==== Installiert werden soll ein Oracle 12c System mit ASM Disks unter einem Oracle Linux 7.2. Bzgl. Real Application Cluster siehe auch => [[dba:install_rac_linux_12c|Anmerkungen zu Installation des Oracle Real Application Cluster 12c auf einem Oracle Linux 7]] Für die ASM Umgebung wird eine "Standalone Grid Infrastuktur" aufgesetzt. Vorbereitung: Download der notwendigen Software * Linux 7.2 (V100082-01.iso) über https://edelivery.oracle.com/ * Oracle Datenbank 12c über [[http://www.oracle.com/technetwork/database/enterprise-edition/downloads/database12c-linux-download-2240591.html|www.oracle.com]] * Datenbank ( linuxamd64_12c_database_1of2.zip und linuxamd64_12c_database_2of2.zip ) * ASM Umgebung ( linuxamd64_12c_grid_1of2.zip und linuxamd64_12c_grid_2of2.zip) Absprache mit der Projektleitung: * Welche Datenbank Edition soll eingesetzt werden (Lizenz!) * Welcher Zeichensatz wird benötigt? Ablauf der Installation: * Linux System Grundinstallation durchführen * Storage/Platten für ASM einbinden * Oracle ASM Umgebung installieren * Oracle Datenbank Software installieren * Datenbank aufsetzen * Aktuellen Patch einspielen * System optimieren ---- ===== Linux System in Grundinstallation aufsetzen ==== Minimales Sizing: * 8GB Ram (ein erster Test mit 6GB war deutlich zu wenig!) * 40GB für das Root Filessstem und die Oracle Homes * ASM Platten je nach Bedarf für die Datenbank(en) Mit der Oracle Linux DVD das Grundsystem als "Database Server" aufsetzen, Englisch als Sprache wählen! * Netzwerkkarten einrichten * Yum Repository einrichten * SE Linux ausschalten * OS update einspielen * Notwendige Linux Pakete einspielen * Hugepages einrichten * Firewall Einstellungen prüfen * NTP prüfen/aktivieren * Kernel Settings überpürfen/anpassen * TempFs überprüfen * Oracle für ASM und Oracle Home einrichten * Oracle Verzeichnisse anlegen * super für die Administration der verschiedenen User einrichten ==Software (Iso-Image) überprüfen== Vor jeder Installation über die MD5 Hash überprüfen ob das ISO File auch richtig heruntergeladen wurden. In der Powershell mit Windows 10: Get-FileHash .\V100082-01.iso -Algorithm MD5 # Laut Oracle Website: 3B9D65D26576921372B1B35B03FD791D Algorithm Hash Path --------- ---- ---- MD5 3B9D65D26576921372B1B35B03FD791D D:\iso-images\V100082-01.iso Passt! === Linux System für die Oracle Datenbank Umgebung einrichten === siehe dazu => [[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]] ---- ===Oracle User für ASM und Oracle Home einrichten=== Die Oracle Datenbank Software wird unter dem User **oracle**, die ASM Instance unter dem User **grid**. Beide User sind ja bereits in der Basis Installation eingerichtet worden. Nun wird geprüft ob das Anmelden mit ssh möglich ist, ein SSH Key wird erzeugt und das login über localhost auf der lokalen Maschine per SSH ohne Password (mit Key) wird eingerichtet. Hintergrund: Neue Check tools von Oracle melden sich lokal an der Maschine per SSH an, das muss ohne Password möglich sein. ssh oracle@localhost ssh-keygen -t rsa -N '' -q -f ~/.ssh/id_rsa cd .ssh cat id_rsa.pub >> authorized_keys #nun sollte das ohne passwort klappen! ssh oracle@localhost Gleiches für den User grid einrichten ===Oracle Verzeichnisse anlegen/prüfen=== ==Datenbank== Die Oracle Software wird nach /opt/oracle/product/12.1.0.2/dbhome_1 installiert. Daher muss der Oracle User auf /opt/oracle die vollen Rechte besitzen ==Grid== Die ASM Software wird unter "/opt/12.1.0.2/grid" installiert. ==Inventory== Das Inventory liegt dann unter "/opt/oraInventory" und gehört der user "grid" und der Gruppe "oinstall" ===Super für die DB User einrichten=== Siehe [[linux:linux_switch_user_with_super|Super zum Wechseln von Usern unter Linux verwenden]] ---- ==== Oracle ASM Platten einrichten ==== Für die Verwendung der Oracle ASM Option muss der Kernel Treiber aktiv und die ASM Werkzeuge installiert sein. Ablauf: * ASM Lib aktivieren * Platten im System einbinden == ASM Lib aktivieren == Als User Root # install library falls nicht bereits durchgeführt yum install oracleasm yum install oracleasm-support # Configure oracleasm configure -i Configuring the Oracle ASM library driver. ... 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 # Load /usr/sbin/oracleasm init Loading module "oracleasm": oracleasm Mounting ASMlib driver filesystem: /dev/oracleasm ==Fehler beim Laden der ASM Library === /usr/sbin/oracleasm init Loading module "oracleasm": failed Unable to load module "oracleasm" Problem: Nach dem Update wird plötzlich nicht mehr der richtige Kernel beim Boot gestartet, nur der UEK Kernel enthält auch den ASM Treiber! Boot Kernel angeben: grep '^menuentry' /boot/grub2/grub.cfg #Zähler beginnt bei 0! grub2-set-default 2 grub2-mkconfig -o /boot/grub2/grub.cfg reboot #Testen ob beim Boot auch der richtige Kernel markiert ist und falls nicht entsprechend den Zähler anpassen! siehe auch https://docs.oracle.com/cd/E52668_01/E54669/html/ol7-grub2_bootloader.html ==Die Platten im System einbinden== Je nach Hardware, siehe auch als Beispiel für einen Storage Anbindung => [[linux:ds3400_sas_failover|IBM DS3500 Storage im Einsatz mit SAS Karten für ein Oracle RAC 11g Cluster]] oder für einen ersten Test mit VMWare eine "normale" Platte zu der VM hinzufügen. - Das richtige neue Device suchen bzw. online einbinden, dazu im laufenden Betrieb den SCSI Bus neu nach der neuen Platten scannen lassen: ls /sys/class/scsi_host host0 host1 host2 #für alle 3 Controller echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan #var log messages überwachen , am besten in einer zweiten Session tail -f /var/log/messages .. Dec 28 23:46:45 gpidb12casm01 kernel: sd 2:0:1:0: [sdb] Attached SCSI disk .. - Partitionieren, fdisk /dev/sdb ( "n", "p", "1", "Return", "Return", "p" and "w". ) - Als ASM disk registrieren /usr/sbin/oracleasm createdisk DATA_01 /dev/sdb1 - Prüfen mit: /usr/sbin/oracleasm listdisks In einer VM Umgebung ist das ein guter Zeitpunkt für einen neuen Snapshot, System herunterfahren (systemctl poweroff -i) um später davon einen neuen Clone anfertigen zu können. ---- ==== Oracle 12c ASM Installation ==== **User grid** ==Software auf die Maschine kopieren und auspacken== Als User **Grid** anmelden und die Software in ein Install Verzeichnis kopieren, MD5 Hash prüfen und auspacken: mkdir /opt/oracle/install #damit das auch der oracle user später nützen kann chmod g+w /opt/oracle/install #prüfen und auspacken cd /opt/oracle/install #Dateien V46096-01_1of2.zip und V46096-01_2of2.zip in das Install Verzeichnis kopieren #Checksumme prüfen und mit dem zuvor gemerkten Wert vom edelivery vergleichen md5sum V46096-01_1of2.zip d793c2ba5db9008b79077bff8d27a219 V46096-01_1of2.zip md5sum V46096-02_1of.zip 0e18a9abb80427baf18f85865b1ecd5d V46096-01_2of2.zip #auspacken und zip löschen unzip V46096-01_1of2.zip rm V46096-01_1of2.zip unzip V46096-01_2of2.zip rm V46096-01_2of2.zip ===Installation starten=== Für die ASM Instance wird ein Teil der Cluster Software (Quasi ein Standalone RAC nur für ASM) installiert. Installer aufrufen: cd /opt/oracle/install/grid ./runInstaller Ablauf: - **Select Install Option** - Install and Configure Oracle Grid Infrastructure for a Standalone Server - Next - **Select Product Languages** - min. Englisch auswählen - Next - **Create ASM Disk Group** - Über "Change Discovery Path" Pfad auf "/dev/oracleasm/disks" setzen - Platte auswählen, Redundancy auf "External" setzen - Next - **Specify ASM Password** - Passwörter vergeben - Next - **Specify Management Options** - Nichts anwählen - Next - **Privileged Operating System Groups** - Default belassen (asmadmin, oinstall) - Next - **Specify Installation Location** - Pfade anpassen - Oracle Base /opt/oracle und Software Location "/opt/12.1.0.2/grid" - Next - Bestätigen das Oracle Home nicht in der Base liegt - Next - **Create Inventory** - Inventory Directory "/opt/oraInventory" - Next - **Root script execution configuration** - Nichts auswählen - Next - **Perform Prerequisite Checks** - **Summary** - Response File sicheren mit "Save Response File" - Install - **Install Product** - Installation wird durchgeführt - Dauer ca. 4-6 Minuten - **Ecexute Configuration scripts** - Als Root User die aufgeführen Skripte der reihe nach ausführen - /opt/oraInventory/orainstRoot.sh - Setzt Rechte im Inventory - /opt/12.1.0.2/grid/root.sh - Setzt Rechte und legt das eigentliche Cluster an - Mit "OK" die Durchführung der Skripte bestätigen - Zum Abschluss wird noch die Konfiguration der Umgebung vom Installer abgeschlossen ca. 5-7 Minuten - **Finish** - Installation abgeschlossen - Close ==User Umgebung setzen== Nach der Installation die User Umgebung, Oracle Home, SID etc. setzen. Je nach Bedarf statisch in der .bashrc oder mit eigenen Skripten wie [[dba:arbeits_umgebung|Arbeitsumgebung setzen und Einrichten unter Windows und Linux]]. ==Umgebung prüfen == Cluster Umgebung: crsctl status resource -t ASM Instance überprüfen: #Umgebung setzen (ORACLE_HOME und ORACLE_SID!) sqlplus / as sysasm select * from v$asm_disk; ==Neustart testen== Nach der Installation das System neu starten um zu prüfen ob auch alles automatisch richtig gestartet wird. ---- ==== Oracle 12c Datenbank Installation ==== **User Oracle** Nach der Grid Software Installation erfolgt die Installation der Datenbank Software **User grid** ==Software auf die Maschine kopieren und auspacken== Als User **oracle** anmelden und die Software in das Install Verzeichnis kopieren, MD5 Hash prüfen und auspacken: cd /opt/oracle/install #Dateien V46095-01_1of2.zip und V46095-01_2of2.zip in das Install Verzeichnis kopieren #Checksumme prüfen und mit dem zuvor gemerkten Wert vom edelivery vergleichen md5sum V46095-01_1of2.zip 080435a40bd4c8dff6399b231a808e9a V46095-01_1of2.zip md5sum V46095-02_1of.zip 30f20ef9437442b8282ce3984546c982 V46095-01_2of2.zip #auspacken und zip löschen unzip V46095-01_1of2.zip rm V46095-01_1of2.zip unzip V46095-01_2of2.zip rm V46095-01_2of2.zip === Datenbank Software installieren=== Installer starten cd /opt/oracle/install/database ./runInstaller Im ersten Schritt wird nur die Datenbank Software installiert, die Installation der Software erfolgt für die Enterprise Edition, Ablauf ist der gewohnte Standard ohne besondere Einstellungen. - **Configure Security Updates** - Hacken bei "I wish" entfernen - Next - Dialog Box mit "Yes" bestätigen - **Select Installation Option** - "Install database software only" anwählen - Next - **Grid Installation Options** - "Single instance database installation" - Next - **Select Product Languages** - Default - Next - **Select Database Edition** - Default - Enterprise - Next - **Specify Oracle Home User** - Create New Windows User * Usernamen wie "ORARUN" angeben und Password hinterlegen, dieses sofort dokumentieren! * Next - **Specify Installation Location** * Oracle Base: /opt/oracle * Software location: /opt/oracle/product/12.1.0.2/dbhome_1 * Next - **Privileged Operating System groups** - default - next - **Prerequisite Checks**- are running - **Summary** - "Save Responce File" für die Dokumentation - Install - **Install Product** - Installation läuft - ca 5 Minuten * Über Details gibt es mehr Informationen * Root Skripte ausführen - **Finish** - mit "Close" beenden ==Oracle User Umgebung setzen== Nach der Installation die Oracle User Umgebung, Oracle Home, SID etc. setzen. Je nach Bedarf statisch in der .bashrc oder mit eigenen Skripten wie [[dba:arbeits_umgebung|Arbeitsumgebung setzen und Einrichten unter Windows und Linux]]. ---- ==== 12c Datenbank mit dem dbca Wizard anlegen ==== Mit dem "dbca" Wizard eine Default Datenbank unter Verwendung der ASM Platte anlegen. Vorbereitung: (als user **grid**!) * Schreibrechte auf dem Oracle Base für die oinstall Gruppe auf /opt/oracle/cfgtoollogs als grid user vergebenchmod g+w /opt/oracle/cfgtoollogs * Auf das Admin Verzeichniss Gruppe und Rechte anpassen:chown grid:dba /opt/oracle/admin chmod g+w /opt/oracle/admin * Auf das Admin Verzeichniss Gruppe und Rechte anpassen:chown grid:dba /opt/oracle/diag chmod g+w /opt/oracle/diag * Auf das Checkpoints Verzeichnis die Rechte setzenchmod g+w /opt/oracle/checkpoints/ Als User **oracle**: #Umgebung setzen ORACLE_HOME der Datenbank, keine SID dbca - **Database Operation** - Create Database - Next - **Creation Mode** * DB Name angeben * Storage Option wählen * Zeichensatz und Password vergeben * Create as Container abwählen * Next - **Prequisite checks** - **Summary** - Finish - **Progress Page** - **Finish** - Text beachten! - Close Leider hat mein System angefangen zu Swappen und damit sehr lange für die DB Installation (> 2h) benötigt. 6GB Ram in der VM scheinen für die DB + ASM etwas zu klein zu sein. In einer produktiven Umgebung sollte man wohl den Detail Dialog durchgehen um zu viele spätere Anpassungen zu vermeiden. Bei dieser Methode wird die Datenbank aus einen Default Backup geklont und enthält alle Optionen. Das entspricht ja nicht immer den verfügbaren Lizenz-Szenario. ---- ==== Clusterware und Datenbank Patch 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 Oktober 2015) und für die Standalone 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 Oktober 2015 "Patch 21523260: COMBO OF OJVM COMPONENT 12.1.0.2.5 DB PSU + GI PSU 12.1.0.2.5 (OCT2015)" im Auto Mode für alle Homes des Clusters. Oktober 2015 Patch als User GRID in einem Verzeichnis bereitstellen * Download des Patch 21523260: COMBO OF OJVM COMPONENT 12.1.0.2.5 DB PSU + GI PSU 12.1.0.2.5 (OCT2015) (p21523260_121020_Linux-x86-64.zip - 1.1 GB) * Überprüfen des MD5 Hashes => 0A7608E01B311BBF69AC5610F9DFBF50 um Download Fehler auszuschließen * Download des Patch 6880880: OPatch patch of version 12.1.0.1.10 for Oracle software releases 12.1.0.x (NOV 2015)(p6880880_121010_Linux-x86-64.zip 50.3 MB) * Überprüfen des MD5 Hashes => 0A7608E01B311BBF69AC5610F9DFBF50 * Patch Dateien als User **grid** nach /opt/oracle/install kopieren, MD5 prüfen und auspacken #MD5 Prüfen md5sum p21523260_121020_Linux-x86-64.zip 86c5386facd479ea49f49b5506caeb1b p21523260_121020_Linux-x86-64.zip md5sum p6880880_121010_Linux-x86-64.zip 0a7608e01b311bbf69ac5610f9dfbf50 p6880880_121010_Linux-x86-64.zip #Nur erst mal den eigentlichen Patch auspacken! unzip p21523260_121020_Linux-x86-64.zip rm p21523260_121020_Linux-x86-64.zip Ablauf: * OPatch in allen Oracle Homes auf dem Knoten ersetzen (auf den jeweils richtigen User achten!) #User root bgzl. rechte verwenden su - root cd /opt/oracle/install/ export ORACLE_HOME=/opt/12.1.0.2/grid mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_orig mkdir $ORACLE_HOME/OPatch chown -R grid:oinstall $ORACLE_HOME/OPatch exit #als user grid weiterarbeiten su - grid cd /opt/oracle/install/ #das Oracle Home setzen setdb 1 unzip p6880880_121010_Linux-x86-64.zip -d $ORACLE_HOME $ORACLE_HOME/OPatch/opatch version # User Oracle weiter patchen su - oracle cd /opt/oracle/install/ #das Oracle Home setzen setdb 3 mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_orig unzip p6880880_121010_Linux-x86-64.zip -d $ORACLE_HOME $ORACLE_HOME/OPatch/opatch version als Oracle und als Grid User durchführen, beim Grid User root verwenden bzgl. Berechtigung * OCM response file anlegen als user **grid** export ORACLE_HOME= $ORACLE_HOME/OPatch/ocm/bin/emocmrsp -no_banner -output /opt/oracle/install/file.rsp * Alle Datenbank stoppen als grid oder oracle User mit srvctl#Oracle Home auf DB Home /bin/srvctl stop database -d * CRS als "root" User stoppen mit su - export ORACLE_HOME=/opt/12.1.0.2/grid $ORACLE_HOME/bin/crsctl stop has * Pürfen als root ob alles gestoppt istps uafx | grep 'oracle\|grid' * Als root den GI PSU einspielen $ORACLE_HOME/OPatch/opatchauto apply /opt/oracle/install/21523260 -ocmrf /opt/oracle/install/file.rsp -oh /opt/12.1.0.2/grid # Grid infrastrucutre wieder starten export ORACLE_HOME=/opt/12.1.0.2/grid $ORACLE_HOME/bin/crsctl stop has * Als root den DB PSU über den DB Namen einspielen export ORACLE_HOME=/opt/oracle/product/12.1.0.2/dbhome_1 $ORACLE_HOME/OPatch/opatchauto apply /opt/oracle/install/21523260 -ocmrf /opt/oracle/install/file.rsp -database GPI * Prüfen ob alle Datenbank wieder gestartet wurden, bei Bedarf neu starten, als user **grid** mit gesetzten Datenbank Oracle Homesu - grid srvctl start database -d GPI * Änderungen am internen Code der Datenbanken in die Datenbanken laden mit datapatch, als user **oracle** (in meine Fall noch Single Tenant ) #start DB in Upgrade Modus srvctl stop database -d gpi sqlplus / as sysdba startup upgrade exit #Patch einspielen cd $ORACLE_HOME/OPatch ./datapatch -verbose sqlplus / as sysdba shutdown exit srvctl start database -d GPI sqlplus / as sysdba select * from DBA_REGISTRY_SQLPATCH; Wie kann nun aber geprüft werden ob der Patch auch wirklich eingespielt wurde, mehr dazu unter http://www.pythian.com/blog/oracle-database-12c-patching-dbms_qopatch-opatch_xml_inv-and-datapatch/ **Anmerkung zum nächsten Apply eines Security Patches Jan 2016** * Versionsnummer der Datenbank wird mehrstellig von 12.1.0.2.5 nach 12.1.0.2.160119 * Einige alten Patche sind bereits vorhanden, opatch installiert diese nicht noch mal und zeigt diverse "Fehlermeldungen" an, installiert aber auch etwas, unbefriedigend, was wurde jetzt hier zum Schluss wirklich installiert? In einer Produktiven Umgebung Oracle Support einschalten! ---- ==== Abschluss==== Autostart testen, System herunterfahren (systemctl poweroff -i) und in einer VM Umgebung einen offline Snapshot für spätere Clone ziehen ==DB Console prüfen/einschalten== Testen ob mit https://:5500/em/login ein Aufruf von Oracle Express schon möglich ist. Falls nicht, die 12c DB Console freischalten [[dba:oracle_12c_database_express|Die Oracle 12c Datenbank mit Oracle Database Express administrieren]]. === Backup einrichten === Backup einrichten wie [[dba:backup|Was muss alles gesichert werden?]] Ein zentrales Script für die Sicherung der Oracle Datenbank unter Linux (Single Instance / ASM Umgebungen / RAC) finden Sie hier: [[https://orapowershell.codeplex.com/SourceControl/latest#bash/backup/README.txt| OraPowerShell Bash Backup Scripts]] Mit diesen Scripts wird nicht nur die reine Datenbank, sondern je nach Bedarf auch weitere Einstellungen und Konfigurationen einer Real Application oder ASM Umgebung gesichert. ---- ==== Quellen ==== Oracle: * [[http://docs.oracle.com/cd/E16655_01/install.121/e17720/oraclerestart.htm#LADBI999|Oracle Grid Infrastructure for a Standalone Server]]