For mission-critical Oracle databases, we recommend separating the following database components to different ASM disk groups and matching SGs:
All ASM disk groups should use external redundancy (no ASM mirroring) except for +GRID, which can use normal redundancy (two mirrors). +GRID should not contain any user data and therefore remains small. When set to normal redundancy, Oracle creates three quorum files rather than a single one (such as the case when external redundancy is used). Having three quorum files helps to avoid delays while nodes try to register with the quorum during high database activity.
Note: For in-depth information about considerations for ASM disk groups and matching SGs that can leverage fast storage replicas that are valid for database backup and recovery, see Oracle database backup, recovery, and replications best practices with VMAX All Flash storage.
By default, ASM uses an Allocation Unit (AU) size of 1 MB (4 MB starting with release 12.2) and stripes the data across the whole disk group by using the AU as its stripe-depth. This default ASM striping method is called “Coarse Striping” and is optimal for OLTP-type applications. The DBA might decide to increase the size of the AU from its default, though there is no clear benefit for doing that.
ASM has an alternative striping method called “Fine-Grain Striping”. With Fine-Grain Striping, ASM selects eight devices in the disk group (if available), allocates an AU on each, and further stripes (divides) each AU into 128 KB chunks. It then allocates data in a round-robin fashion across the eight devices by filling up the 128 KB chunks. When all eight AUs are full, it repeats the process by selecting another set of eight devices.
Fine-Grain striping is the PowerMax-recommended striping method for Oracle objects with primarily sequential writes. Because sequential writes tend to be large I/Os, by breaking them in to 128 KB stripes, latencies improve and PowerMax can handle them more efficiently (as its track size is also 128 KB).
For this reason, we recommend that you use ASM Fine-Grain striping for the redo logs. This method is especially useful for In-Memory databases (where transactions are fast and redo write load can be heavy) or for batch data loads (as again, the redo logs write load is heavy).
In Data Warehouses where Oracle Temp files can be I/O intensive, Temp files can also benefit from Fine-Grain Striping.
The type of striping for each Oracle ASM file type is kept in an ASM template. Each ASM disk group has its own set of templates. Modifying a template (for example, changing the redo logs template to Fine-Grain) only applies to the ASM disk group in which the template was changed.
In addition, existing ASM allocations are not affected by template changes, only new extents. Therefore, if you change the redo logs template in the +REDO ASM disk group, you must create new redo log files afterwards, make sure the database is using them, then remove the old ones. Creating and removing redo logs does not take long and can be performed while the database is running.
To inspect the ASM templates, run the following query from the ASM instance:
SQL> select DG.name Disk_Group, TMP.name Template, TMP.stripe from v$asm_diskgroup DG, v$asm_template TMP where DG.group_number=TMP.group_number order by DG.name;
To change the database redo logs template in the +REDO ASM disk group, run the following command:
SQL> ALTER DISKGROUP REDO ALTER TEMPLATE onlinelog ATTRIBUTES (FINE);
To change the temp files template in the +TEMP ASM disk group, run the following command:
SQL> ALTER DISKGROUP TEMP ALTER TEMPLATE tempfile ATTRIBUTES (FINE);