Inhaltsverzeichnis
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 <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>
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 <device>
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:
Web:
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)