ACFS i.e Oracle ASM Cluster File System is cluster file system service used for High availability services.

Example – For achieving high availability in goldenate for Oracle RAC, we can use ACFS for goldengate relate files.

In this article, we will show how to create a ACFS file system in oracle RAC using command line.

ENVIRONMENT DETAILS:

ORACLE GRID VERSION – 12.1.0.2
NODES               – NODE1 , NODE2
OS                  – SOLARIS SPARC

 

1. Create an ASM DISKGROUP( ON NODE 1)

echo $ORACLE_HOME
/crsapp/app/oracle/product/grid12c

echo $ORACLE_SID
+ASM1

sqlplus / as sysasm


SQL> CREATE DISKGROUP ACFSPOC EXTERNAL REDUNDANCY
DISK '/dev/rdsk/c0t514F0C5785C00A0Bd0s6' SIZE 269G
ATTRIBUTE 'compatible.asm' = '12.1.0.0.0',
'compatible.rdbms'='12.1.0.0.0' ,
'compatible.advm' = '12.1.0.0.0';
  

Diskgroup created.

2. Mount the diskgroup from other nodes(On NODE 2)

echo $ORACLE_HOME
/crsapp/app/oracle/product/grid12c

echo $ORACLE_SID
+ASM2

asmcmd

ASMCMD> mount ACFSPOC

3. check the diskgroup status( from any node)

SQL> SQL>  set lines 299
SQL> select GROUP_NUMBER,NAME,COMPATIBILITY,DATABASE_COMPATIBILITY from gv$asm_diskgroup where NAME='ACFSPOC';

GROUP_NUMBER NAME                           COMPATIBILITY                                                DATABASE_COMPATIBILITY
------------ ------------------------------ ------------------------------------------------------------ ------------------------------------------------------------
          13 ACFSPOC                        12.1.0.0.0                                                   12.1.0.0.0
          13 ACFSPOC                        12.1.0.0.0                                                   12.1.0.0.0



$ crsctl stat res ora.ACFSPOC.dg -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ACFSPOC.dg
               ONLINE  ONLINE       node1                  STABLE
               ONLINE  ONLINE       node2                  STABLE
--------------------------------------------------------------------------------

4. Create a new ADVM volume in the diskgroup(ACFSPOC):(ON NODE 1)

 

ASMCMD> volcreate -G ACFSPOC -s 50G SHAREDVOL1

ASMCMD> volinfo --all
Diskgroup Name: ACFSPOC

         Volume Name: SHAREDVOL1
         Volume Device: /dev/asm/sharedvol1-201 --- >> This is the volume device
         State: ENABLED
         Size (MB): 51200
         Resize Unit (MB): 512
         Redundancy: UNPROT
         Stripe Columns: 8
         Stripe Width (K): 1024
         Usage:
         Mountpath:
		 
		 
oracle@NODE2:~$ crsctl stat res ora.ACFSPOC.SHAREDVOL1.advm -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ACFSPOC.SHAREDVOL1.advm
               ONLINE  ONLINE       NODE1                  STABLE
               ONLINE  ONLINE       NODE2                  STABLE
			   

5. create mount point with proper permission on both nodes:

------- node 1:(from root)

mkdir /acfspoc
chown oracle:oinstall /acfspoc


--------from node 2 also:

mkdir /acfspoc
chown oracle:oinstall /acfspoc 

6.Create ACFS FILESYSTEM In the ADVM VOLUME (On node 1) ( as grid owner)

$ /sbin/mkfs -F acfs /dev/asm/sharedvol1-201
mkfs: version = 12.1.0.2.0
mkfs: on-disk version = 39.0
mkfs: volume = /dev/asm/sharedvol1-201
mkfs: volume size = 53687091200 ( 50.00 GB )
mkfs: Format complete.

NOTE – In case of linux the command will be /sbin/mkfs -t acfs /dev/asm/sharedvol1-201

 

7.Register the ACFS file system with CRS:

export ORACLE_HOME=/crsapp/app/oracle/product/grid12c

-- Run from root 

root@NODE1:~# $ORACLE_HOME/bin/srvctl add filesystem  -d  /dev/asm/sharedvol1-201 -m /acfspoc -u oracle -fstype ACFS  -autostart ALWAYS


-- Check the resource status

$ crsctl stat res ora.acfspoc.sharedvol1.acfs -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.acfspoc.sharedvol1.acfs
               OFFLINE OFFLINE      NODE1                  STABLE
               OFFLINE OFFLINE      NODE2                  STABLE
--------------------------------------------------------------------------------


8. Start the ACFS file system resource:( on node 1 from the root)

root@NODE1:~# $ORACLE_HOME/bin/srvctl start filesystem -d /dev/asm/sharedvol1-201


---- Check the status

$ crsctl stat res ora.acfspoc.sharedvol1.acfs -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.acfspoc.sharedvol1.acfs
               ONLINE  ONLINE       NODE1                  mounted on /acfspoc,
                                                             STABLE
               ONLINE  ONLINE       NODE2                  mounted on /acfspoc,
                                                             STABLE
--------------------------------------------------------------------------------




$ srvctl config filesystem
Volume device: /dev/asm/sharedvol1-201
Canonical volume device: /dev/asm/sharedvol1-201
Auxiliary volume devices:
Mountpoint path: /acfspoc
User: oracle
Type: ACFS
Mount options:
Description:
ACFS file system is enabled
ACFS file system is individually enabled on nodes:
ACFS file system is individually disabled on nodes:




9. Now validate the ACFS mount points

oracle@NODE1$ df -kh /acfspoc
Filesystem             Size   Used  Available Capacity  Mounted on
/dev/asm/sharedvol1-201
                        50G   178M        50G     1%    /acfspoc
						
						
oracle@NODE2:/acfspoc$ df -kh /acfspoc
Filesystem             Size   Used  Available Capacity  Mounted on
/dev/asm/sharedvol1-201
                        50G   178M        50G     1%    /acfspoc


Try creating a test file on node1 and check whether the same is available on node 2.

oracle@NODE1:/acfspoc$ touch test.log

oracle@NODE1:/acfspoc$ ls -ltr
total 128
drwx------   2 root     root       65536 Oct 30 10:34 lost+found
-rw-r--r--   1 oracle   oinstall       0 Oct 30 10:39 test.log



oracle@NODE2:~$ cd /acfspoc/
oracle@NODE2:/acfspoc$ ls -ltr
total 128
drwx------   2 root     root       65536 Oct 30 10:34 lost+found
-rw-r--r--   1 oracle   oinstall       0 Oct 30 10:39 test.log



We have successfully created the ACFS file system in a two node RAC.

In this next article, we will show, How to create the ACFS file system using ASMCA GUI utility.