=====Das Oracle ACFS Filesystem auf einer ASM Umgebung 11g verwenden===== 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: * Prüfen ob der ACFS Treiber laden werden kann und bei Bedarf ACFS einrichten * ACFS Filesystem auf Knoten 1 einrichten * Ein ASM Volume in einer ASM Disk Gruppe anlegen * Volume Namen ermitteln * Filesystem auf dem Volume anlegen * Filesystem registrieren * Filesystem mounten * ACFS Filesystem auf Knoten 2 einrichten * Ein ASM Volume enablen und Volumeninformation abfragen * Filesystem mounten * Filesystem testen === Linzenz === 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 ==== Prüfen ob der ACFS Treiber laden werden kann und bei Bedarf ACFS einrichten==== Unter einem Oracle Linux 6.5 kommt es allerdings ohne Patch in der Clusterware 11.2.0.4 zu einem Fehler. ===ADVM/ACFS is not supported on this OS version: '3.8.13-16.2.1.el6uek.x86_64=== 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 #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 ===ACFS Treiber laden=== 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 ==== ACFS Filesystem auf Knoten 1 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 ===Volume Namen ermitteln=== #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: ===Filesystem auf dem Volume anlegen=== 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. ===Filesystem registrieren=== 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 ===Filesystem mounten=== Als root: /bin/mount -t acfs /dev/asm/voldiag1-16 /u01/app/oracle/diag_acfs chown -R oracle:dba /u01/app/oracle/diag_acfs ===Fileystem prüfen=== Als Oracle User: cd /u01/app/oracle/diag_acfs touch test.txt ==== Auf dem zweiten Knoten verwenden==== ===Ein ASM Volume enablen und Volumeninformation abfragen== 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 ===Filesystem mounten=== Mounten als User Root: su - /bin/mount -t acfs /dev/asm/voldiag1-16 /u01/app/oracle/diag_acfs ===Filesystem testen=== 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! === Tail Fehler === 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. ---- ==== Vergrößern==== * Neue ASM Disks hinzufügen * 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. acfsutil size +20G /u01/app/oracle/diag_acfs ---- ==== Verkleinern==== 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! **Problem: ACFS-03006: smallest size, without loss of data ** 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! * Daten retten ( auf anderes Filesystem umkopieren) * Alles auschalten was auf das Filesystem schreibt ( Backup etc!) * ACFS Filesystem auf beiden Knoten dismounten * ACFS Filesystem löschen mit acfsutil [-h] rmfs acfsutil rmfs /dev/asm/volbackup01-430 * ACFS Diskgroup umkonfiguriren alter disksgroup ACFS drop disk .... * ACFS Filesystem neu anlegen( siehe oben) * Daten wieder auf das ACFS legen * Jobs wieder aktivieren die das Filesystem nützen ---- ===Quellen==== Oracle: * http://docs.oracle.com/cd/E11882_01/server.112/e18951/asmfs_util001.htm#OSTMG94787 * http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/11g/r2/prod/storage/acfs/acfs.htm#t1s1 Web: * http://oracle-base.com/articles/11g/acfs-11gr2.php#command_line Support: * "ACFS Support On OS Platforms (Certification Matrix). (Doc ID 1369107.1)" * How to Mount or Unmount ACFS File System While Applying GI Patches? (Doc ID 1494652.1) * How To Mount An ACFS Filesystem Through NFS On Linux. (Doc ID 1522878.1)