Saturday, September 11, 2010

compatible.asm and compatible.rdbms attribute changes

compatible.asm controls the format of data structures of ASM metadata on disk and compatible.rdbms is the minimum rdbms compatible version that is allowed the mount the disk group. Values once increased cannot be reverted back to previous lower level.

It is interesting to see that compatible.asm attribute could only be set to major version values such as 10.1 (default), 11.1 and 11.2 but no minor version values such as 10.1.0.2 nor to 10.2.

All those other values are qunatized by the diskgroup.

Setting for 10.1 minor version
SQL> alter diskgroup reduntest set attribute 'compatible.asm'='10.1.0.2';

Diskgroup altered.

Sun Sep 12 01:20:44 2010
SQL> alter diskgroup reduntest set attribute 'compatible.asm'='10.1.0.2'
NOTE: Advancing ASM compatibility to 10.1.0.2.0 for grp 3
NOTE: Quantized compatibility from 10.1.0.2.0
to 10.1.0.0.0

NOTE: initiating PST update: grp = 3
kfdp_update(): 136
Sun Sep 12 01:20:46 2010
kfdp_updateBg(): 136
NOTE: Advancing compatible.asm on grp 3 disk RED1
NOTE: Advancing compatible.asm on grp 3 disk RED2
NOTE: group REDUNTEST: updated PST location: disk 0000 (PST copy 0)
NOTE: group REDUNTEST: updated PST location: disk 0001 (PST copy 1)
NOTE: PST update grp = 3 completed successfully
SUCCESS: Advanced compatible.asm to 10.1.0.0.0 for grp 3
SUCCESS: alter diskgroup reduntest set attribute 'compatible.asm'='10.1.0.2'
Sun Sep 12 01:20:46 2010
kfdp_query(REDUNTEST): 137
kfdp_queryBg(): 137
NOTE: Instance updated compatible.asm to 10.1.0.0.0 for grp 3
No row is added to v$asm_attribute view.

Changing compatible.asm to 10.2 and 10.2 minor versions
SQL> alter diskgroup dg1 set attribute 'compatible.rdbms'='10.2';

Diskgroup altered.

Sun Sep 12 01:04:30 2010
SQL> alter diskgroup dg1 set attribute 'compatible.asm'='10.2'
NOTE: Advancing ASM compatibility to 10.2.0.0.0 for grp 4
NOTE: Quantized compatibility from 10.2.0.0.0
to 10.1.0.0.0

NOTE: initiating PST update: grp = 4
kfdp_update(): 126
Sun Sep 12 01:04:31 2010
kfdp_updateBg(): 126
NOTE: Advancing compatible.asm on grp 4 disk RED3
NOTE: Advancing compatible.asm on grp 4 disk RED4
NOTE: group DG1: updated PST location: disk 0000 (PST copy 0)
NOTE: group DG1: updated PST location: disk 0001 (PST copy 1)
NOTE: PST update grp = 4 completed successfully
SUCCESS: Advanced compatible.asm to 10.1.0.0.0 for grp 4
SUCCESS: alter diskgroup dg1 set attribute 'compatible.asm'='10.2'

SQL> alter diskgroup dg1 set attribute 'compatible.rdbms'='10.2.0.0';

Diskgroup altered.

Sun Sep 12 01:08:06 2010
SQL> alter diskgroup dg1 set attribute 'compatible.asm'='10.2.0.0'
NOTE: Advancing ASM compatibility to 10.2.0.0.0 for grp 4
NOTE: Quantized compatibility from 10.2.0.0.0
to 10.1.0.0.0

NOTE: initiating PST update: grp = 4
kfdp_update(): 128
Sun Sep 12 01:08:07 2010
kfdp_updateBg(): 128
NOTE: Advancing compatible.asm on grp 4 disk RED3
NOTE: Advancing compatible.asm on grp 4 disk RED4
NOTE: group DG1: updated PST location: disk 0000 (PST copy 0)
NOTE: group DG1: updated PST location: disk 0001 (PST copy 1)
NOTE: PST update grp = 4 completed successfully
SUCCESS: Advanced compatible.asm to 10.1.0.0.0 for grp 4
Sun Sep 12 01:08:07 2010
kfdp_query(DG1): 129
SUCCESS: alter diskgroup dg1 set attribute 'compatible.asm'='10.2.0.0'
kfdp_queryBg(): 129
NOTE: Instance updated compatible.asm to 10.1.0.0.0 for grp 4

SQL> alter diskgroup dg1 set attribute 'compatible.rdbms'='10.2.0.5';

Diskgroup altered.

Sun Sep 12 01:08:41 2010
SQL> alter diskgroup dg1 set attribute 'compatible.asm'='10.2.0.5'
NOTE: Advancing ASM compatibility to 10.2.0.5.0 for grp 4
NOTE: Quantized compatibility from 10.2.0.5.0
to 10.1.0.0.0

NOTE: initiating PST update: grp = 4
kfdp_update(): 130
Sun Sep 12 01:08:43 2010
kfdp_updateBg(): 130
NOTE: Advancing compatible.asm on grp 4 disk RED3
NOTE: Advancing compatible.asm on grp 4 disk RED4
NOTE: group DG1: updated PST location: disk 0000 (PST copy 0)
NOTE: group DG1: updated PST location: disk 0001 (PST copy 1)
NOTE: PST update grp = 4 completed successfully
SUCCESS: Advanced compatible.asm to 10.1.0.0.0 for grp 4
Sun Sep 12 01:08:43 2010
kfdp_query(DG1): 131
SUCCESS: alter diskgroup dg1 set attribute 'compatible.asm'='10.2.0.5'
kfdp_queryBg(): 131
NOTE: Instance updated compatible.asm to 10.1.0.0.0 for grp 4
No row added to v$asm_attribute.

Even a non-existing version could be specified and diskgroup would quantiz it to 10.1
SQL> alter diskgroup dg1 set attribute 'compatible.asm'='10.3.0.5';

Diskgroup altered.

SQL> alter diskgroup dg1 set attribute 'compatible.asm'='10.3.0.5'
NOTE: Advancing ASM compatibility to 10.3.0.5.0 for grp 4
NOTE: Quantized compatibility from 10.3.0.5.0
to 10.1.0.0.0

NOTE: initiating PST update: grp = 4
kfdp_update(): 132
Sun Sep 12 01:10:58 2010
kfdp_updateBg(): 132
NOTE: Advancing compatible.asm on grp 4 disk RED3
NOTE: Advancing compatible.asm on grp 4 disk RED4
NOTE: group DG1: updated PST location: disk 0000 (PST copy 0)
NOTE: group DG1: updated PST location: disk 0001 (PST copy 1)
NOTE: PST update grp = 4 completed successfully
SUCCESS: Advanced compatible.asm to 10.1.0.0.0 for grp 4
Sun Sep 12 01:10:58 2010
kfdp_query(DG1): 133
SUCCESS: alter diskgroup dg1 set attribute 'compatible.asm'='10.3.0.5'
kfdp_queryBg(): 133
NOTE: Instance updated compatible.asm to 10.1.0.0.0 for grp 4
Finally updating to 11.1 version
SQL> alter diskgroup dg1 set attribute 'compatible.asm'='11.1';

Diskgroup altered.

SQL> alter diskgroup dg1 set attribute 'compatible.asm'='11.1'
NOTE: Advancing ASM compatibility to 11.1.0.0.0 for grp 4
NOTE: initiating PST update: grp = 4
kfdp_update(): 134
Sun Sep 12 01:11:25 2010
kfdp_updateBg(): 134
NOTE: Advancing compatible.asm on grp 4 disk RED3
NOTE: Advancing compatible.asm on grp 4 disk RED4
NOTE: group DG1: updated PST location: disk 0000 (PST copy 0)
NOTE: group DG1: updated PST location: disk 0001 (PST copy 1)
NOTE: PST update grp = 4 completed successfully
SUCCESS: Advanced compatible.asm to 11.1.0.0.0 for grp 4
Sun Sep 12 01:11:25 2010
kfdp_query(DG1): 135
SUCCESS: alter diskgroup dg1 set attribute 'compatible.asm'='11.1'
kfdp_queryBg(): 135
NOTE: Instance updated compatible.asm to 11.1.0.0.0 for grp 4
v$asm_attribute view is only populated when an attribute is "really" changed.

Unlike the compatible.asm the compatible.rdbms does accept 10.2 and other minor versions.
SQL> alter diskgroup dg1 set attribute 'compatible.rdbms'='10.2';

Diskgroup altered.

Sun Sep 12 01:13:54 2010
SQL> alter diskgroup dg1 set attribute 'compatible.rdbms'='10.2'
NOTE: Advancing RDBMS compatibility to 10.2.0.0.0 for grp 4
SUCCESS: Advanced compatible.rdbms to 10.2.0.0.0 for grp 4
SUCCESS: alter diskgroup dg1 set attribute 'compatible.rdbms'='10.2'
Advancing to minor versions
SQL> alter diskgroup dg1 set attribute 'compatible.rdbms'='10.2.0.5';

Diskgroup altered.

Sun Sep 12 01:14:26 2010
SQL> alter diskgroup dg1 set attribute 'compatible.rdbms'='10.2.0.5'
NOTE: Advancing RDBMS compatibility to 10.2.0.5.0 for grp 4
SUCCESS: Advanced compatible.rdbms to 10.2.0.5.0 for grp 4
SUCCESS: alter diskgroup dg1 set attribute 'compatible.rdbms'='10.2.0.5'
v$asm_attribute is populated with the manually set attributes.
SQL> select name,value from v$asm_attribute;

NAME VALUE
-------------------- ----------
disk_repair_time 3.6h
au_size 1048576
compatible.asm 11.1.0.0.0
compatible.rdbms 10.2.0.5