=====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)