jeudi 13 mai 2010

ASM / DISKGROUP - Attributs compatible.asm et compatible.rdbms

Attribut COMPATIBLE.ASM d'un diskgroup:

Lorsque vous créez un diskgroup ASM (version 11.2.0.1), en utilisant le «CREATE DISKGROUP», ou la commande «mkdg» d'ASMCMD ou par OEM, la valeur par défaut de l'attribut COMPATIBLE.ASM est positionnée à 10.1.
Cependant, la valeur par défaut est 11.2 lorsque vous créez le diskgroup en utilisant ASMCA (Asm Configuration Assistant).

Attribut COMPATIBLE.RDBMS d'un diskgroup:

Pour ce qui concerne l'attribut COMPATIBLE.RDBMS, la valeur par défaut est 10.1 peu importe l'outil utilisé pour créer le diskgroup.
Attention: Tenir compte des valeurs des paramètres d'initialisation COMPATIBLE des bd qui vont utiliser ce diskgroup avant de modifier la valeur de l'attribut COMPATIBLE.RDBMS.

Pour voir les valeurs de ces attributs une fois le diskgroup créé, l'on peut interroger les vues V$ASM_DISKGROUP et V$ASM_ATTRIBUTES.

Exemples:

sqlplus / as sysasm
SQL> select name, compatibility, database_compatibility
from v$asm_diskgroup where name='NOM_DG';


ou

sqlplus / as sysasm
SQL> select d.name, a.name, a.value from v$asm_attribute a,v$asm_diskgroup d
where a.group_number=d.group_number
and d.name='NOM_DG'
and a.name in ('compatible.asm','compatible.rdbms');

Si vous souhaitez modifier les valeurs de ces attributs après la création du diskgroup, procédez comme suit:

sqlplus / as sysasm
SQL> alter diskgroup NOM_DG set attribute 'compatible.asm'='11.2';
SQL> alter diskgroup NOM_DG set attribute 'compatible.rdbms'='11.2';


L'objet de cet article est de présenter comment apporter une modification à l'instance ASM pour que les futures créations de diskgroups se fassent automatiquement avec la valeur 11.2 (si c'est ce que vous souhaitez).

D'abord où va-t-on chercher la valeur par défaut? Pour le savoir, exécuter la requête suivante:
-- Les valeurs par défaut sont fournies par les paramètres cachés _asm_compatibility et _rdbms_compatibility.

SQL> select i.ksppinm, v.ksppstvl from x$ksppi i, x$ksppcv v
2 where i.ksppinm in ('_rdbms_compatibility','_asm_compatibility')
3 and i.indx=v.indx;

KSPPINM KSPPSTVL
--------------------- ----------
_asm_compatibility 10.1
_rdbms_compatibility 10.1


Ensuite, si vous voulez modifier ces valeurs par défaut pour que les prochaines créations de diskgroups se fassent automatiquement avec la nouvelle valeur:

sqlplus / as sysasm
SQL> alter system set "_asm_compatibility"='11.2' scope=spfile;
System altered.

SQL> alter system set "_rdbms_compatibility"='11.2' scope=spfile;
System altered.


Redémarrer l'instance ASM;

sqlplus / as sysasm
SQL> shutdown immediate
ASM diskgroups dismounted
ASM instance shutdown
SQL> startup
ASM instance started

Total System Global Area 284565504 bytes
Fixed Size 1299428 bytes
Variable Size 258100252 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted


Si vous êtes dans un environnement RAC ou Oracle restart:

srvctl stop asm [-n noeuds] [-f]
srvctl start asm [-n noeuds]

Interroger de nouveau pour s'assurer que les nouvelles valeurs ont été prises en compte:

SQL> select i.ksppinm, v.ksppstvl from x$ksppi i, x$ksppcv v
2 where i.ksppinm in ('_rdbms_compatibility','_asm_compatibility')
3 and i.indx=v.indx;

KSPPINM KSPPSTVL
-------------------- ----------
_asm_compatibility 11.2
_rdbms_compatibility 11.2


Tester en créant un nouveau diskgroup et vérifier la valeur des attributs:

sqlplus / as sysasm
SQL> create diskgroup nom_dg2 external redundancy disk '/asm1/dg2-50mb-1.asm';

Diskgroup created.

SQL> select name, compatibility, database_compatibility
2 from v$asm_diskgroup where name='NOM_DG2';

NAME COMPATIBIL DATABASE_C
----------- ---------- ----------
NOM_DG2 11.2.0.0.0 11.2.0.0.0


Dorénavant, tous les diskgroups seront créés avec les valeurs des attributs COMPATIBLE.ASM et COMPATIBLE.RDBMS à 11.2

Note importante:
Si les valeurs par défaut sont laissées à 10.1, vous pouvez tout de même créer des diskgroups avec la valeur 11.2 pour ces attributs:
- En spécifiant la clause des attributs au niveau du CREATE DISKGROUP (voir la syntaxe complète dans la doc oracle)
- En spécifiant la clause des attributs au niveau de la commande «mkdg» d'ASMCMD (faire «help mkdg» pour voir la syntaxe)
- Modifier ces valeurs au niveau de l'écran de création de diskgroup d'OEM
- Avec ASMCA, cliquer sur «Show Advanced Options» et modifier «database compatibility» (asm compatibility étant par défaut à 11.2.0.0.0)

Aucun commentaire:

Enregistrer un commentaire