Oracle Database 11gR2: Building an ASM Clustered File System (ACFS) - Page 3
March 25, 2010
Managing ACFS: The ACFSUTIL Utility
I can verify the status of any ACFS-controlled mount point with the acfsutil command-line utility. For example, the acfsutil info fs command shows me the current state of the existing ACFS file system, including where and how its been mounted, its current availability, how much free disk space is available, whether any software redundancy is in place, and even the stripe size used:
#> acfsutil info fs /u01/app/oracle/acsfmounts/acfs_db1 ACFS Version: 18.104.22.168.0.0 flags: MountPoint,Available mount time: Sun Mar 7 22:56:43 2010 volumes: 1 total size: 6442450944 total free: 6391668736 primary volume: /dev/asm/acfs_db1-152 label: flags: Primary,Available,ADVM on-disk version: 39.0 allocation unit: 4096 major, minor: 252, 77825 size: 6442450944 free: 6391668736 ADVM diskgroup ACFS ADVM resize increment: 268435456 ADVM redundancy: unprotected ADVM stripe columns: 4 ADVM stripe width: 131072 number of snapshots: 0 snapshot space usage: 0
Listing 2.2 shows a detailed list of acfsutil commands that are currently available. Im going to dive much deeper into acfsutil in the next article in this series when I demonstrate how to create an ACFS file system snapshot (FSS) for faster patching of Oracle homes with virtually zero downtime.
Mounting an ACFS File System Automatically After Server Reboot. As you can see from my invocation of the Linux ls command below, the new ACFS file system is actually not yet mounted:
#> ls -la /u01/app/oracle/acsfmounts/* total 8 drwxr-x--- 2 oracle dba 4096 Mar 7 22:54 . drwxr-x--- 3 oracle dba 4096 Mar 7 22:54 ..
To mount this new ACFS file system at the appropriate mount point, Ill simply invoke the mount command as the root user, but note that for the first time, Ill specify a new file system type of acfs:
#> mount -t acfs /dev/asm/acfs_db1-152 /u01/app/oracle/acsfmounts/acfs_db1/ #> mount /dev/sda1 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/sda3 on /tmp type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) /dev/sdb1 on /u01/app/oracle/product type ext3 (rw) /dev/sdc1 on /stage type ext3 (rw) /dev/sdd1 on /u01/app/oracle/oradata type ext3 (rw) /dev/sdh1 on /u01/app/oracle/oraFRA type ext3 (rw) /dev/sdi2 on /DONTTOUCH type ext3 (rw) /dev/mapper/vg1-lvfra on /u01/app/flash_recovery_area type ext3 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) .host:/ on /mnt/hgfs type vmhgfs (rw,ttl=1) none on /proc/fs/vmblock/mountPoint type vmblock (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) oracleasmfs on /dev/oracleasm type oracleasmfs (rw) /dev/asm/acfs_db1-152 on /u01/app/oracle/acsfmounts/acfs_db1 type acfs (rw)
And one other thing that I must not forget to do before I reboot my server: Ill need to add an entry to my servers /etc/fstab configuration file to insure that my eventual new Oracle 11gR2 database home is actually mounted before I attempt to start the database within that home:
LABEL=/ / ext3 defaults 1 1 LABEL=/tmp /tmp ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 LABEL=SWAP-sda2 swap swap defaults 0 0 /dev/sdb1 /u01/app/oracle/product ext3 defaults 0 0 /dev/sdc1 /stage ext3 defaults 0 0 /dev/sdd1 /u01/app/oracle/oradata ext3 defaults 0 0 /dev/sdh1 /u01/app/oracle/oraFRA ext3 defaults 0 0 /dev/sdi2 /DONTTOUCH ext3 defaults 0 0 /dev/vg1/lvfra /u01/app/flash_recovery_area ext3 defaults 0 0 /dev/asm/acfs_db1-152 /u01/app/oracle/acfsmounts/acfs_db1 acfs defaults 0 0
Installing a New Oracle 11g Release 2 Database Home
Just as with the installation of a new Oracle 11gR2 Grid Infrastructure home, Ill once again use the Oracle Universal Installer (OUI) utility to install a new Oracle 11gR2 database home. I simply invoked the standard runInstaller OUI script, this time from the /stage/11.2.0/database/ directory from my staging disk. I wont bore you with my responses to every single prompt on every OUI panel here; however, Ive included all of the panels and my responses in Listing 2.3 starting with Figure 2.6.
Once all of the installation panels have been completed appropriately, the new Oracle database home has been successfully propagated, and Ive run the standard root.sh script from within the new Oracle 11gR2 database home directory, Im at last ready to create a new Oracle 11gR2 database, or even upgrade an existing 11gR1 database to release 11gR2 but thats a topic for my next article.
Were making excellent progress but its going to get a lot more interesting (and a lot less tedious) in the next article in this series, as Ill demonstrate how to:
References and Additional Reading
Before you proceed to experiment with any of these new features, I strongly suggest that you first look over the corresponding detailed Oracle documentation before trying them out for the first time. Ive drawn upon the following Oracle Database 11g Release 2 documents for this articles technical details:
E10881-02 Oracle Database 11gR2 New Features
E10592-03 Oracle Database 11gR2 SQL Language Reference
E10700-01 Oracle Database 11gR2 DataGuard Concepts and Administration
E10595-05 Oracle Database 11gR2 Administrators Guide
E10713-03 Oracle Database 11gR2 Concepts
E10820-02 Oracle Database 11gR2 Reference
E10500-02 Oracle Database 11gR2 Storage Administrators Guide
E10837-02 Oracle Database 11gR2 VLDB and Partitioning Guide