Installiert werden soll ein Oracle 12c System mit ASM Disks unter einem Oracle Linux 7.2.
Bzgl. Real Application Cluster siehe auch ⇒ 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
Absprache mit der Projektleitung:
Ablauf der Installation:
Minimales Sizing:
Mit der Oracle Linux DVD das Grundsystem als „Database Server“ aufsetzen, Englisch als Sprache wählen!
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!
siehe dazu ⇒ Ein Oracle Linux 7 Basis System als Grundlagen für eine Oracle Clusterware und Datenbank Installation vorbereiten
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
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
Die ASM Software wird unter „/opt/12.1.0.2/grid“ installiert.
Das Inventory liegt dann unter „/opt/oraInventory“ und gehört der user „grid“ und der Gruppe „oinstall“
Für die Verwendung der Oracle ASM Option muss der Kernel Treiber aktiv und die ASM Werkzeuge installiert sein.
Ablauf:
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
/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
Je nach Hardware, siehe auch als Beispiel für einen Storage Anbindung ⇒ 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.
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 ..
/usr/sbin/oracleasm createdisk DATA_01 /dev/sdb1
/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.
User grid
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
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:
Nach der Installation die User Umgebung, Oracle Home, SID etc. setzen.
Je nach Bedarf statisch in der .bashrc oder mit eigenen Skripten wie Arbeitsumgebung setzen und Einrichten unter Windows und Linux.
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;
Nach der Installation das System neu starten um zu prüfen ob auch alles automatisch richtig gestartet wird.
User Oracle
Nach der Grid Software Installation erfolgt die Installation der Datenbank Software
User grid
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
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.
Nach der Installation die Oracle User Umgebung, Oracle Home, SID etc. setzen.
Je nach Bedarf statisch in der .bashrc oder mit eigenen Skripten wie Arbeitsumgebung setzen und Einrichten unter Windows und Linux.
Mit dem „dbca“ Wizard eine Default Datenbank unter Verwendung der ASM Platte anlegen.
Vorbereitung: (als user grid!)
chmod g+w /opt/oracle/cfgtoollogs
chown grid:dba /opt/oracle/admin chmod g+w /opt/oracle/admin
chown grid:dba /opt/oracle/diag chmod g+w /opt/oracle/diag
chmod g+w /opt/oracle/checkpoints/
Als User oracle:
#Umgebung setzen ORACLE_HOME der Datenbank, keine SID
dbca
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.
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
#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:
#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
export ORACLE_HOME=<my_oracle_home_path> $ORACLE_HOME/OPatch/ocm/bin/emocmrsp -no_banner -output /opt/oracle/install/file.rsp
#Oracle Home auf DB Home <ORACLE_HOME>/bin/srvctl stop database -d <db-unique-name>
su - export ORACLE_HOME=/opt/12.1.0.2/grid $ORACLE_HOME/bin/crsctl stop has
ps uafx | grep 'oracle\|grid'
$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
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
su - grid srvctl start database -d GPI
#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
Autostart testen, System herunterfahren (systemctl poweroff -i) und in einer VM Umgebung einen offline Snapshot für spätere Clone ziehen
Testen ob mit https://<myservername>:5500/em/login ein Aufruf von Oracle Express schon möglich ist.
Falls nicht, die 12c DB Console freischalten Die Oracle 12c Datenbank mit Oracle Database Express administrieren.
Backup einrichten wie 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: 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.