Contents

• • • • • • • • • Introduction ACFS Components ACFS Prerequisites ASM Configuration Assistant (ASMCA) Oracle Enterprise Manager (OEM) Command Line / SQL ACFS Snapshots Managing ACFS About the Author

Introduction
Introduced with Oracle ASM 11g Release 2, Oracle ASM Cluster File System (Oracle ACFS) is a general purpose POSIX compliant cluster file system implemented as part of Oracle Automatic Storage Management (Oracle ASM). Being POSIX compliant, all operating system utilities we use with ext3 and other file systems can also be used with Oracle ACFS given it belongs to the same family of related standards. Oracle ACFS extends the Oracle ASM architecture and is used to support many types of files which are typically maintained outside of the Oracle database. For example Oracle ACFS can be used to store BFILEs, database trace files, executables, report files and even general purpose files like image, text, video, and audio files. In addition, Oracle ACFS can be used as a shared file system for Oracle home binaries. The features included with Oracle ACFS allow users to create, mount, and manage ACFS using familiar Linux commands. Oracle ACFS provides support for snapshots and the ability to dynamically resize existing file systems online using Oracle ASM Dynamic Volume Manager (ADVM). Oracle ACFS leverages Oracle ASM functionality that enables: • • • • Oracle ACFS dynamic file system resizing Maximized performance through direct access to Oracle ASM disk group storage Balanced distribution of Oracle ACFS across Oracle ASM disk group storage for increased I/O parallelism Data reliability through Oracle ASM mirroring protection mechanisms

While Oracle ACFS is useful for storing general purpose files, there are certain files that it is not meant for. For example, Oracle ASM (traditional disk groups) is still the preferred storage manager for all database files because Oracle ACFS does not support directIO for file read and write operations in 11g Release 2 (11.2). Oracle ASM was specifically designed and optimized to provide the best performance for database file types. In addition to Oracle database files, Oracle ACFS does not support files for the Oracle Grid Infrastructure home. Finally, Oracle ACFS does not support any Oracle files that can be directly stored in Oracle ASM. For example, SPFILE, flashback log files, control files, archived redo log files, the Grid Infrastructure OCR and voting disk, etc should be stored in Oracle ASM disk groups. The key point to remember is that Oracle ACFS is the preferred file manager for non-database files and is optimized for general purpose / customer files which are maintained outside of the Oracle database. This article describes three ways to create an Oracle ASM Cluster File System in an Oracle 11g Release 2 RAC database on the Linux operating environment: • ASM Configuration Assistant (ASMCA)

• •

Oracle Enterprise Manager (OEM) Command Line / SQL

There is actually a fourth method that can be employed to create an Oracle ASM Cluster File System which is to use the ASMCMD command line interface. Throughout this guide, I'll demonstrate how to use the ASMCMD command line interface in place of SQL where appropriate. The Linux distribution used in this guide is CentOS 5.5. CentOS is a free Enterprise-class Linux Distribution derived from the Red Hat Enterprise Linux (RHEL) source and aims to be 100% binary compatible. Although Centos 5 is equivalent to RHEL 5, the CentOS operating system is not supported by Oracle ASM Cluster File System. Refer to the workaround documented in the prerequisites section of this article if you are using CentOS or a similar Red Hat clone. It is assumed that an Oracle RAC database is already installed, configured, and running. Refer to this guide for instructions on how to build an inexpensive two-node Oracle RAC 11g Release 2 database on Linux.

ACFS Components
Before diving into the details on how to create and manage Oracle ASM Cluster File System, it may be helpful to first discuss the major components. Figure 1 shows the various components that make up Oracle ACFS and provides an illustration of the example configuration that will be created using this guide.

Figure 1: Oracle ASM Cluster File System Components Everything starts with an Oracle ASM disk group. An Oracle ASM disk group is made up of one or more disks shown in figure 1 as DOCSDG1. The next component is an Oracle ASM volume which is created within an Oracle ASM disk group. The example configuration illustrated above shows that we will be creating three volumes named docsvol1, docsvol2, and docsvol3 on the new disk group namedDOCSDG1. Finally, we will be creating a cluster file system for each volume whose mount points will be /documents1, /documents2, and /documents3 respectively. With Oracle ACFS, as long as there exists free space within the ASM disk group, any of the volumes can be dynamically expanded which means the file system gets expanded as a result. As I will demonstratelater in this article, expanding a volume / file system is an effortless process and can be performed online without the need to take any type of outage! Oracle ASM Dynamic Volume Manager (ADVM) Besides an Oracle ASM disk group, another key component to Oracle ACFS is the new Oracle ASM Dynamic Volume Manager (ADVM). ADVM provides volume management services and a standard driver interface to its client (ACFS, ext3, ext4, reiserfs, OCFS2, etc.). The ADVM services include functionality to create, resize, delete, enable, and disable dynamic volumes. An ASM dynamic volume is constructed out of an ASM file with an 'ASMVOL' type attribute to distinguish it from other ASM file types (i.e. DATAFILE, TEMPFILE, ONLINELOG, etc.):

ASM File Name / Volume Name / Device Name Bytes File Type --------------------------------------------------------------- ----------------------------------+CRS/racnode-cluster/ASMPARAMETERFILE/REGISTRY.253.734544679 1,536 ASMPARAMETERFILE +CRS/racnode-cluster/OCRFILE/REGISTRY.255.734544681 272,756,736 OCRFILE -----------------272,758,272 +DOCSDG1 [DOCSVOL1] /dev/asm/docsvol1-300 ASMVOL +DOCSDG1 [DOCSVOL2] /dev/asm/docsvol2-300 ASMVOL +DOCSDG1 [DOCSVOL3] /dev/asm/docsvol3-300 ASMVOL 34,359,738,368 34,359,738,368 26,843,545,600 -----------------95,563,022,336 +FRA/RACDB/ARCHIVELOG/2010_11_08/thread_1_seq_69.264.734565029 ARCHIVELOG +FRA/RACDB/ARCHIVELOG/2010_11_08/thread_2_seq_2.266.734565685 ARCHIVELOG < SNIP > +FRA/RACDB/ONLINELOG/group_3.259.734554873 ONLINELOG +FRA/RACDB/ONLINELOG/group_4.260.734554877 ONLINELOG 52,429,312 52,429,312 -----------------12,227,537,408 +RACDB_DATA/RACDB/CONTROLFILE/Current.256.734552525 CONTROLFILE +RACDB_DATA/RACDB/DATAFILE/EXAMPLE.263.734552611 DATAFILE +RACDB_DATA/RACDB/DATAFILE/SYSAUX.260.734552569 DATAFILE +RACDB_DATA/RACDB/DATAFILE/SYSTEM.259.734552539 DATAFILE +RACDB_DATA/RACDB/DATAFILE/UNDOTBS1.261.734552595 DATAFILE +RACDB_DATA/RACDB/DATAFILE/UNDOTBS2.264.734552619 DATAFILE +RACDB_DATA/RACDB/DATAFILE/USERS.265.734552627 DATAFILE +RACDB_DATA/RACDB/ONLINELOG/group_1.257.734552529 ONLINELOG +RACDB_DATA/RACDB/ONLINELOG/group_2.258.734552533 ONLINELOG +RACDB_DATA/RACDB/ONLINELOG/group_3.266.734554871 ONLINELOG +RACDB_DATA/RACDB/ONLINELOG/group_4.267.734554875 18,890,752 157,294,592 1,121,984,512 744,497,152 791,683,072 209,723,392 5,251,072 52,429,312 52,429,312 52,429,312 52,429,312 42,991,616 41,260,544

456 4. may contain a file system such as ext3. ext4.ONLINELOG +RACDB_DATA/RACDB/PARAMETERFILE/spfile.331.1 root asmadmin 252. $ ls -l /dev/asm/ total 0 brwxrwx--. Under Linux. OCFS2 or Oracle ACFS may used (as described in this guide) in which case the oracleacfs driver is also used for I/O to the file system.352. the ADVM device driver automatically creates a volume device on the OS that is used by clients to access the volume. Creating a new volume in an Oracle ASM disk group can be performed using the ASM Configuration Assistant (ASMCA). A volume may be created in its own Oracle ASM disk group or can share space in an already existing disk group. On the Linux platform. all volume devices are externalized to the OS and appear dynamically as special files in the /dev/asm directory.734552605 TEMPFILE +RACDB_DATA/RACDB/spfileracdb. Oracle ADVM volume devices are created as block devices regardless of the configuration of the underlying storage in the Oracle ASM disk group. 153601 Nov 28 13:49 docsvol1-300 brwxrwx--. ADVM uses Dirty Region Logging (DRL) for mirror recovery after a node or instance failure. reiserfs. SQL.1 root asmadmin 252. Do not use raw (8) to map Oracle ADVM volume block devices into raw volume devices.608 -----------------3.608 93.262. In this guide. Any number of volumes can be created in an ASM disk group.734554879 PARAMETERFILE +RACDB_DATA/RACDB/TEMPFILE/TEMP. ADVM writes data in 128KB stripes in a Round Robin fashion to each column before starting on the next four column extents. An ADVM volume is four columns of 64MB extents and 128KB stripe width by default.464 Oracle ACFS and other supported 3rd party file systems can use Oracle ADVM as a volume management platform to create and manage file systems while leveraging the full power and functionality of Oracle ASM features. we will use this OS volume device to create an Oracle ACFS. 153603 Nov 28 13:56 docsvol3-300 $ /sbin/mkfs -t acfs -b 4k /dev/asm/docsvol3-300 -n "DOCSVOL3" Oracle ADVM implements its own extent and striping algorithm to ensure the highest performance for general purpose files. or ASMCMD. This DRL scheme requires a DRL file in the ASM disk group to be associated with each ASM dynamic volume.382. These volumes may be used as block devices. 153602 Nov 28 13:49 docsvol2-300 brwxrwx--.1 root asmadmin 252. .ora PARAMETERFILE 4. For example: asmcmd volcreate -G docsdg1 -s 20G docsvol3 Once a new volume is created in Linux.268. Oracle Enterprise Manager (OEM).

which are installed into the Grid Infrastructure Home using the Oracle Universal Installation (OUI) tool. Log In as the Grid Infrastructure User To perform the examples demonstrated in this guide.2) .0/grid [grid@racnode1 ~]$ echo $ORACLE_SID +ASM1 Verify / Create ASM Disk Group After validating the Oracle Grid Infrastructure installation and logging in as the Oracle Grid Infrastructure owner (grid).2) or higher is required for Oracle ACFS. Oracle ACFS. Oracle ADVM. name.2. Oracle Grid Infrastructure includes Oracle Clusterware.1200(asmadmin).999 999.999.999 999. it is assumed that the Oracle Grid Infrastructure owner is 'grid'. the next step is to decide which Oracle ASM disk group should be used to create the Oracle ASM dynamic volume(s). oraenv ORACLE_SID = [+ASM1] ? +ASM1 The Oracle base for ORACLE_HOME=/u01/app/11. If the Oracle Grid Infrastructure owner is 'oracle'.99 heading heading heading heading heading "Instance ID" "Disk Group" "Total (MB)" "Free (MB)" "% Free" justify justify justify justify justify left left right right right ====================================================================== SQL> select inst_id.ACFS Prerequisites Install Oracle Grid Infrastructure Oracle Grid Infrastructure 11g Release 2 (11. Oracle ASM. free_mb.1202(asmoper) [grid@racnode1 ~]$ . round((free_mb/total_mb)*100. and driver resources software components. then log in as the oracle account. Refer to this guide for instructions on how to configure Oracle Grid Infrastructure as part of an Oracle RAC 11g Release 2 database install on Linux. Log in as the Oracle Grid Infrastructure owner and switch to the Oracle ASM environment on node 1 of the RAC when performing non-root ACFS tasks: [grid@racnode1 ~]$ id uid=1100(grid) gid=1000(oinstall) groups=1000(oinstall).999. total_mb.0/grid is /u01/app/grid [grid@racnode1 ~]$ dbhome /u01/app/11.1201(asmdba).2. The following SQL demonstrates how to search the available ASM disk groups: break on inst_id skip 1 column column column column column inst_id name total_mb free_mb pct_free format format format format format 9999999 a15 999.

------------.623 82.887 24.809 24. I already setup a shared iSCSI volume and provisioned it using ASMLib.37 2 CRS FRA RACDB_DATA 2.809 82.19 RACDB_DATA 33. .-----------. After verifying the disk group was created.pct_free 2 from gv$asm_diskgroup 3 where total_mb != 0 4 order by inst_id.04 FRA 33. log in to the Oracle ASM instance on all other RAC nodes and mount the new disk group: [grid@racnode1 ~]$ sqlplus / as sysasm SQL> CREATE DISKGROUP docsdg1 EXTERNAL REDUNDANCY DISK 'ORCL:ASMDOCSVOL1' SIZE 98303 M. os_mb from v$asm_disk. Diskgroup created. I will be creating a dedicated Oracle ASM disk group named DOCSDG1 which will be used for all three Oracle ASM dynamic volumes. [grid@racnode1 ~]$ sqlplus / as sysasm SQL> select path.------1 CRS 2. The ASMLib shared volume that will be used to create the new disk group is named ORCL:ASMDOCSVOL1.19 90. the Oracle ASM dynamic volume(s) can be created on that free space or a new ASM disk group can be created.802 73.205 33.887 33. header_status.04 73.303 CRSVOL1 MEMBER 2.887 30.205 1. name. log in to the Oracle ASM instance and create the new disk group from one of the Oracle RAC nodes. For the purpose of this guide.--------------.623 90.37 The same task can be accomplished using the ASMCMD command-line utility: [grid@racnode1 ~]$ asmcmd lsdg If you find an existing Oracle ASM disk group that has adequate space.-----------. name.---------PROVISIONED 98.887 1.802 30.887 FRAVOL1 MEMBER 33. Instance ID Disk Group Total (MB) Free (MB) % Free ----------.205 DATAVOL1 MEMBER 33. PATH -----------------ORCL:ASMDOCSVOL1 ORCL:CRSVOL1 ORCL:DATAVOL1 ORCL:FRAVOL1 NAME HEADER_STATUS OS_MB --------------.887 After identifying the ASMLib volume and verifying it is accessible from all Oracle RAC nodes.

6.096 1.--------------.048.576 MOUNTED RACDB_DATA 512 4.264 9 --------------.------.282 12.048.-----.048. a workaround is required to enable Oracle ACFS.795 [root@racnode1 ~]# uname -a Linux racnode1 2.264 9 --------------.576 MOUNTED DOCSDG1 512 4.-------------.576 MOUNTED RACDB_DATA 512 4.096 1.576 MOUNTED Grand Total: Type Total Size (MB) Used Size (MB) Pct. U -----.576 MOUNTED FRA 512 4.-------------.----------.18-194.085 26 EXTERN 33.303 50 EXTERN 33.576 MOUNTED DOCSDG1 512 4.-----EXTERN 2.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux On supported operating systems.048.576 MOUNTED FRA 512 4.0/grid/bin/acfsload start -s . Diskgroup altered.096 1.096 1.887 3.048.SQL> @asm_diskgroups Disk Group Sector Block Allocation Name Size Size Unit Size State ---------.-----.096 1.-------------168.795 =========================================================================================== [grid@racnode2 ~]$ sqlplus / as sysasm SQL> ALTER DISKGROUP docsdg1 MOUNT.-------CRS 512 4.-------------168. One of the first tasks is to manually start the Oracle ASM volume driver: [root@racnode1 ~]# /u01/app/11.085 26 EXTERN 33.282 12.096 1.887 9.205 396 17 EXTERN 98.887 9. the Oracle ACFS modules will be configured and the Oracle ASM volume driver started by default after installing Oracle Grid Infrastructure.096 1.----------. With CentOS and other unsupported operating systems.303 50 EXTERN 33.096 1. U -----.--------------.048.------.2.205 396 17 EXTERN 98.-------CRS 512 4.-----EXTERN 2. SQL> @asm_diskgroups Disk Group Sector Block Allocation Name Size Size Unit Size State ---------.576 MOUNTED Grand Total: Verify Oracle ASM Volume Driver The operating environment used in this guide is CentOS 5.887 3.048.5 x86_64: Type Total Size (MB) Used Size (MB) Pct.048.

First. make a copy of the following Perl module: [root@racnode1 ~]# cd /u01/app/11. This workaround includes some of the manual steps that are required to launch the Oracle ASM volume driver when installing Oracle ACFS on a non-clustered system.2.pm. Replace if (($release =~ /enterprise-release-5/) || ($release =~ /redhat-release-5/)) with if (($release =~ /enterprise-release-5/) || ($release =~ /redhat-release-5/) || ($release =~ /centos-release-5/)) This will get you past the supported version check.2. the Oracle ACFS modules do not get installed on CentOS because it is not a supported operating environment.orig Next.pm Perl module. The steps documented in this section serve as a workaround in order to setup Oracle ACFS on CentOS and is by no means supported by Oracle Corporation. but unsupported.2.pm osds_acfslib. Search for the string 'support this release' (which was line 278 in my case). By default.orig [root@racnode2 ~]# cd /u01/app/11. This section provides a simple.pm. The following steps will need to be run from all nodes in an Oracle RAC database cluster as root. you get the following error: [root@racnode1 ~]# /u01/app/11. if you attempt to load the Oracle ASM volume driver from either Oracle RAC node. edit the osds_acfslib.el5. You have been warned.centos The failed output from the above command should come as no surprise given Oracle ACFS is not supported on CentOS.0/grid/lib [root@racnode2 lib]# cp -p osds_acfslib.pm osds_acfslib.ADVM/ACFS is not supported on centos-release-5-5.0/grid/bin/acfsload start -s . Do not attempt these steps on a critical production environment. workaround to get Oracle ACFS working on CentOS. however.0/grid/lib [root@racnode1 lib]# cp -p osds_acfslib.

el5/extra/usm/ [root@racnode2 ~]# mkdir /lib/modules/2.2.6.el5/extra/usm/ Once the kernel modules have been copied.2.0/grid/install/usm/EL5/x86_64/2.0/grid version ACFS-9205: OS/ADVM.6.acfs* /sbin.0/grid/install/usm/cmds/bin .0/grid/install/usm/EL5/x86_64/2.6.18-8.ko extension: [root@racnode1 [root@racnode1 [root@racnode1 [root@racnode1 [root@racnode1 [root@racnode1 ~]# cd /u01/app/11.acfs* /sbin.el5-x86_64/bin [root@racnode2 bin]# cp *ko /lib/modules/2.18-194.el5(x86_64)/090715.18-8.0/grid/install/usm/EL5/x86_64/2.el5/extra/usm [root@racnode1 ~]# cd /u01/app/11.18-8/2.6.6. chmod 755 /sbin/mount.el5/extra/usm [root@racnode2 ~]# cd /u01/app/11.0/grid/install/usm/cmds/bin directory (12 files) and include any file without the *./acfsdriverstate -orahome /u01/app/11.6.acfs* [root@racnode1 ~]# cd /u01/app/11.el5-x86_64/bin [root@racnode1 bin]# cp *ko /lib/modules/2.6. chmod 755 /sbin/advmutil* bin]# cp fsck. The Oracle ACFS executables are located in theGRID_HOME/install/usm/EL5/<ARCHITECTURE>/<KERNEL_VERSION>/<FULL_KERNEL_VERS ION>/bin directory or in the /u01/app/11.2.188. chmod 755 /sbin/mkfs.6.2.2.1 The next step is to record dependencies for the new kernel modules: [root@racnode1 ~]# depmod [root@racnode2 ~]# depmod Next.2.acfsload: ACFS-9129: ADVM/ACFS not installed To install ADVM/ACFS. we can verify the ADVM/ACFS installation by running the following from all Oracle RAC nodes: [root@racnode1 ~]# cd /u01/app/11. chmod 755 /sbin/fsck.188.6.2./acfsdriverstate -orahome /u01/app/11.acfs* /sbin.2.6.6.2.ACFS installed version = 2.acfs* bin]# cp mkfs.el5-x86 bin]# cp acfs* /sbin.18-8.6.18-8/2. chmod 755 /sbin/acfs* bin]# cp advmutil* /sbin.18-194.18-194. copy the following kernel modules from the Oracle Grid Infrastructure home to the expected location: [root@racnode1 ~]# mkdir /lib/modules/2.acfs* bin]# cp mount.0/grid/bin [root@racnode1 bin]# .18-194.18-8/2.0/grid version ACFS-9205: OS/ADVM. copy the Oracle ACFS executables to /sbin and set the appropriate permissions.0/grid/bin [root@racnode2 bin]# .el5(x86_64)/090715.ACFS installed version = 2.1 [root@racnode2 ~]# cd /u01/app/11.

acfs* /sbin.d runlevel directories using 'chkconfig --add': .d.6.6.acfs* /sbin. You will need to create an initialization script ( /etc/init.d/acfsload) that contains the runlevel configuration and the acfsload command.0/grid/install/usm/EL5/x86_64/2.el5-x86 bin]# cp acfs* /sbin.acfs* mkfs.acfs* /sbin.[root@racnode1 [root@racnode1 [root@racnode1 [root@racnode1 [root@racnode1 bin]# bin]# bin]# bin]# bin]# cp cp cp cp cp acfs* /sbin. chmod 755 /sbin/advmutil* fsck.acfs* /sbin.2. chmod 755 /sbin/mount.acfs* bin]# cp mount.2. chmod 755 /sbin/mount. chmod 755 /sbin/advmutil* bin]# cp fsck.acfs* mount. rc4.0/grid/install/usm/cmds/bin bin]# cp acfs* /sbin.acfs* /sbin.d. chmod 755 /sbin/acfs* bin]# cp advmutil* /sbin. rc3.acfs* /sbin. and rc5.oracleadvm oracleasm 84136 1 Configure the Oracle ASM volume driver to load automatically on system startup on all Oracle RAC nodes.oracleadvm oracleasm 84136 1 [root@racnode2 ~]# lsmod | grep oracle oracleacfs 877320 4 oracleadvm 221760 8 oracleoks 276880 2 oracleacfs. chmod 755 /sbin/mount. chmod 755 /sbin/fsck.acfs* /sbin.d. chmod 755 /sbin/advmutil* bin]# cp fsck. Change the permissions on the /etc/init. running acfsload start -s will complete without any further messages: [root@racnode1 ~]# /u01/app/11.acfs* ~]# cd /u01/app/11. chmod 755 /sbin/fsck.acfs* bin]# cp mount.18-8/2. chmod 755 /sbin/acfs* bin]# cp advmutil* /sbin.2.d/acfsload script to allow it to be executed by root and then create links in the rc2.0/grid/bin/acfsload start -s Check that the modules were successfully loaded on all Oracle RAC nodes: [root@racnode1 ~]# lsmod | grep oracle oracleacfs 877320 4 oracleadvm 221760 8 oracleoks 276880 2 oracleacfs.18-8. chmod 755 /sbin/mkfs.acfs* /sbin.acfs* bin]# cp mkfs.acfs* Now.acfs* bin]# cp mkfs.acfs* /sbin. chmod 755 /sbin/acfs* advmutil* /sbin.2. chmod 755 /sbin/mkfs. chmod 755 /sbin/mkfs. chmod 755 /sbin/fsck.0/grid/bin/acfsload start -s [root@racnode2 ~]# /u01/app/11.acfs* ------------------------------------------------------------------------------------------[root@racnode2 [root@racnode2 [root@racnode2 [root@racnode2 [root@racnode2 [root@racnode2 [root@racnode2 [root@racnode2 [root@racnode2 [root@racnode2 [root@racnode2 [root@racnode2 ~]# cd /u01/app/11.

registry.0/grid export ORACLE_HOME \$ORACLE_HOME/bin/acfsload start -s EOF [root@racnode2 ~]# cat > /etc/init.2.2.d/acfsload <<EOF #!/bin/sh # chkconfig: 2345 30 21 # description: Load Oracle ASM volume driver on system startup ORACLE_HOME=/u01/app/11.acfs' resource does not exist.d/acfsload ======================================================= [root@racnode1 ~]# chkconfig --add acfsload [root@racnode2 ~]# chkconfig --add acfsload ======================================================= [root@racnode1 ~]# chkconfig --list | grep acfsload acfsload 0:off 1:off 2:on 3:on 4:on [root@racnode2 ~]# chkconfig --list | grep acfsload acfsload 0:off 1:off 2:on 3:on 4:on 5:on 5:on 6:off 6:off If the Oracle Grid Infrastructure 'ora.d/acfsload <<EOF #!/bin/sh # chkconfig: 2345 30 21 # description: Load Oracle ASM volume driver on system startup ORACLE_HOME=/u01/app/11.[root@racnode1 ~]# chkconfig --list | grep acfsload [root@racnode2 ~]# chkconfig --list | grep acfsload ======================================================= [root@racnode1 ~]# cat > /etc/init. create it.d/acfsload [root@racnode2 ~]# chmod 755 /etc/init. This only needs to be performed from one of the Oracle RAC nodes: .0/grid export ORACLE_HOME \$ORACLE_HOME/bin/acfsload start -s EOF ======================================================= [root@racnode1 ~]# chmod 755 /etc/init.

type \ -basetype ora.2.registry.type \ -file /u01/app/11.type [root@racnode2 ~]# su .grid -c crs_stat | grep acfs NAME=ora.bin: error while loading shared libraries: libhasgen11. For example: [root@racnode1 ~]# /sbin/acfsutil registry /sbin/acfsutil.acfs.grid -c crs_stat | grep acfs [root@racnode2 ~]# su .type [root@racnode1 ~]# /u01/app/11.acfs.type As a final step.[root@racnode1 ~]# su .acfs.grid -c crs_stat | grep acfs NAME=ora.grid -c crs_stat | grep acfs ======================================================= [root@racnode1 ~]# /u01/app/11.0/grid ORA_CRS_HOME=%ORA_CRS_HOME% if [ ! -d $ORA_CRS_HOME ]. # ORACLE_HOME=/u01/app/11.registry. modify any of the Oracle ACFS shell scripts copied to the /sbin directory (above) to include the ORACLE_HOME for Grid Infrastructure.type -f ======================================================= [root@racnode1 ~]# su .acfs TYPE=ora. Since many of the Oracle ACFS shell scripts will be executed as the root user account.registry.registry.acfs TYPE=ora. The successful execution of these scripts requires access to certain Oracle shared libraries that are found in the Grid Infrastructure Oracle home. then ORA_CRS_HOME=$ORACLE_HOME .other::r--\' \ -type ora.0/grid/bin/crsctl add type ora.0/grid/bin/crsctl add resource ora. The ORACLE_HOME should be set at the beginning of the file after the header comments as shown in the following example: #!/bin/sh # # Copyright (c) 2001. All rights reserved.registry.acfs \ -attr ACL=\'owner:root:rwx.local_resource.registry. the ORACLE_HOME environment variable will typically not be set in the shell and will result in the executable to fail.registry. 2009.2.pgrp:oinstall:r-x.2.so: cannot open shared object file: No such file or directory An easy workaround to get past this error is to set the ORACLE_HOME environment variable for the Oracle Grid Infrastructure home in the Oracle ACFS shell scripts on all Oracle RAC nodes.2. Oracle and/or its affiliates.acfs.0/grid/crs/template/registry.acfs.

SQL> ALTER DISKGROUP docsdg1 SET ATTRIBUTE 'compatible.0.0. we need to set the compatibility to at least 11.acfs /sbin/mount.asm' = '11.2 in order to create an Oracle ASM volume. verify that theOracle .acfs Verify ASM Disk Group Compatibility Level The compatibility level for the Oracle ASM disk group must be at least 11. SQL> ALTER DISKGROUP docsdg1 SET ATTRIBUTE 'compatible.0 If the results show something other than 11.2 by issuing the following series of SQL statements from the Oracle ASM instance: [grid@racnode1 ~]$ sqlplus / as sysasm SQL> ALTER DISKGROUP docsdg1 SET ATTRIBUTE 'compatible.2'.rdbms' = '11.. Diskgroup altered. perform the following checks: SQL> SELECT compatibility.2'. If you receive an error while attempting to set the 'compatible.1.1. COMPATIBILITY DATABASE_COMPATIBILITY ---------------. database_compatibility 2 FROM v$asm_diskgroup 3 WHERE name = 'DOCSDG1'.0 10.2 or higher (as the above example shows). Diskgroup altered.2'..----------------------10.acfs /sbin/mkfs.advm' = '11. Diskgroup altered. Add the ORACLE_HOME environment variable for the Oracle Grid Infrastructure home as noted above to the following Oracle ACFS shell scripts on all Oracle RAC nodes: • • • • • • /sbin/acfsdbg /sbin/acfsutil /sbin/advmutil /sbin/fsck. From the Oracle ASM instance.fi .0.advm' attribute.0.

2. ALTER DISKGROUP docsdg1 SET ATTRIBUTE 'compatible.0.0.advm' = '11.advm' = '11. Note that at the time of this writing.0.0.advm ORA-15238: 11. run the ASM Configuration Assistant (asmca) from only one node in the cluster (racnode1 for example): [grid@racnode1 ~]$ asmca . Deleting an Oracle ASM volume or file system requires the command-line. ASMCA only supports the creation of volumes and file systems.2' * ERROR at line 1: ORA-15032: not all alterations performed ORA-15242: could not set attribute compatible.0 ASM Configuration Assistant (ASMCA) This section includes step-by-step instructions on how to create an Oracle ASM cluster file system using the Oracle ASM Configuration Assistant (ASMCA).0 11. create a directory that will be used to mount the new Oracle ACFS: [root@racnode1 ~]# mkdir /documents1 [root@racnode2 ~]# mkdir /documents1 Create ASM Cluster File System As the Oracle Grid Infrastructure owner.advm ORA-15477: cannot communicate with the volume driver Verify the changes to the compatibility level: SQL> SELECT compatibility. Create Mount Point From each Oracle RAC node. COMPATIBILITY DATABASE_COMPATIBILITY ---------------.----------------------11.2'.ASM volume driver is running: SQL> ALTER DISKGROUP docsdg1 SET ATTRIBUTE 'compatible.2.2 is not a valid value for attribute compatible. database_compatibility 2 FROM v$asm_diskgroup 3 WHERE name = 'DOCSDG1'.

Mount the New Cluster File System Now that the new Oracle ASM cluster file system has been created and registered in the Oracle ACFS mount registry.bin: error while loading shared libraries: libhasgen11. Oracle and/or its affiliates.2. Screen Shot Volumes Click on the 'Volumes' tab then click the [Create] button. log in to all Oracle RAC nodes as root and run the following mount command: [root@racnode1 ~]# /bin/mount -t acfs /dev/asm/docsvol1-300 /documents1 /sbin/mount. An easy workaround to get past this error is to set the ORACLE_HOME environment variable for Grid Infrastructure in the file /sbin/mount. "Disk Group Name". click the [OK] button. the "State" for the new ASM volume should be ENABLED for all Oracle RAC nodes (i. For the purpose of this example.acfs on all Oracle RAC nodes. Note that the new clustered file system is not mounted.so: cannot open shared object file: No such file or directory [root@racnode2 ~]# /bin/mount -t acfs /dev/asm/docsvol1-300 /documents1 /sbin/mount. Exit the ASM Configuration Assistant by clicking the [Exit] button. the Oracle ASM ACFS binaries need access to certain shared libraries in the ORACLE_HOME for Grid Infrastructure. then .Screen Name Disk Groups Response When the Oracle ASM configuration assistant starts you are presented with the ' Disk Groups' tab. # ORACLE_HOME=/u01/app/11. That will need to be performed manually on all Oracle RAC nodes as a privileged user ( ASM Cluster File Systems root) after exiting from the ASMCA. Create ASM Volume Volume Created ASM Cluster File Systems Create ASM Cluster File System ASM Cluster File System After the ASM Cluster File System is created.acfs. 2009. After verifying all values in this dialog are correct.0/grid ORA_CRS_HOME=%ORA_CRS_HOME% if [ ! -d $ORA_CRS_HOME ]. acknowledge the ' ASM Cluster File System: Creation' dialog. the mount command will fail as shown above. Click on the 'ASM Cluster File Systems' tab then click the [Create] button. After the volume is created.bin: error while loading shared libraries: libhasgen11. After verifying all values in this dialog are correct. acknowledge the 'Volume: Creation' dialog. and "Size". click the [OK] button. All rights reserved.acfs. I will be creating a 32GB volume named "docsvol1" on the "DOCSDG1" ASM disk group. Select the 'General Purpose File System' option. When returned to the "Volumes" tab. 'ENABLED(2 of 2)'). Select the 'Yes' option for 'Register MountPoint'. The ORACLE_HOME should be set at the beginning of the file after the header comments as follows: #!/bin/sh # # Copyright (c) 2001.e. Create a new ASM volume by supplying a "Volume Name". Created The newly created Oracle ASM cluster file system is now listed under the ' ASM Cluster File Systems' tab. In order to mount the new cluster file system. Verify that the newly created volume (DOCSVOL1) is selected in the 'Volume' list. Enter the previously created mount point directory (/documents1) or leave the suggested mount point.so: cannot open shared object file: No such file or directory If you don't have the ORACLE_HOME environment variable set to the Oracle Grid Infrastructure home as explained in the prerequisites section to this guide.

121) oracleasmfs on /dev/oracleasm type oracleasmfs (rw) /dev/asm/docsvol1-300 on /documents1 type acfs (rw) Set Permissions With the new cluster file system now mounted on all Oracle RAC nodes.gid=5.1..gid=5.121) oracleasmfs on /dev/oracleasm type oracleasmfs (rw) /dev/asm/docsvol1-300 on /documents1 type acfs (rw) [root@racnode2 ~]# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw. change the permissions to allow user access. You should now be able to successfully mount the volume: [root@racnode1 ~]# /bin/mount -t acfs /dev/asm/docsvol1-300 /documents1 [root@racnode2 ~]# /bin/mount -t acfs /dev/asm/docsvol1-300 /documents1 Verify Mounted Cluster File System To verify that the new cluster file system mounted properly. run the following mount command from all Oracle RAC nodes: [root@racnode1 ~]# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw.mode=620) /dev/sdb1 on /local type ext3 (rw) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) domo:PUBLIC on /domo type nfs (rw..addr=192. Run the following as root from only one node in the Oracle RAC: .168.ORA_CRS_HOME=$ORACLE_HOME fi .addr=192.168. For the purpose of this example.mode=620) /dev/sdb1 on /local type ext3 (rw) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) domo:Public on /domo type nfs (rw.1. I want to grant the oracle user account and dba group read/write permissions.

1201(asmdba).1300(dba). and Alex" > /documents1/test. .txt [oracle@racnode2 ~]$ cat /documents1/test.txt [oracle@racnode1 ~]$ ls -l /documents1 total 72 drwxr-xr-x 5 root root 4096 Nov 23 21:17 .1201(asmdba). Melody.txt Node 2 Log in to the second Oracle RAC node as the oracle user account and verify the presence and content of the test file: [oracle@racnode2 ~]$ id uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall). Oracle Enterprise Manager (OEM).1301(oper) [oracle@racnode1 ~]$ echo "The Hunter Family: Jeff.ACFS/ drwx-----.1300(dba).2 root root 65536 Nov 23 21:17 lost+found/ -rw-r--r-.1 oracle oinstall 42 Nov 23 21:25 test. OEM provides a convenient graphical user interface for creating and maintaining ASM cluster file systems.1301(oper) [oracle@racnode2 ~]$ ls -l /documents1 total 72 drwxr-xr-x 5 root root 4096 Nov 23 21:17 . Similar to the ASM Configuration Assistant (ASMCA).[root@racnode1 ~]# chown oracle.2 root root 65536 Nov 23 21:17 lost+found/ -rw-r--r-.ACFS/ drwx-----. Melody.txt The Hunter Family: Jeff. Node 1 Log in to the first Oracle RAC node as the oracle user account and create a test file on the new cluster file system: [oracle@racnode1 ~]$ id uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall).dba /documents1 [root@racnode1 ~]# chmod 775 /documents1 Test Now let's perform a test to see if all of our hard work paid off. namely.1 oracle oinstall 42 Nov 23 21:25 test. and Alex Oracle Enterprise Manager (OEM) This section presents a second method that can be used to create an Oracle ASM cluster file system.

-----------------------------------------------------------------Logs are generated in directory /u01/app/oracle/product/11. For the purpose of this example. Create a new ASM volume by supplying a "Volume Name". After verifying all values in this dialog are correct. 2009 Oracle Corporation.0 Copyright (c) 1996. Select the option for 'Register ASM Cluster File System Mount Point'. -----------------------------------------------------------------Logs are generated in directory /u01/app/oracle/product/11. [oracle@racnode1 ~]$ emctl status dbconsole Oracle Enterprise Manager 11g Database Control Release 11. Enter the 'Mount Point' and click the [Generate Command] button. click the [Create] button.Create Mount Point From each Oracle RAC node.1. On the resulting ASM home screen. "Disk Group Name". Cluster Select Hosts Mount ASM Cluster File System Show Command Accept the default node selection (all Oracle RAC nodes) and click the [Continue] button. For example. The newly created ASM volume ( Create ASM Volume Create ASM Cluster File System field. All rights reserved.0. click on the 'ASM Cluster File System' tab. create a directory that will be used to mount the new Oracle ACFS: [root@racnode1 ~]# mkdir /documents2 [root@racnode2 ~]# mkdir /documents2 Create ASM Cluster File System Log in to Oracle Enterprise Manager (OEM) as a privileged database user. https://racnode1. and "Size". After verifying all values in this dialog are correct.1.2.2.0 Copyright (c) 1996. click the [OK] button. Scroll to the bottom of the OEM home page. All rights reserved. click the [OK] button.2.0/dbhome_1/racnode2_racdb/sysman/log Screen Name OEM Home Response From the OEM home screen. 2009 Oracle Corporation. DOCSVOL2.0. register it in the Oracle Grid Infrastructure registry.info:1158/em/console/aboutApplication EM Daemon is running. then click on one of the ASM instances listed. /dev/asm/docsvol2-300) will now be entered in the 'Volume Device' Automatic Storage Management OEM will create the new cluster file system. Enter a 'Volume Label'. Screen Shot Automatic Storage Management Create ASM Cluster File System Click the [Create ASM Volume] button.info:1158/em/console/aboutApplication Oracle Enterprise Manager 11g is running. Run the suggested command as the root user on all Oracle RAC nodes: . and leave it in the ' Dismounted' state. https://racnode1. Enter the previously created mount point directory ( /documents2).idevelopment.2. Next. click the 'Cluster' tab. I will be creating a 32GB volume named "docsvol2" on the "DOCSDG1" ASM disk group.0/dbhome_1/racnode1_racdb/sysman/log [oracle@racnode2 ~]$ emctl status dbconsole Oracle Enterprise Manager 11g Database Control Release 11. Select the new ASM volume and click the [Mount] button.idevelopment.

168.1. After mounting the ASM volume.mode=620) /dev/sdb1 on /local type ext3 (rw) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) domo:PUBLIC on /domo type nfs (rw.gid=5.121) oracleasmfs on /dev/oracleasm type oracleasmfs (rw) /dev/asm/docsvol1-300 on /documents1 type acfs (rw) /dev/asm/docsvol2-300 on /documents2 type acfs (rw) [root@racnode2 ~]# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw.mode=620) /dev/sdb1 on /local type ext3 (rw) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) domo:Public on /domo type nfs (rw.Screen Name Response Screen Shot [root@racnode1 ~]# /bin/mount -t acfs /dev/asm/docsvol2-300 /documents2 [root@racnode2 /]# /bin/mount -t acfs /dev/asm/docsvol2-300 /documents2 Automatic Storage Management The new Oracle ASM Cluster File System is ready for use! Note: If you receive an error loading Oracle shared libraries.addr=192.gid=5.addr=192.121) oracleasmfs on /dev/oracleasm type oracleasmfs (rw) /dev/asm/docsvol1-300 on /documents1 type acfs (rw) /dev/asm/docsvol2-300 on /documents2 type acfs (rw) Set Permissions With the new cluster file system now mounted on all Oracle RAC nodes.168. change the permissions to allow user access. refer to the following workaround.1. click the [Return] button on this and the previous screen. I want to grant the oracle user account and dba group read/write permissions. Run the following as root from only one node in the Oracle RAC: . Verify Mounted Cluster File System To verify that the new cluster file system mounted properly. For the purpose of this example. run the following mount command from all Oracle RAC nodes: [root@racnode1 ~]# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw.

Unlike using the ASM Configuration Assistant (ASMCA) or Oracle Enterprise Manager (OEM).1 oracle oinstall 42 Nov 24 14:10 test.1201(asmdba).1300(dba).1201(asmdba).ACFS/ drwx-----.1 oracle oinstall 42 Nov 24 14:10 test. the command line interface and SQL.[root@racnode1 ~]# chown oracle.txt [oracle@racnode1 ~]$ ls -l /documents2 total 72 drwxr-xr-x 5 root root 4096 Nov 24 13:32 .2 root root 65536 Nov 24 13:32 lost+found/ -rw-r--r-.txt [oracle@racnode2 ~]$ cat /documents2/test. using the command line tools . Melody. Node 1 Log in to the first Oracle RAC node as the oracle user account and create a test file on the new cluster file system: [oracle@racnode1 ~]$ id uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall).dba /documents2 [root@racnode1 ~]# chmod 775 /documents2 Test Now let's perform a test to see if all of our hard work paid off.1301(oper) [oracle@racnode2 ~]$ ls -l /documents2 total 72 drwxr-xr-x 5 root root 4096 Nov 24 13:32 .txt The Hunter Family: Jeff. and Alex Command Line / SQL This section presents the third and final method described in this guide that can be used to create an Oracle ASM cluster file system. Melody. and Alex" > /documents2/test.1300(dba).ACFS/ drwx-----.txt Node 2 Log in to the second Oracle RAC node as the oracle user account and verify the presence and content of the test file: [oracle@racnode2 ~]$ id uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall).1301(oper) [oracle@racnode1 ~]$ echo "The Hunter Family: Jeff. namely.2 root root 65536 Nov 24 13:32 lost+found/ -rw-r--r-.

Diskgroup altered. log in to the Oracle ASM instance using SQL*Plus and issue the following SQL: [grid@racnode1 ~]$ sqlplus / as sysasm SQL> ALTER DISKGROUP docsdg1 ADD VOLUME docsvol3 SIZE 20G.0/grid [grid@racnode1 ~]$ echo $ORACLE_SID +ASM1 As the Oracle Grid Infrastructure owner. Create Oracle ASM Dynamic Volume Log in as the Oracle Grid Infrastructure owner and switch to the Oracle ASM environment on node 1 of the RAC: [grid@racnode1 ~]$ id uid=1100(grid) gid=1000(oinstall) groups=1000(oinstall).1202(asmoper) [grid@racnode1 ~]$ .999 a5 heading heading heading heading heading "Instance ID" "Volume Name" "Volume Device" "Size (MB)" "Usage" justify justify justify justify justify left left left right right .999. GV$ASM_VOLUME).1200(asmadmin).2. query the view V$ASM_VOLUME (or since we are using Oracle RAC.2. The same task can be accomplished using the ASMCMD command-line utility: [grid@racnode1 ~]$ asmcmd volcreate -G docsdg1 -s 20G --redundancy unprotected docsvol3 To verify that the new Oracle ASM dynamic volume was successfully created.1201(asmdba). oraenv ORACLE_SID = [+ASM1] ? +ASM1 The Oracle base for ORACLE_HOME=/u01/app/11.0/grid is /u01/app/grid [grid@racnode1 ~]$ dbhome /u01/app/11. Make certain that the STATE column for each Oracle RAC instance is ENABLED: break on inst_id skip 1 column column column column column inst_id volume_name volume_device size_mb usage format format format format format 9999999 a13 a23 999.does not require a graphic user interface and is the preferred method when working remotely over a slow network.

----/dev/asm/docsvol1-300 32.768 ACFS 20. volume_name.480 /dev/asm/docsvol1-300 /dev/asm/docsvol2-300 /dev/asm/docsvol3-300 32. size_mb. usage.------------1 DOCSVOL1 DOCSVOL2 DOCSVOL3 2 DOCSVOL1 DOCSVOL2 DOCSVOL3 Volume Device Size (MB) Usage ----------------------.768 ACFS /dev/asm/docsvol2-300 32.column state format a7 heading "State" justify right ============================================================================ SQL> select inst_id. volume_name. Instance ID Volume Name ----------. state 2 from gv$asm_volume 3 order by inst_id.768 ACFS /dev/asm/docsvol3-300 20.768 ACFS 32. volume_device.-----------.480 State ------ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED The same task can be accomplished using the ASMCMD command-line utility: [grid@racnode1 ~]$ asmcmd volinfo -G docsdg1 -a Diskgroup Name: DOCSDG1 Volume Name: DOCSVOL1 Volume Device: /dev/asm/docsvol1-300 State: ENABLED Size (MB): 32768 Resize Unit (MB): 256 Redundancy: UNPROT Stripe Columns: 4 Stripe Width (K): 128 Usage: ACFS Mountpath: /documents1 Volume Name: DOCSVOL2 Volume Device: /dev/asm/docsvol2-300 State: ENABLED Size (MB): 32768 Resize Unit (MB): 256 Redundancy: UNPROT Stripe Columns: 4 Stripe Width (K): 128 Usage: ACFS Mountpath: /documents2 Volume Name: DOCSVOL3 Volume Device: /dev/asm/docsvol3-300 State: ENABLED Size (MB): 20480 Resize Unit (MB): 256 .

0.0 mkfs. list the newly created device file on the file system: [root@racnode1 ~]# ls -l /dev/asm/* brwxrwx--. 153601 Nov 26 16:55 /dev/asm/docsvol1-300 brwxrwx--.acfs: Format complete.acfs: version = 11.0 mkfs. Finally.1 root asmadmin 252.0.2.1 root asmadmin 252. the -t flag indicates that the new file system should be of type ACFS. To mount the new cluster file system.acfs: on-disk version = 39. In the above mkfs command.1 root asmadmin 252. The block size is set to 4K (-b). 153603 Nov 26 17:20 /dev/asm/docsvol3-300 Create Oracle ASM Cluster File System The next step is to create the Oracle ASM cluster file system on the new Oracle ASM volume created in the previous section. but does not actually mount it. Mount the New Cluster File System The mkfs command in the previous section only prepared the volume to be mounted as a file system.acfs: volume size = 21474836480 mkfs.Redundancy: UNPROT Stripe Columns: 4 Stripe Width (K): 128 Usage: Mountpath: Additional checks can be performed on the new ASM volume using the /sbin/advmutil command: [root@racnode1 ~]# /sbin/advmutil volinfo /dev/asm/docsvol3-300 Interface Version: 1 Size (MB): 20480 Resize Increment (MB): 256 Redundancy: unprotected Stripe Columns: 4 Stripe Width (KB): 128 Disk Group: DOCSDG1 Volume: DOCSVOL3 As a final check.acfs: volume = /dev/asm/docsvol3-300 mkfs. 153602 Nov 26 16:55 /dev/asm/docsvol2-300 brwxrwx--. specify the Linux dynamic volume device ( /dev/asm/docsvol3300) and the volume label (DOCSVOL3).1. This is performed using the mkfs OS command from only one of the Oracle RAC nodes: [grid@racnode1 ~]$ /sbin/mkfs -t acfs -b 4k /dev/asm/docsvol3-300 -n "DOCSVOL3" mkfs. first create a directory on each Oracle RAC node as the root user account that will be used to mount the new Oracle ACFS: .

bin: error while loading shared libraries: libhasgen11.. 2009. the mount command will fail as shown above.so: cannot open shared object file: No such file or directory If you don't have the ORACLE_HOME environment variable set to the Oracle Grid Infrastructure home as explained in the prerequisites section to this guide. the Oracle ASM ACFS binaries need access to certain shared libraries in the ORACLE_HOME for Grid Infrastructure. You should now be able to successfully mount the volume: [root@racnode1 ~]# /bin/mount -t acfs /dev/asm/docsvol3-300 /documents3 [root@racnode2 ~]# /bin/mount -t acfs /dev/asm/docsvol3-300 /documents3 Verify Mounted Cluster File System To verify that the new cluster file system mounted properly. then ORA_CRS_HOME=$ORACLE_HOME fi .so: cannot open shared object file: No such file or directory [root@racnode2 ~]# /bin/mount -t acfs /dev/asm/docsvol3-300 /documents3 /sbin/mount..acfs on all Oracle RAC nodes. Oracle and/or its affiliates. The ORACLE_HOME should be set at the beginning of the file after the header comments as follows: #!/bin/sh # # Copyright (c) 2001. An easy workaround to get past this error is to set the ORACLE_HOME environment variable for Grid Infrastructure in the file /sbin/mount. # ORACLE_HOME=/u01/app/11.acfs. run the following mount command from all Oracle RAC nodes: .acfs. All rights reserved.2. In order to mount the new cluster file system.0/grid ORA_CRS_HOME=%ORA_CRS_HOME% if [ ! -d $ORA_CRS_HOME ].[root@racnode1 ~]# mkdir /documents3 [root@racnode2 ~]# mkdir /documents3 Mount the cluster file system on each Oracle RAC node using the regular Linux mount command as follows: [root@racnode1 ~]# /bin/mount -t acfs /dev/asm/docsvol3-300 /documents3 /sbin/mount.bin: error while loading shared libraries: libhasgen11.

1.dba /documents3 [root@racnode1 ~]# chmod 775 /documents3 Register New Volume When creating the Oracle ACFS using the ASM Configuration Assistant (ASMCA) and Oracle Enterprise Manager (OEM). Run the following as root from only one node in the Oracle RAC: [root@racnode1 ~]# chown oracle.mode=620) /dev/sdb1 on /local type ext3 (rw) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) domo:PUBLIC on /domo type nfs (rw.1. much like the/etc/fstab file does in a UNIX/Linux environment.121) oracleasmfs on /dev/oracleasm type oracleasmfs (rw) /dev/asm/docsvol1-300 on /documents1 type acfs (rw) /dev/asm/docsvol2-300 on /documents2 type acfs (rw) /dev/asm/docsvol3-300 on /documents3 type acfs (rw) Set Permissions With the new cluster file system now mounted on all Oracle RAC nodes. I want to grant the oracle user account and dba group read/write permissions.gid=5. The Oracle ACFS mount registry acts as a global file system reference. . the newly created file systems do not remount by default.[root@racnode1 ~]# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw. For the purpose of this example. When mount points are registered in the Oracle ACFS mount registry.addr=192.gid=5.168.addr=192.121) oracleasmfs on /dev/oracleasm type oracleasmfs (rw) /dev/asm/docsvol1-300 on /documents1 type acfs (rw) /dev/asm/docsvol2-300 on /documents2 type acfs (rw) /dev/asm/docsvol3-300 on /documents3 type acfs (rw) [root@racnode2 ~]# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw. change the permissions to allow user access. When a node configured with Oracle ACFS reboots.168. I glossed over this notion of registering the new volume in the Oracle ACFS mount registry.mode=620) /dev/sdb1 on /local type ext3 (rw) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) domo:Public on /domo type nfs (rw. Oracle Grid Infrastructure will mount and unmount volumes on startup and shutdown respectively.

Use the /sbin/acfsutil utility on only one of Oracle RAC nodes to register the new mount point in the Oracle ACFS mount registry: [root@racnode1 ~]# /sbin/acfsutil registry -f -a /dev/asm/docsvol3-300 /documents3 acfsutil registry: mount point /documents3 successfully added to Oracle Registry Query the Oracle ACFS mount registry from all Oracle RAC nodes to verify the volume and mount point was successfully registered: [root@racnode1 ~]# /sbin/acfsutil registry Mount Object: Device: /dev/asm/docsvol1-300 Mount Point: /documents1 Disk Group: DOCSDG1 Volume: DOCSVOL1 Options: none Nodes: all Mount Object: Device: /dev/asm/docsvol2-300 Mount Point: /documents2 Disk Group: DOCSDG1 Volume: DOCSVOL2 Options: none Nodes: all Mount Object: Device: /dev/asm/docsvol3-300 Mount Point: /documents3 Disk Group: DOCSDG1 Volume: DOCSVOL3 Options: none Nodes: all Test Now let's perform a test to see if all of our hard work paid off. Node 1 Log in to the first Oracle RAC node as the oracle user account and create a test file on the new cluster file system: [oracle@racnode1 ~]$ id uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall).1301(oper) [oracle@racnode1 ~]$ echo "The Hunter Family: Jeff.1300(dba).txt [oracle@racnode1 ~]$ ls -l /documents3 . and Alex" > /documents3/test. Melody.1201(asmdba).

consistent. You can have up to 63 snapshot views supported for each file system. You can also use an Oracle ACFS snapshot as the source of a file system backup. Melody. online view of an active file system.ACFS/ drwx-----.txt Node 2 Log in to the second Oracle RAC node as the oracle user account and verify the presence and content of the test file: [oracle@racnode2 ~]$ id uid=1101(oracle) gid=1000(oinstall) groups=1000(oinstall).1201(asmdba).ACFS/ drwx-----. Note that snapshots work at the block level instead of the file level. its current value is copied to the snapshot to maintain the point-in-time view of the file system. only the changed blocks are copied to the snapshot location which helps conserve disk space. Before an Oracle ACFS file extent is modified or deleted. point in time copy of an Oracle ACFS file system. simply backup the snapshot to another disk or tape location to create a consistent backup set of the files.2 root root 65536 Nov 24 18:44 lost+found/ -rw-r--r-. This provides support for online recovery of files inadvertently modified or deleted from a file system.2 root root 65536 Nov 24 18:44 lost+found/ -rw-r--r-. Snapshots are always available as long as the file system is mounted. Oracle ACFS snapshots can be created and deleted on demand without the need to take the file system offline. When a file is modified. read-only.1300(dba). Once an Oracle ACFS snapshot is created. as it can be created on demand to deliver a current. An Oracle ACFS snapshot is an online.1301(oper) [oracle@racnode2 ~]$ ls -l /documents3 total 72 drwxr-xr-x 5 root root 4096 Nov 24 18:44 . ACFS snapshots provide a point-in-time consistent view of the entire file system which can be used to restore deleted or modified files and to perform backups. .1 oracle oinstall 42 Nov 24 18:56 test.1 oracle oinstall 42 Nov 24 18:56 test. and Alex ACFS Snapshots Oracle ASM Cluster File System includes a feature called snapshots. The snapshot process uses CopyOn-Write functionality which makes efficient use of disk space.total 72 drwxr-xr-x 5 root root 4096 Nov 24 18:44 . Once the Oracle ACFS snapshot is created.txt [oracle@racnode2 ~]$ cat /documents3/test.txt The Hunter Family: Jeff. This provides for a flexible online file recovery solution which can span multiple views. all snapshot files are immediately available for use.

2 root root 4096 Nov 26 17:57 .zip 26 17:57 lost+found/ Found in the .1 oracle oinstall 555366950 Nov drwx-----.1 oracle oinstall 1239269270 Nov linux.) [oracle@racnode1 ~]$ ls -lFA /documents3 total 2851148 drwxr-xr-x 5 root root 4096 Nov -rw-r--r-.6 root root 4096 Nov 26 17:57 repl/ drwxr-xr-x 2 root root 4096 Nov 27 15:53 snaps/ Since no Oracle ACFS snapshots exist.x64_11gR2_database_2of2. the snaps directory is empty.fileid/ drwx-----.ACFS are two directories named repl and snaps. (Note that hidden files and directories in Linux start with leading period. . As shown in the next section.zip -rw-r--r-. Oracle ACFS file systems can be dynamically re-sized to accommodate addition file and snapshot storage requirements. This operation should be performed as root or the Oracle Grid Infrastructure owner: [root@racnode1 ~]# /sbin/acfsutil snap create snap1 /documents3 acfsutil snap create: Snapshot operation is complete.ACFS total 12 drwx-----.x64_11gR2_examples. [oracle@racnode1 ~]$ ls -lFA /documents3/.zip -rw-r--r-.ACFS.ACFS/ 27 16:02 27 16:03 27 16:03 linux. This section will provide an overview on how to create and retrieve Oracle ACFS snapshots. [oracle@racnode1 ~]$ ls -lFA /documents3/. Oracle ACFS Snapshot Location Whenever you create an Oracle ACFS file system. a hidden directory is created as a sub-directory to the Oracle ACFS file system named . Oracle ACFS snapshots are administered with the acfsutil snap command. All Oracle ACFS snapshots are stored in the snaps directory.All storage for Oracle ACFS snapshots are maintained within the file system which eliminates the need for separate storage pools for file systems and snapshots.1 oracle oinstall 1111416131 Nov linux.x64_11gR2_database_1of2.ACFS/snaps total 0 Create Oracle ACFS Snapshot Let's start by creating an Oracle ACFS snapshot named snap1 for the Oracle ACFS mounted on /documents3.2 root root 65536 Nov 26 17:57 .

x64_11gR2_examples.1 oracle oinstall 1111416131 Nov 27 16:03 linux. Hopefully this will be a feature introduced in future versions! In the case where you accidentally deleted a file from the current file system.x64_11gR2_database_2of2. then I have bad news. For example.1 oracle oinstall 555366950 Nov 27 16:03 linux. The snapshot directory will only contain modified file blocks when a file is updated or deleted.ACFS/snaps/snap1 total 2851084 drwxr-xr-x 5 root root 4096 Nov 26 17:57 .0. so there is no additional space consumption. when I created the snap1 snapshot.x64_11gR2_examples. if I delete the file /documents3/linux. any existing files and/or directories in the file system are automatically accessible from the snapshot directory.? ? ? ? ? lost+found It is important to note that when the snapshot gets created. the three Oracle ZIP files were made available from the snapshot /documents3/. the previous images of the file blocks are copied to the snap1 snapshot where it can be restored from at a later time if necessary: [oracle@racnode1 ~]$ rm /documents3/linux.0.x64_11gR2_database_1of2.0 . it can be restored by copying it from the snapshot.The data for the new snap1 snapshot will be stored in /documents3/. this triggers an automatic backup of all modified file blocks to the snapshot.ACFS/ -rw-r--r-.ACFS/snaps/snap1: [oracle@racnode1 ~]$ ls -lFA /documents3/.zip /documents3 Display Oracle ACFS Snapshot Information The '/sbin/acfsutil info fs' command can provide file system information as well as limited information on any Oracle ACFS snapshots: [oracle@racnode1 ~]$ /sbin/acfsutil info fs /documents3 /documents3 ACFS Version: 11.1 oracle oinstall 1239269270 Nov 27 16:02 linux.zip If you were looking for functionality in Oracle ACFS to perform a rollback of the current file system to a snapshot.1. Once the snapshot is created.ACFS/snaps/snap1/linux. nothing is actually stored in the snapshot directory.2. back to the the current file system: [oracle@racnode1 ~]$ cp /documents3/.ACFS/snaps/snap1.zip -rw-r--r-.x64_11gR2_examples. one doesn't exist. Restore Files From an Oracle ACFS Snapshot When a file is deleted (or modified).zip -rw-r--r-.x64_11gR2_examples.zip ?--------. For example.zip.

flags: MountPoint. you can see that I have only one active snapshot that is consuming approximately 560MB of disk space.Available on-disk version: 39. vol_device. minor: 252. . 153603 size: 26843545600 free: 23191826432 number of snapshots: 1 snapshot space usage: 560463872 From the example above.zip) which triggered a back up of all modified file image blocks.-------------------snap1 /documents3 /dev/asm/docsvol3-300 27-NOV-2010 16:11:29 Delete Oracle ACFS Snapshot Use the 'acfsutil snap delete' command to delete an existing Oracle ACFS snapshot: [root@racnode1 ~]# /sbin/acfsutil snap delete snap1 /documents3 acfsutil snap delete: Snapshot operation is complete. Another useful technique used to obtain information about Oracle ACFS snapshots is to query the view V$ASM_ACFSSNAPSHOTS from the Oracle ASM instance: column column column column snap_name fs_name vol_device create_time format format format format a15 a15 a25 a20 heading heading heading heading "Snapshot Name" "File System" "Volume Device" "Create Time" ====================================================================== SQL> 2 3 4 select snap_name. fs_name. Each directory under the snaps directory is an Oracle ACFS snapshot. To query all snapshots. Snapshot Name File System Volume Device Create Time --------------. to_char(create_time.ACFS/snaps'.Available mount time: Sat Nov 27 03:07:50 2010 volumes: 1 total size: 26843545600 total free: 23191826432 primary volume: /dev/asm/docsvol3-300 label: DOCSVOL3 flags: Primary. simply list the directories under '<ACFS_MOUNT_POINT>/. This coincides with the size of the file I removed earlier (/documents3/linux.------------------------. 'DD-MON-YYYY HH24:MI:SS') as create_time from v$asm_acfssnapshots order by snap_name.--------------.x64_11gR2_examples.0 allocation unit: 4096 major.

I forced an Oracle ASM instance shutdown on node 1 to simulate a failure: This should go without saying. applications will start to encounter I/O failures and any Oracle ACFS user data and metadata being written at the time of the termination may not be flushed to ASM storage before it is fenced. know and understand the importance of dismounting any active file system configured with an Oracle ASM Dynamic Volume Manager (ADVM) volume device. If a SHUTDOWN ABORT operation on the Oracle ASM instance is required and you are not able to dismount the file system. all open references to Oracle ASM files are removed and associated disk groups can then be dismounted or the Oracle ASM instance shut down. the file system is placed into an offline error state. When the file system is placed in an offline error state. but I'll say it anyway. DO NOT attempt the following on a production environment. If the Oracle ASM instance or disk group is forcibly shut down or fails while an associated Oracle ACFS is active. BEFORE shutting down an Oracle ASM instance or dismounting a disk group! Failure to do so will result in I/O failures and very angry users! After the file system(s) have been dismounted. SQL> shutdown abort ASM instance shutdown Any subsequent attempt to access an offline file system on that node will result in an I/O error: [oracle@racnode1 ~]$ ls -l /documents3 ls: /documents3: Input/output error [oracle@racnode1 ~]$ df -k Filesystem 1K-blocks /dev/mapper/VolGroup00-LogVol00 145344992 /dev/sdb1 151351424 /dev/sda1 101086 tmpfs 2019256 df: `/documents1': Input/output df: `/documents2': Input/output df: `/documents3': Input/output domo:PUBLIC 4799457152 Used Available Use% Mounted on 22459396 115383364 17% / 192072 143346948 1% /local 12632 83235 14% /boot 0 2019256 0% /dev/shm error error error 1901758592 2897698560 40% /domo .Managing ACFS Oracle ACFS and Dismount or Shutdown Operations If you take anything away from this article. issue two sync command to flush any cached file system data and metadata to persistent storage: [root@racnode1 ~]# sync [root@racnode1 ~]# sync Using a two-node Oracle RAC.

even one that is offline.Recovering a file system from an offline error state requires dismounting and remounting the Oracle ACFS file system.2. verify the volume is enabled before attempting to mount: [root@racnode1 ~]# mount /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw.mode=620) /dev/sdb1 on /local type ext3 (rw) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) oracleasmfs on /dev/oracleasm type oracleasmfs (rw) domo:PUBLIC on /domo type nfs (rw. including any shell references.2.0/grid/bin/crsctl start cluster All of my Oracle ACFS volumes were added to the Oracle ACFS mount registry and will therefore automatically mount when Oracle Grid Infrastructure starts.168. I had a shell session that previously changed directory (cd) into the /documents3 file system before the forced shutdown: [root@racnode1 ~]# umount /documents1 [root@racnode1 ~]# umount /documents2 [root@racnode1 ~]# umount /documents3 umount: /documents3: device is busy umount: /documents3: device is busy Use the Linux fuser or lsof command to identify processes and kill if necessary: [root@racnode1 ~]# fuser /documents3 /documents3: 16263c [root@racnode1 ~]# kill -9 16263 [root@racnode1 ~]# umount /documents3 Restart the Oracle ASM instance (or in my case.gid=5. If you need to manually mount the file system. For example. Dismounting an active file system.1.addr=192.121) /dev/asm/docsvol1-300 on /documents1 type acfs (rw) /dev/asm/docsvol2-300 on /documents2 type acfs (rw) /dev/asm/docsvol3-300 on /documents3 type acfs (rw) .0/grid/bin/crsctl stop cluster [root@racnode1 ~]# /u01/app/11. all Oracle Grid Infrastructure services were stopped as a result of me terminating the Oracle ASM instance): [root@racnode1 ~]# /u01/app/11. requires stopping all applications using the file system.

they too can be dynamically re-sized.Resize File System With Oracle ACFS. as long as that file system can support online resizing. any of the ASM volumes can be dynamically expanded which means the file system gets expanded as a result. The one exception to 3rd party file systems is online shrinking.25 The same task can be accomplished using the ASMCMD command-line utility: [grid@racnode1 ~]$ asmcmd lsdg From the 12GB of free space in the DOCSDG1 ASM disk group. let's extend the file system (volume) by another 5GB.-----------. Disk Group Total (MB) Free (MB) % Free --------------. for example.205 1. Use the following syntax to add space to an Oracle ACFS on the fly without the need to take any type of outage.-----------.40 FRA 33.2) pct_free from v$asm_diskgroup where total_mb != 0 order by name.887 22. First.------CRS 2. supports online resizing but does not support online shrinking.887 30.809 82. as long as there exists free space within the ASM disk group.584 90. verify there is enough space in the current Oracle ASM disk group to extend the volume: SQL> 2 3 4 select name.187 12.795 67. free_mb. total_mb.303 12. Note that if you are using another file system other than Oracle ACFS. Ext3. Note that this can be performed while the file system is online and accessible by clients — no outage is required: [root@racnode1 ~]# /sbin/acfsutil size +5G /documents3 acfsutil size: new file system size: 26843545600 (25600MB) Verify the new size of the file system from all Oracle RAC nodes: [root@racnode1 ~]# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 145344992 21952712 115890048 16% / /dev/sdb1 151351424 192072 143346948 1% /local /dev/sda1 101086 12632 83235 14% /boot tmpfs 2019256 1135852 883404 57% /dev/shm domo:PUBLIC 4799457152 1901103872 2898353280 40% /domo /dev/asm/docsvol1-300 33554432 197668 33356764 1% /documents1 .04 DOCSDG1 98.27 RACDB_DATA 33. round((free_mb/total_mb)*100.

/dev/asm/docsvol2-300 /dev/asm/docsvol3-300 33554432 26214400 197668 183108 33356764 26031292 1% /documents2 1% /documents3 [root@racnode2 ~]# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 145344992 13803084 124039676 11% / /dev/sdb1 151351424 192072 143346948 1% /local /dev/sda1 101086 12632 83235 14% /boot tmpfs 2019256 1135852 883404 57% /dev/shm domo:Public 4799457152 1901103872 2898353280 40% /domo /dev/asm/docsvol1-300 33554432 197668 33356764 1% /documents1 /dev/asm/docsvol2-300 33554432 197668 33356764 1% /documents2 /dev/asm/docsvol3-300 26214400 183108 26031292 1% /documents3 Useful ACFS Commands This section contains several useful commands that can be used to administer Oracle ACFS.2.oracleadvm oracleasm 84136 1 ASM Volume Management Create new Oracle ASM volume using ASMCMD: .0/grid/bin/acfsload stop Check if Oracle ASM volume driver is loaded: [root@racnode1 ~]# lsmod | grep oracle oracleacfs 877320 4 oracleadvm 221760 8 oracleoks 276880 2 oracleacfs. ASM Volume Driver Load the Oracle ASM volume driver: [root@racnode1 ~]# /u01/app/11.2.0/grid/bin/acfsload start -s Unload the Oracle ASM volume driver: [root@racnode1 ~]# /u01/app/11. Note that many of the commands described in this section have already been discussed throughout this guide.

acfs: on-disk version = 39.Available mount time: Fri Nov 26 18:38:48 2010 volumes: 1 total size: 34359738368 total free: 34157326336 primary volume: /dev/asm/docsvol1-300 label: flags: Primary.0.0 mkfs. 153601 .0 mkfs.0.2.acfs: volume size = 21474836480 mkfs.[grid@racnode1 ~]$ asmcmd volcreate -G docsdg1 -s 20G --redundancy unprotected docsvol3 Resize Oracle ACFS file system (add 5GB): [root@racnode1 ~]# /sbin/acfsutil size +5G /documents3 acfsutil size: new file system size: 26843545600 (25600MB) Delete Oracle ASM volume using ASMCMD: [grid@racnode1 ~]$ asmcmd voldelete -G docsdg1 docsvol3 Disk Group / File System / Volume Information Get detailed Oracle ASM disk group information: [grid@racnode1 ~]$ asmcmd lsdg Format an Oracle ASM cluster file system: [grid@racnode1 ~]$ /sbin/mkfs -t acfs -b 4k /dev/asm/docsvol3-300 -n "DOCSVOL3" mkfs.0.1.0 allocation unit: 4096 major.0. minor: 252.acfs: version = 11. Get detailed file system information: [root@racnode1 ~]# /sbin/acfsutil info fs /documents1 ACFS Version: 11.acfs: volume = /dev/asm/docsvol3-300 mkfs.2.acfs: Format complete.0 flags: MountPoint.Available.ADVM on-disk version: 39.1.

0 allocation unit: 4096 major.Available.1.2.Available.0.Available mount time: Fri Nov 26 18:38:48 2010 volumes: 1 total size: 34359738368 total free: 34157326336 primary volume: /dev/asm/docsvol2-300 label: flags: Primary.0.size: free: ADVM diskgroup ADVM resize increment: ADVM redundancy: ADVM stripe columns: ADVM stripe width: number of snapshots: 0 snapshot space usage: 0 34359738368 34157326336 DOCSDG1 268435456 unprotected 4 131072 /documents2 ACFS Version: 11.ADVM on-disk version: 39.0 allocation unit: 4096 major.2.Available mount time: Fri Nov 26 18:38:48 2010 volumes: 1 total size: 26843545600 total free: 26656043008 primary volume: /dev/asm/docsvol3-300 label: DOCSVOL3 flags: Primary. minor: 252. minor: 252.ADVM on-disk version: 39. 153602 size: 34359738368 free: 34157326336 ADVM diskgroup DOCSDG1 ADVM resize increment: 268435456 ADVM redundancy: unprotected ADVM stripe columns: 4 ADVM stripe width: 131072 number of snapshots: 0 snapshot space usage: 0 /documents3 ACFS Version: 11.1.0 flags: MountPoint.0 flags: MountPoint.0. 153603 size: 26843545600 free: 26656043008 ADVM diskgroup DOCSDG1 ADVM resize increment: 268435456 ADVM redundancy: unprotected ADVM stripe columns: 4 ADVM stripe width: 131072 number of snapshots: 0 snapshot space usage: 0 .0.

Get ASM volume information: [grid@racnode1 ~]$ asmcmd volinfo -a Diskgroup Name: DOCSDG1 Volume Name: DOCSVOL1 Volume Device: /dev/asm/docsvol1-300 State: ENABLED Size (MB): 32768 Resize Unit (MB): 256 Redundancy: UNPROT Stripe Columns: 4 Stripe Width (K): 128 Usage: ACFS Mountpath: /documents1 Volume Name: DOCSVOL2 Volume Device: /dev/asm/docsvol2-300 State: ENABLED Size (MB): 32768 Resize Unit (MB): 256 Redundancy: UNPROT Stripe Columns: 4 Stripe Width (K): 128 Usage: ACFS Mountpath: /documents2 Volume Name: DOCSVOL3 Volume Device: /dev/asm/docsvol3-300 State: ENABLED Size (MB): 25600 Resize Unit (MB): 256 Redundancy: UNPROT Stripe Columns: 4 Stripe Width (K): 128 Usage: ACFS Mountpath: /documents3 Get volume status using ASMCMD command: [grid@racnode1 ~]$ asmcmd volstat DISKGROUP NUMBER / NAME: 2 / DOCSDG1 --------------------------------------VOLUME_NAME READS BYTES_READ READ_TIME READ_ERRS WRITES BYTES_WRITTEN WRITE_TIME WRITE_ERRS ------------------------------------------------------------DOCSVOL1 517 408576 1618 0 17007 69280768 63456 0 DOCSVOL2 .

512 17007 DOCSVOL3 13961 10956 406016 69280768 54525952 54410240 2547 66147 172007 41749 0 0 0 0 Enable a volume using the ASMCMD command: [grid@racnode1 ~]$ asmcmd volenable -G docsdg1 docsvol3 Disable a volume using the ASMCMD command: [root@racnode1 ~]# umount /documents3 [root@racnode2 ~]# umount /documents3 [grid@racnode1 ~]$ asmcmd voldisable -G docsdg1 docsvol3 Mount Commands Mount single Oracle ACFS volume on the local node: [root@racnode1 ~]# /bin/mount -t acfs /dev/asm/docsvol3-300 /documents3 Unmount single Oracle ACFS volume on the local node: [root@racnode1 ~]# umount /documents3 Mount all Oracle ACFS volumes on the local node using the metadata found in the Oracle ACFS mount registry: [root@racnode1 ~]# /sbin/mount.acfs -o all Unmount all Oracle ACFS volumes on the local node using the metadata found in the Oracle ACFS mount registry: [root@racnode1 ~]# /bin/umount -t acfs -a Oracle ACFS Mount Registry Register new mount point in the Oracle ACFS mount registry: .

Use the 'acfsutil snap delete' command to delete an existing Oracle ACFS snapshot: [root@racnode1 ~]# /sbin/acfsutil snap delete snap1 /documents3 .[root@racnode1 ~]# /sbin/acfsutil registry -f -a /dev/asm/docsvol3-300 /documents3 acfsutil registry: mount point /documents3 successfully added to Oracle Registry Query the Oracle ACFS mount registry: [root@racnode1 ~]# /sbin/acfsutil registry Mount Object: Device: /dev/asm/docsvol1-300 Mount Point: /documents1 Disk Group: DOCSDG1 Volume: DOCSVOL1 Options: none Nodes: all Mount Object: Device: /dev/asm/docsvol2-300 Mount Point: /documents2 Disk Group: DOCSDG1 Volume: DOCSVOL2 Options: none Nodes: all Mount Object: Device: /dev/asm/docsvol3-300 Mount Point: /documents3 Disk Group: DOCSDG1 Volume: DOCSVOL3 Options: none Nodes: all Unregister volume and mount point from the Oracle ACFS mount registry: [root@racnode1 ~]# acfsutil registry -d /documents3 acfsutil registry: successfully removed ACFS mount point /documents3 from Oracle Registry Oracle ACFS Snapshots Use the 'acfsutil snap create' command to create an Oracle ACFS snapshot named snap1 for an Oracle ACFS mounted on /documents3: [root@racnode1 ~]# /sbin/acfsutil snap create snap1 /documents3 acfsutil snap create: Snapshot operation is complete.

This only needs to be performed from one of the Oracle RAC nodes: . This view performs disk discovery every time it is queried. This view performs disk discovery every time it is queried. In a DB instance. Use fsck to Check and Repair the Cluster File System Use the regular Linux fsck command to check and repair the Oracle ACFS. Contains information about statistics for each Oracle ADVM volume. It does not return information about any disks that are part of mounted disk groups in the storage system. V$ASM_ATTRIBUTE CREATE DISKGROUP and ALTER DISKGROUPstatements. size related info. state. These views are accessible from the Oracle ASM instance. name. the view may show other attributes Displays one row for each attribute defined. Contains columns that display information for every mounted Oracle ACFS file system. To see all disks. and redundancy type). Contains one row for every template present in every disk group mounted by the Oracle ASM instance. only the rows for that instance are shown. and Oracle ASM Dynamic Volume Manager (Oracle ADVM) information. correlated with V$ASM_FILESYSTEM. V$ASM_DISKGROUP Describes a disk group (number. Contains one row for every disk discovered by the Oracle ASM instance. In addition to attributes specified by that are created automatically. Oracle Automatic Storage Management (Oracle ASM) View Name V$ASM_ALIAS Description Contains one row for every alias present in every disk group mounted by the Oracle ASM instance. Oracle Automatic Storage Management Cluster File System (Oracle ACFS) View Name V$ASM_ACFSSNAPSHOTS V$ASM_ACFSVOLUMES V$ASM_FILESYSTEM V$ASM_VOLUME V$ASM_VOLUME_STAT Description Contains snapshot information for every mounted Oracle ACFS file system.1 or higher. Contains information about each Oracle ADVM volume that is a member of an Oracle ASM instance.ASM is set to 11. Oracle Automatic Storage Management Cluster File System (Oracle ACFS). including disks that are not part of any disk group. Attributes are only displayed for disk groups where COMPATIBLE. use V$ASM_DISK. To see all disks. V$ASM_CLIENT In an Oracle ASM instance. Displays information about disk I/O statistics for each Oracle ASM client. but to reduce overhead. but to reduce overhead. does not perform a V$ASM_DISKGROUP instead. contains information about the Oracle ASM instance if the database has any open Oracle ASM files. Contains the same columns as V$ASM_DISK V$ASM_DISK_IOSTAT V$ASM_DISK_STAT when it is queried. does not perform a discovery V$ASM_DISKinstead. Contains the creator for each Oracle ASM File Access Control group. V$ASM_OPERATION V$ASM_TEMPLATE V$ASM_USER V$ASM_USERGROUP V$ASM_USERGROUP_MEMBER Contains the members for each Oracle ASM File Access Control group. Contains information about mounted Oracle ACFS volumes. In an Oracle ASM instance. V$ASM_FILE Contains one row for every Oracle ASM file in every disk group mounted by the Oracle ASM instance. Contains the same columns as V$ASM_DISKGROUP_STAT discovery when it is queried. Oracle ASM / ACFS Dynamic Views This section contains information about using dynamic views to display Oracle Automatic Storage Management (Oracle ASM). Contains the effective operating system user names of connected database instances and names of file owners. In a DB instance. use V$ASM_DISKGROUP. contains one row for every active Oracle ASM long running operation executing in the Oracle ASM instance.acfsutil snap delete: Snapshot operation is complete. contains no rows. It only returns information about any disks that are part of mounted disk groups in the storage system. In a DB instance. identifies databases using disk groups managed by the Oracle ASM instance.

acfs: version = 11. Files checked in primary file system: 100% Checking if any files are orphaned.. Remount the cluster file system on all Oracle RAC nodes: [root@racnode1 ~]# /bin/mount -t acfs /dev/asm/docsvol3-300 /documents3 [root@racnode2 ~]# /bin/mount -t acfs /dev/asm/docsvol3-300 /documents3 Drop ACFS / ASM Volume Unmount the cluster file system from all Oracle RAC nodes: .0.acfs: ACFS-07656: Unable to continue The fsck operating cannot be performed while the file system is online....0. Unmount the cluster file system from all Oracle RAC nodes: [root@racnode1 ~]# umount /documents3 [root@racnode2 ~]# umount /documents3 Now check the cluster file system with the file system unmounted: [root@racnode1 ~]# /sbin/fsck -t acfs /dev/asm/docsvol3-300 fsck 1.acfs: ACFS-00511: /dev/asm/docsvol3-300 is mounted on at least one node of the cluster.acfs: version = 11.0. 0 orphans found fsck.0 Oracle ASM Cluster File System (ACFS) On-Disk Structure Version: 39.1.0 fsck.2.0.2.1.0 ***************************** ********** Pass 1: ********** ***************************** The ACFS volume was created at Fri Nov 26 17:20:27 2010 Checking primary file system.[root@racnode1 ~]# /sbin/fsck -t acfs /dev/asm/docsvol3-300 fsck 1.acfs: Checker completed with no errors.39 (29-May-2006) fsck. fsck.39 (29-May-2006) fsck.

[root@racnode1 ~]# umount /documents3 [root@racnode2 ~]# umount /documents3 Log in to the ASM instance and drop the ASM dynamic volume from one of the Oracle RAC nodes: [grid@racnode1 ~]$ sqlplus / as sysasm SQL> ALTER DISKGROUP docsdg1 DROP VOLUME docsvol3. Diskgroup altered. remove the mount point directory from all Oracle RAC nodes (if necessary): [root@racnode1 ~]# rmdir /documents3 [root@racnode2 ~]# rmdir /documents3 . The same task can be accomplished using the ASMCMD command-line utility: [grid@racnode1 ~]$ asmcmd voldelete -G docsdg1 docsvol3 Unregister the volume and mount point from the Oracle ACFS mount registry from one of the Oracle RAC nodes: [root@racnode1 ~]# acfsutil registry -d /documents3 acfsutil registry: successfully removed ACFS mount point /documents3 from Oracle Registry Finally.

Sign up to vote on this title
UsefulNot useful