Overview

This type allows you to manage your ASM diskgroups.

Like the other Oracle types, you must specify the SID. But for this type it must be the ASM sid. Most of the times, this is +ASM1

ora_asm_diskgroup {'REDO@+ASM1':
  ensure          => 'present',
  redundancy_type => 'normal',
  compat_asm      => '11.2.0.0.0',
  compat_rdbms    => '11.2.0.0.0',
  disks           => {
    'FAILGROUP1' => [
      { 'diskname' => 'REDOVOL1', 'path' => 'ORCL:REDOVOL1'}
    ],
    'FAILGROUP2' => [
      { 'diskname' => 'REDOVOL2', 'path' => 'ORCL:REDOVOL2'},
    ]
  }
}

Attributes

Attribute Name Short Description
allow_disk_update When set to true, allow the puppet type to update the disks.
asm_sid ASM SID to connect to.
au_size The allocation unit size of the diskgroup in Mb.
compat_asm The compatible asm attribute of the diskgroup.
compat_rdbms The compatible rdbms attribute of the diskgroup.
disable_corrective_change Disable the modification of a resource when Puppet decides it is a corrective change.
disable_corrective_ensure Disable the creation or removal of a resource when Puppet decides is a corrective change.
diskgroup_state The state of the diskgroup.
disks The disks in the diskgroup.
ensure The basic property that the resource should be in.
force Enable force diskmount when chaning the state of the diskgroup.,
   
groupname The diskgroup name.
name The full diskgroup name including SID.
provider resource.
redundancy_type The redundancy type of the diskgroup.

allow_disk_update

When set to true, allow the puppet type to update the disks.

Changing this disks in an ASM diskgroup is a potentialy destructive operation. That is why by default we disable this operation. If however this is required for your use case, you can set the parameter to true. In that case, changes in the manifest will resuilt in changes beeing made to the running system.

Here is an example:

ora_asm_diskgroup {...:
  ...
  disks             = [....],
  allow_disk_update => true,
}

This parameter only guards the disks property of the type. When changed in the manifest, all other properties of ora_asm_diskgroup will be updated regardless of this setting.

Valid values are true, false.

Back to overview of ora_asm_diskgroup

asm_sid

ASM SID to connect to.

All types have a name like resource@sid. The sid is optional. If you don’t specify the sid, the type will use the ASM instance from the /etc/ora_settings.yaml with the name default_asm. We advise you to either use @sid in all your manifests or leave it empty everywhere.

Back to overview of ora_asm_diskgroup

au_size

The allocation unit size of the diskgroup in Mb.

ora_asm_diskgroup { ...:
  ...
  au_size => 2,
}

If you don’t specify a value, Oracle will decide opn the default value. This is dependent on the used Oracle and ASM version.

Valid values are 1, 2, 4, 8, 16, 32, 64.

Back to overview of ora_asm_diskgroup

compat_asm

The compatible asm attribute of the diskgroup.

This specifies the ASM compatibility of the diskgroup. The valid values depend on the version of ASM and Oracle you are using. At this point in time the next set of values are valid:

  • 10.1
  • 11.2
  • 12.1

Here is an example:

ora_asm_diskgroup{ ...
  ...
  compat_asm => '11.2'
}

When you don’t specify a value, Oracle will decide the default value. Agin, the actual value depends on the version of Oracle you are using. Check the Oracle documentation documentation of your version.

Back to overview of ora_asm_diskgroup

compat_rdbms

The compatible rdbms attribute of the diskgroup.

This specifies the RDBMS compatibility of the diskgroup. The valid values depend on the version of ASM and Oracle you are using. At this point in time the next set of values are valid:

  • 10.1
  • 11.2
  • 12.1

Here is an example:

ora_asm_diskgroup{ ...
  ...
  compat_rdbms => '11.2'
}

When you don’t specify a value, Oracle will decide the default value. Agin, the actual value depends on the version of Oracle you are using. Check the Oracle documentation documentation of your version.

Back to overview of ora_asm_diskgroup

disable_corrective_change

Disable the modification of a resource when Puppet decides it is a corrective change.

(requires easy_type V2.11.0 or higher)

When using a Puppet Server, Puppet knows about adaptive and corrective changes. A corrective change is when Puppet notices that the resource has changed, but the catalog has not changed. This can occur for example, when a user, by accident or willingly, changed something on the system that Puppet is managing. The normal Puppet process then repairs this and puts the resource back in the state as defined in the catalog. This process is precisely what you want most of the time, but not always. This can sometimes also occur when a hardware or network error occurs. Then Puppet cannot correctly determine the current state of the system and thinks the resource is changed, while in fact, it is not. Letting Puppet recreate remove or change the resource in these cases, is NOT wat you want.

Using the disable_corrective_change parameter, you can disable corrective changes on the current resource.

Here is an example of this:

crucial_resource {'be_carefull':
  ...
  disable_corrective_change => true,
  ...
}

When a corrective ensure does happen on the resource Puppet will not modify the resource and signal an error:

    Error: Corrective change present requested by catalog, but disabled by parameter disable_corrective_change
    Error: /Stage[main]/Main/Crucial_resource[be_carefull]/parameter: change from '10' to '20' failed: Corrective change present requested by catalog, but disabled by parameter disable_corrective_change. (corrective)

Back to overview of ora_asm_diskgroup

disable_corrective_ensure

Disable the creation or removal of a resource when Puppet decides is a corrective change.

(requires easy_type V2.11.0 or higher)

When using a Puppet Server, Puppet knows about adaptive and corrective changes. A corrective change is when Puppet notices that the resource has changed, but the catalog has not changed. This can occur for example, when a user, by accident or willingly, changed something on the system that Puppet is managing. The normal Puppet process then repairs this and puts the resource back in the state as defined in the catalog. This process is precisely what you want most of the time, but not always. This can sometimes also occur when a hardware or network error occurs. Then Puppet cannot correctly determine the current state of the system and thinks the resource is changed, while in fact, it is not. Letting Puppet recreate remove or change the resource in these cases, is NOT wat you want.

Using the disable_corrective_ensure parameter, you can disable corrective ensure present or ensure absent actions on the current resource.

Here is an example of this:

crucial_resource {'be_carefull':
  ensure                    => 'present',
  ...
  disable_corrective_ensure => true,
  ...
}

When a corrective ensure does happen on the resource Puppet will not create or remove the resource and signal an error:

    Error: Corrective ensure present requested by catalog, but disabled by parameter disable_corrective_ensure.
    Error: /Stage[main]/Main/Crucial_resource[be_carefull]/ensure: change from 'absent' to 'present' failed: Corrective ensure present requested by catalog, but disabled by parameter disable_corrective_ensure. (corrective)

Back to overview of ora_asm_diskgroup

diskgroup_state

The state of the diskgroup.

This is an optional property. When you don’t specify this value, the default value be online.

ora_asm_diskgroup {...:
  ...
  diskgroup_state => 'mounted'
}

When you want to force an unmount, use the force property:

ora_asm_diskgroup {...:
  ...
  diskgroup_state => 'unmounted'
  force           => true,
}

Valid values are mounted, unmounted, dismounted, MOUNTED, UNMOUNTED, DISMOUNTED (also called UNMOUNTED).

Back to overview of ora_asm_diskgroup

disks

The disks in the diskgroup.

The disks property is a required hash containing the disk and optionaly the failgroup information for this diskgroup.

The syntax used for this property depends on the value of the redundancy_type. When the redundancy_type is set to external, no failgroups are used. In that case, the value for the disks property is an Array of Hashes, where every Hash contains a diskname and a path key. Here is an example:

ora_asm__diskgroup {...:
  redundancy_type => 'EXTERN',
  disks => [
      {diskname => 'RECODG_001', path => 'ORCL:RECODG_001'},
      {diskname => 'RECODG_002', path => 'ORCL:RECODG_002'},
    ],
  }
}

When the redundancy_type is NORMAL, or HIGH, you MUST specfy the fail groups. The disks property is a Hash wjere the key of the Hash is the name of the failgroup. The value of the Hash, is an Array of disks. A disk element is a Hash, where every Hash contains a diskname and a path key. Here is an example:

ora_asm__diskgroup {...:
  redundancy_type => 'NORMAL',
  disks => {
    FAILGROUP1 => [
      {diskname => 'RECODG_001', path => 'ORCL:RECODG_001'},
      {diskname => 'RECODG_002', path => 'ORCL:RECODG_002'},
    ],
    FAILGROUP2 => [
      {diskname => 'RECODG_003', path => 'ORCL:RECODG_003'},
      {diskname => 'RECODG_004', path => 'ORCL:RECODG_004'},
    ],
  }
}

Back to overview of ora_asm_diskgroup

ensure

The basic property that the resource should be in.

Valid values are present, absent.

Back to overview of ora_asm_diskgroup

force

Enable force diskmount when chaning the state of the diskgroup.,

When you specify this when unmounting a diskgroup, ASM will force a dismount.

ora_asm_diskgroup {...:
  ...
  diskgroup_state => 'UNMOUNTED'
  force           => true,
}

Valid values are true, false.

Back to overview of ora_asm_diskgroup

groupname

The diskgroup name.

This is a required String parameter that is part of the title of the raw_resource.

ora_asm_diskgroup { 'RECODG@+ASM1':
  ...
}

In this example, the RECODG is de diskgroup name. Diskgroup names will always be uppercased by Puppet. This means in Puppet you can use either lower, upper or mixed case. In Oracle, it will be always be an upper case string.

Back to overview of ora_asm_diskgroup

name

The full diskgroup name including SID.

The full diskgroup name contains a diskgroup and an SID.

ora_asm_diskgroup { 'RECODG@+ASM1':
  ...
}

The SID is optional. When you don’t specify an SID, Puppet will take the first ASM instance from the /etc/oratab file and use that as the SID. We recoomend you always use a full qualified name (e.g. a name including the SID).

Back to overview of ora_asm_diskgroup

provider

The specific backend to use for this ora_asm_diskgroup resource. You will seldom need to specify this — Puppet will usually discover the appropriate provider for your platform.Available providers are:

simple
Manage RAC ASM groups in an Oracle Database via regular SQL

Back to overview of ora_asm_diskgroup

redundancy_type

The redundancy type of the diskgroup.

This is a required string value. Here is an example:

ora_asm_diskgroup {...:
  ...
  redundancy_type => 'NORMAL',
}

Valid values are HIGH, EXTERN (also called EXTERNAL), NORMAL.

Back to overview of ora_asm_diskgroup