Automatic Storage Management Mirroring

Applies to: Database Management Software Oracle Server - Enterprise Edition - Version: to - Release: 10.2 to 11.2

Mirroring or Redundancy protects data integrity by storing copies of data on multiple disks. To achieve mirroring Oracle introduce concept of Diskgroup in Automatic Storage Management.

A diskgorup is a group of fail groups together, a fail group is a group of disks together. So, disk is the minimum identity in this architecture.
 The disk group type determines the mirroring levels with which Oracle creates files in a disk group.

When you create a disk group, you specify an Automatic Storage Management disk group type based on one of the following three redundancy levels:

  •     Normal : for 2-way mirroring (Two copies of each extent)
  •     High : for 3-way mirroring (Three copies of each extent)
  •     External : to not use ASM mirroring, such as when you configure hardware RAID for  redundancy

The redundancy level controls how many disk failures are tolerated without dismounting the disk group or losing data.

ASM mirroring is more flexible than traditional RAID mirroring because you can specify the redundancy level for each file. Two files can share the same disk group with one file being mirrored while the other is not.

Below is an example of disk group

Let's assume, we have two disk controllers at Hardware level Controller 1 (have four disk connected), Controller 2 (have four disk connected). If, controller will fail, all disks under it will be unavailable. So, we need to plan our Disk group to take case this as well.

Controller 1:


Controller 2:


creates a disk group named dgroup1 with normal redundancy consisting of two failure groups controller1 or controller2 with four disks in each failure group.

Connected to an idle instance.


FAILGROUP controller1 DISK
'/devices/diska1' NAME diska1,
'/devices/diska2' NAME diska2,
'/devices/diska3' NAME diska3,
'/devices/diska4' NAME diska4

FAILGROUP controller2 DISK
'/devices/diskb1' NAME diskb1,
'/devices/diskb2' NAME diskb2,
'/devices/diskb3' NAME diskb3,
'/devices/diskb4' NAME diskb4

ATTRIBUTE 'au_size'='4M',
          'compatible.asm' = '11.1',
          'compatible.rdbms' = '11.1';

To know more about compatible.asm & compatible.rdbms Please visit ""

In the above example,  We made a disk group dgroup1 with normal redundancy (2-way mirroring),  So, we need two fail groups controller1 and controller2

When Automatic Storage Management allocates an extent for a normal redundancy file, ASM allocates a primary copy and a secondary copy. Automatic Storage Management chooses the disk on which to store the secondary copy in a different failure group other than the primary copy. Failure groups are used to place mirrored copies of data so that each copy is on a disk in a different failure group. The simultaneous failure of all disks in a failure group does not result in data loss.

Failure Scenarios:

1. Single Disk failure: Suppose a disk is fails controller2.diskb4 data will remain intact, This disk either will have primary copy or secondary copy of extents. Since, we have two copies, so any how we will have another copy of failed disk into another disk group. So, I would say in this scenario, your data is 100% safe.

2. Multiple Disk Failure: This situation can further divide into two parts.
  1. Multiple disk failure from Same disk group:  In this case, you will not loos data, because another disk group will have all data.
  2. Multiple disk failure from different disk group: Here is the risk, Suppose you loose controller1.diska1 and controller2.diskb4 and unfortunately, extents in diska1 have their mirror copy into diskb4 and both disks are unavailable. So, you will end up loosing data.
3. Disk Controller Failure: Suppose you loose one of your disk controller Controller 1 that means all disks in a fail group. Even, in this case data will not lost because, each extant in fail group failgroup1 will have a copy in failgroup2.

You define the failure groups for a disk group when you create an ASM disk group. After a disk group is created, you cannot alter the redundancy level of the disk group. To change the redundancy level of a disk group, create another disk group with the appropriate redundancy and then move the files to the new disk group. Oracle recommends that you create failure groups of equal size to avoid space imbalance and uneven distribution of mirror data.

If you omit the failure group specification, then ASM automatically places each disk into its own failure group. Normal redundancy disk groups require at least two failure groups. High redundancy disk groups require at least three failure groups. Disk groups with external redundancy do not use failure groups.

Please share your views about this article. 

1 comment: