Oracle DBA – A lifelong learning experience

asm 11g compatibility settings and conversion to H.A.R.D format

Posted by John Hallas on December 12, 2008

When using ASM with 11g and taking the default settings from a DBCA build the following line can be seen in the asm alert_log

Spfile /app/oracle/product/11.1.0/asm/dbs/spfile+ASM.ora is in old pre-11 format and compatible >= 11.0.0; converting to new H.A.R.D. compliant format

Firstly H.A.R.D. refers to Oracle’s Hardware Assisted Resilient Data (H.A.R.D) Initiative which Metalink note 227671.1 summarises as

To use HARD validation, all datafiles and log files are placed on HARD-compliant storage.

The user must also enable the HARD validation feature on the storage, using the vendor-provided interface. When Oracle writes data to the storage, the storage system validates the data. If it appears to be corrupted, then the write is rejected with an error.

The sql commands here are taken from an excellent note on the Pythian site by Alex Gorbachev http://www.pythian.com/blogs/1078/oracle-11g-asm-diskgroup-compatibility.

In short the compatibility settings allow ASM to manage databases from both 10g and 11g. As this was an 11g environment only I felt comfortable in amending the parameters.

The compatible.asm parameter defines the minimum version of the asm software that is using the disk groups. As the format of the metadata on the disk changes from asm 10 to asm 11 then this setting defines that format. This will be non-reversible.

rdbms.compatible defines the minimum version of the rdbms compatible parameter for any databse that uses the asm disk groups.

col COMPATIBILITY form a10

col DATABASE_COMPATIBILITY form a10

col NAME form a20

select group_number, name, compatibility, database_compatibility from v$asm_diskgroup;

GROUP_NUMBER NAME COMPATIBIL DATABASE_C

———— ——————– ———- ———-

1 FRA 10.1.0.0.0 10.1.0.0.0

2 DATA 10.1.0.0.0 10.1.0.0.0

SQL> col value form a10

select group_number, name, value from v$asm_attribute;

no rows selected

SQL> alter diskgroup FRA set attribute ‘compatible.asm’=’11.1’;

Diskgroup altered.

alter diskgroup DATA set attribute ‘compatible.asm’=’11.1’

Diskgroup altered.

select group_number, name, compatibility, database_compatibility from v$asm_diskgroup;

GROUP_NUMBER NAME COMPATIBIL DATABASE_C

———— ——————– ———- ———-

1 FRA 11.1.0.0.0 10.1.0.0.0

2 DATA 11.1.0.0.0 10.1.0.0.0

SQL> select group_number, name, value from v$asm_attribute;

GROUP_NUMBER NAME VALUE

———— ——————– ———-

1 disk_repair_time 3.6h

1 au_size 8388608

1 compatible.asm 11.1.0.0.0

1 compatible.rdbms 10.1.0.0.0

2 disk_repair_time 3.6h

2 au_size 8388608

2 compatible.asm 11.1.0.0.0

2 compatible.rdbms 10.1.0.0.0

8 rows selected.

alter diskgroup data set attribute ‘compatible.rdbms’=’11.1’

alter diskgroup fra set attribute ‘compatible.rdbms’=’11.1’

alter diskgroup data set attribute ‘compatible.rdbms’=’11.1’

alter diskgroup fra set attribute ‘compatible.rdbms’=’11.1’

select group_number, name, value from v$asm_attribute;

GROUP_NUMBER NAME COMPATIBIL DATABASE_C

———— ——————– ———- ———-

1 FRA 11.1.0.0.0 11.1.0.0.0

2 DATA 11.1.0.0.0 11.1.0.0.0

Restart the database and lo and behold, no spfile compatibility error

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: