Auf einer Oracle 11g R2 11.2.0.4 Cluster Umgebung sollen die DIAG Dateien auf einem gesharten Laufwerk abgelegt werden.
Dazu bietet sich das Oracle ACFS Filesystem an.
Ablauf:
Noch letzte Jahr (vor Oktober 2014) war das ACFS NUR frei bei Verwendung als Datastore for Oracle Datenbank relevante Dateien.
Seit Oktober 2014 kann das ACFS Filesystem frei verwendet werden, solange das darunterliegend ASM lizensiert ist.
⇒ siehe 12c Dokumentation (gilt auch für 11g) E49206-6
Unter einem Oracle Linux 6.5 kommt es allerdings ohne Patch in der Clusterware 11.2.0.4 zu einem Fehler.
Fehler beim Anlegen des Volumens:
ASMCMD> volcreate -G ACFS -s 15G voldiag1 ORA-15032: not all alterations performed ORA-15477: cannot communicate with the volume driver (DBD ERROR: OCIStmtExecute) #!! acfs ist nicht geladen!! acfsdriverstate version ACFS-9129: ADVM/ACFS not installed # Prüfen ob bereits installiert acfsdriverstate version ACFS-9129: ADVM/ACFS not installed #prüfen ob das hier überhaupt gehen würde: acfsdriverstate supported ACFS-9459: ADVM/ACFS is not supported on this OS version: '3.8.13-16.2.1.el6uek.x86_64' ACFS-9201: Not Supported
Lösung:
A) Böser Hack für überhaupt nicht unterstützte Systeme:
Editieren der $ORACLE_HOME/lib/osds_acfslib.pm und dort entsprechend das supported = 1 eintragen
B) Patch „16318126 für Oracle Linux - Unbreakable Enterprise Kernel 6 3.8.13 and later UEK 3.8.13 kernels“ einspielen
siehe ⇒ * „ACFS Support On OS Platforms (Certification Matrix). (Doc ID 1369107.1)“
Vorbereitung: Vor dem eigentlichen Patch den aktuellen Opatch herunterladen und installieren/auspacken (im RAC auf allen Knoten!)
# # auf jedem Knoten OPatch aktualisieren und den Patch einspielen! # # Zuvor als root Schreibrechte der oinstall Gruppe testen! # # falls keine Rechte Schreibrecht auf das Oracle Home Verzeichnis einrichten! #als Root chmod g+w $ORACLE_HOME #als Oracle User # Grid Oracle Home setzen mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_old unzip p6880880_112000_Linux-x86-64_opatch.zip -d $ORACLE_HOME $ORACLE_HOME/OPatch/opatch version #OCM Configuration anlegen $ORACLE_HOME/OPatch/ocm/bin/emocmrsp #Patch auspacken unzip p16318126_112040_Linux-x86-64.zip -d ./oracle_patch/ # Alle Datenbanken auf den RAC Knoten stoppen! srvctl stop database -d <xxxx> #Als user root automatisch im Cluster installieren export ORACLE_HOME=/u01/app/11.2.0.4/grid export PATH=$PATH:$ORACLE_HOME/OPatch opatch auto /home/oracle/install/oracle_patch -ocmrf /home/oracle/install/ocm.rsp #Cluster wird gestoppt und gepatched # # User oracle # $ORACLE_HOME/OPatch/opatch lsinventory #+ACFS Testen: acfsdriverstate supported ACFS-9200: Supported acfsdriverstate version ACFS-9325: Driver OS kernel version = 3.8.13-13.el6uek.x86_64(x86_64). ACFS-9326: Driver Oracle version = RELEASE. # Datenbank wieder starten srvctl start database -d <xxxx>
Als Root prüfen ob das Modul zu ACFS geladen ist:
su - # Falls nicht per Hand laden # ACFS per Hand laden /u01/app/11.2.0.4/grid/bin/acfsload start -s [root@srvora01 ~]# lsmod | grep oracle oracleacfs 1984438 0 oracleadvm 243430 0 oracleoks 424483 2 oracleacfs,oracleadvm oracleasm 53591 1
Als User mit SYSASM Rechten über asmcmd anmelden:
#Anlegen ASMCMD> volcreate -G ACFS -s 15G voldiag1
#Anzeigen lassen: ASMCMD> volinfo -G ACFS voldiag1 Diskgroup Name: ACFS Volume Name: VOLDIAG1 Volume Device: /dev/asm/voldiag1-16 State: ENABLED Size (MB): 15360 Resize Unit (MB): 32 Redundancy: UNPROT Stripe Columns: 4 Stripe Width (K): 128 Usage: Mountpath:
Als root:
/sbin/mkfs -t acfs /dev/asm/voldiag1-16 mkfs.acfs: version = 11.2.0.4.0 mkfs.acfs: on-disk version = 39.0 mkfs.acfs: volume = /dev/asm/voldiag1-16 mkfs.acfs: volume size = 16106127360 mkfs.acfs: Format complete.
Als root:
mkdir /u01/oracle/diag [root@srvora01 ~]# /sbin/acfsutil registry -a /dev/asm/voldiag1-16 /u01/app/oracle/diag_acfs acfsutil registry: mount point /u01/oracle/diag_acfs successfully added to Oracle Registry
Als root:
/bin/mount -t acfs /dev/asm/voldiag1-16 /u01/app/oracle/diag_acfs chown -R oracle:dba /u01/app/oracle/diag_acfs
Als Oracle User:
cd /u01/app/oracle/diag_acfs touch test.txt
Auf Knoten 2 als User Oracle:
mkdir /u01/app/oracle/diag_acfs asmcmd ASMCMD> volenable -G ACFS voldiag1 ASMCMD> volinfo -G ACFS voldiag1 Diskgroup Name: ACFS Volume Name: VOLDIAG1 Volume Device: /dev/asm/voldiag1-16 State: ENABLED Size (MB): 15360 Resize Unit (MB): 32 Redundancy: UNPROT Stripe Columns: 4 Stripe Width (K): 128 Usage: ACFS Mountpath: /u01/app/oracle/diag_acfs
Mounten als User Root:
su - /bin/mount -t acfs /dev/asm/voldiag1-16 /u01/app/oracle/diag_acfs
Als User Oracle testen:
ls -la /u01/app/oracle/diag_acfs total 72 ... -rw-r--r-- 1 oracle oinstall 0 Nov 8 18:40 test.txt
Datei ist da!
Nach einem Linux Upgrade fällt folgendes Verhalten auf:
tail -f alert_GPIDB1.log .. tail: unrecognized file system type 0x61636673 for 'alert_GPIDB1.log'. Reverting to polling. ...
Im Support Portal keine eindeutigen Daten zu diesem Problem …. kann ignoriert werden, hier fehlt wohl ein Filesystem Feature.
acfsutil size +20G /u01/app/oracle/diag_acfs
Aufgabe: eine 100GB ASM Platte soll vom ACFS Volume entfernt werden um einer anderen LUN zugeordnet werden zu können.
Übersicht:
acfsutil info fs .. primary volume: /dev/asm/volbackup01-430 .. total size: 697932185600 ( 650.00 GB ) total free: 236225093632 ( 220.00 GB ) .. acfsutil info fs -o freespace /u01/app/oracle/acfs 236225093632
Nun um 110 GB verkleinern mit:
acfsutil size -110G /u01/app/oracle/acfs
Das funktioniert nicht!
<fc #ff0000>Problem: ACFS-03006: smallest size, without loss of data </fc>
acfsutil size: ACFS-03006: smallest size, without loss of data, is: 697924845568 (665593MB)
Siehe ACFSUTIL resize operation fails with „ACFS-03006: smallest size“ (Doc ID 1597710.1)
D.h. das ACFS muss komplett neu angelegt werden!
acfsutil rmfs /dev/asm/volbackup01-430
alter disksgroup ACFS drop disk ....
Oracle:
Web:
Support: