Où sont les fichiers dans ASM ?

Comme si c’était différent avec un système de fichiers ! Vous avez probablement eu cette question : « Où sont les fichiers dans ASM ? ». Comme si savoir où sont situés les fichiers changeait quelque chose !

Connecté à ASM, vous pouvez trouver l’ensemble des fichiers dans ASM grâce aux scripts ci-dessous :

column full_alias_path format a50
column file_number format 99999999999

select concat(‘+’||gname, sys_connect_by_path(aname, ‘/’)) full_alias_path, file_number
from ( select b.name gname, a.parent_index pindex, a.name aname,
a.reference_index rindex , a.system_created, a.alias_directory,
c.type file_type, a.file_number
from v$asm_alias a, v$asm_diskgroup b, v$asm_file c
where a.group_number = b.group_number
and a.group_number = c.group_number(+)
and a.file_number = c.file_number(+)
and a.file_incarnation = c.incarnation(+)
)
start with (mod(pindex, power(2, 24))) = 0
and rindex in
( select a.reference_index
from v$asm_alias a, v$asm_diskgroup b
where a.group_number = b.group_number
and (mod(a.parent_index, power(2, 24))) = 0
and a.name = ‘&DATABASENAME’
)
connect by prior rindex = pindex
/
Enter value for databasename: ORCL
old 17: and a.name = ‘&DATABASENAME’
new 17: and a.name = ‘ORCL’

FULL_ALIAS_PATH FILE_NUMBER
————————————————– ————
+DATA/ORCL 4294967295
+DATA/ORCL/spfileORCL.ora 266
+DATA/ORCL/DATAFILE 4294967295
+DATA/ORCL/DATAFILE/SYSTEM.256.609759359 256
+DATA/ORCL/DATAFILE/SYSAUX.257.609759359 257
+DATA/ORCL/DATAFILE/UNDOTBS1.258.609759361 258
+DATA/ORCL/DATAFILE/USERS.259.609759361 259
+DATA/ORCL/DATAFILE/EXAMPLE.265.609759545 265
+DATA/ORCL/TEMPFILE 4294967295
+DATA/ORCL/TEMPFILE/TEMP.264.609759505 264
+DATA/ORCL/PARAMETERFILE 4294967295
+DATA/ORCL/PARAMETERFILE/spfile.266.609759985 266
+DATA/ORCL/CONTROLFILE 4294967295
+DATA/ORCL/CONTROLFILE/Current.260.609759459 260
+DATA/ORCL/ONLINELOG 4294967295
+DATA/ORCL/ONLINELOG/group_1.261.609759469 261
+DATA/ORCL/ONLINELOG/group_2.262.609759477 262
+DATA/ORCL/ONLINELOG/group_3.263.609759479 263

18 rows selected.

Une fois que vous avez le numéro du fichier (ici 259), effectuez la requête qui suit :

select DISK_KFFXP,AU_KFFXP,PXN_KFFXP,XNUM_KFFXP,LXN_KFFXP
from x$kffxp
where GROUP_KFFXP=1
and NUMBER_KFFXP=259;

DISK_KFFXP AU_KFFXP PXN_KFFXP XNUM_KFFXP LXN_KFFXP
———- ———- ———- ———- ———-
0 402 0 0 0
1 401 1 1 0
0 403 2 2 0
1 402 3 3 0
0 404 4 4 0
1 403 5 5 0

Il y a un excellent article pour en savoir (beaucoup) plus sur ASM ici !

GarK!