Oracle内部视图X$KFFXP

X$KFFXP是ASM(Automatic Storage Management)自动存储管理特性的重要内部视图,该视图反应了File Extent Map映射关系,ASM会将文件split成多个多个piece分片,这些分片被称为Extents。 在Disk上存放这些Extent的位置,就是我们常说的”Allocation Unit”。

 

KFF意为Kernel File,X$KFFXP即Kernel File Extent Maps, 该内部视图的一条记录代表一个Extent。

 

其字段含义如下:

 

GROUP_KFFXP        diskgroup number (1 - 63) ASM disk group number. Join with v$asm_disk and v$asm_diskgroup

NUMBER_KFFXP      file number for the extent ASM file number. Join with v$asm_file and v$asm_alias

COMPOUND_KFFXP    (group_kffxp << 24) + file # File identifier. Join with compound_index in v$asm_file

INCARN_KFFXP      file incarnation number File incarnation id. Join with incarnation in v$asm_file

PXN_KFFXP            physical extent number  Extent number per file

XNUM_KFFXP          extent number bit 31 set if indirect Logical extent
number per file (mirrored extents have the same value)

LXN_KFFXP            logical extent number 0,1 used to identify primary/mirror extent,
2 identifies file header allocation unit (hypothesis) used in the query such that
we go after only the primary extents, not secondary extents 

DISK_KFFXP          disk on which AU is located  Disk number where the extent is allocated.
Join with v$asm_disk Relative position of the allocation unit from the beginning of the disk. 

AU_KFFXP              AU number on disk of AU allocation unit size (1 MB) in v$asm_diskgroup

从11g开始加入了CHK_KFFXP SIZE_KFFXP 2个新的字段

CHK_KFFXP   未知 可能是范围为[0-256]的某种校验值

SIZE_KFFXP  size_kffxp is used such that we account for variable sized extents. 
sum(size_kffxp) provides the number of AUs that are on that disk.

 

在实例级别控制ASM Diskgroup AU 和 stripe size的是2个隐藏参数 _asm_ausize 1048576 以及 _asm_stripesize 131072。从11g开始一个Extent可能包含多个AU。

 

可以通过以下脚本查询文件与Extent等ASM属性的映射关系:

 

set linesize 140 pagesize 1400
col "FILE NAME" format a40
set head on
select NAME         "FILE NAME",
       NUMBER_KFFXP "FILE NUMBER",
       XNUM_KFFXP   "EXTENT NUMBER",
       DISK_KFFXP   "DISK NUMBER",
       AU_KFFXP     "AU NUMBER",
       SIZE_KFFXP   "NUMBER of AUs"
  from x$kffxp, v$asm_alias
 where GROUP_KFFXP = GROUP_NUMBER
   and NUMBER_KFFXP = FILE_NUMBER
   and system_created = 'Y'
   and lxn_kffxp = 0
 order by name;

Comments

  1. maclean says
    SQL> select s.name,STRIPED
      2    from v$asm_file a, v$asm_alias s
      3   where a.GROUP_NUMBER = s.GROUP_NUMBER
      4     and a.FILE_NUMBER = s.FILE_NUMBER
      5     and STRIPED = 'FINE' 
      6     /
    
    NAME                                                                   STRIPE
    ---------------------------------------------------------------------- ------
    Backup.263.769482651                                                   FINE
    Current.260.766620025                                                  FINE
    Current.261.766620025                                                  FINE
    Backup.481.769484083                                                   FINE
    
    SQL> set linesize 140 pagesize 1400
    SQL> col "FILE NAME" format a40
    SQL> set head on
    SQL> select NAME         "FILE NAME",
      2         NUMBER_KFFXP "FILE NUMBER",
      3         XNUM_KFFXP   "EXTENT NUMBER",
      4         DISK_KFFXP   "DISK NUMBER",
      5         AU_KFFXP     "AU NUMBER"
      6    from x$kffxp, v$asm_alias
      7   where GROUP_KFFXP = GROUP_NUMBER
      8     and NUMBER_KFFXP = FILE_NUMBER
      9     and name in ('Backup.263.769482651',
     10  'Current.260.766620025',
     11  'Current.261.766620025',
     12  'Backup.481.769484083')
     13   order by  DISK_KFFXP,AU_KFFXP;
    
    FILE NAME                                FILE NUMBER EXTENT NUMBER DISK NUMBER  AU NUMBER
    ---------------------------------------- ----------- ------------- ----------- ----------
    Backup.263.769482651                             263             1           0        416
    Backup.263.769482651                             263            11           0        417
    Backup.263.769482651                             263            20           0        418
    Current.261.766620025                            261             1           0        625
    Current.261.766620025                            261             4           0        626
    Current.261.766620025                            261             6           0        627
    Current.261.766620025                            261             8           0        628
    Current.261.766620025                            261            10           0        629
    Current.261.766620025                            261            12           0        630
    Current.261.766620025                            261            14           0        631
    Current.261.766620025                            261            16           0        632
    Current.261.766620025                            261            18           0        633
    Current.261.766620025                            261            21           0        634
    Current.261.766620025                            261            23           0        635
    Current.260.766620025                            260             1           0        636
    Current.260.766620025                            260             4           0        637
    Current.260.766620025                            260             6           0        638
    Current.260.766620025                            260             8           0        639
    Current.260.766620025                            260            10           0        640
    Current.260.766620025                            260            12           0        641
    Current.260.766620025                            260            14           0        642
    Current.260.766620025                            260            16           0        643
    Current.260.766620025                            260            18           0        644
    Current.260.766620025                            260            21           0        645
    Current.260.766620025                            260            23           0        646
    Backup.481.769484083                             481             0           0      10715
    Backup.481.769484083                             481             3           0      10716
    Backup.481.769484083                             481             5           0      10717
    Backup.481.769484083                             481             7           0      10718
    Backup.481.769484083                             481             9           0      10719
    Backup.481.769484083                             481            11           0      10720
    Backup.481.769484083                             481            13           0      10721
    Backup.481.769484083                             481            15           0      10722
    Backup.481.769484083                             481            17           0      10723
    Backup.481.769484083                             481            20           0      10724
    Backup.481.769484083                             481            22           0      10725
    Current.261.766620025                            261             0           1        626
    Current.261.766620025                            261             3           1        627
    Current.261.766620025                            261             5           1        628
    Current.261.766620025                            261             7           1        629
    Current.261.766620025                            261             9           1        630
    Current.261.766620025                            261            11           1        631
    Current.261.766620025                            261            13           1        632
    Current.261.766620025                            261            15           1        633
    Current.261.766620025                            261            17           1        634
    Current.261.766620025                            261            19           1        635
    Current.261.766620025                            261            22           1        636
    Current.260.766620025                            260             0           1        637
    Current.260.766620025                            260             3           1        638
    Current.260.766620025                            260             5           1        639
    Current.260.766620025                            260             7           1        640
    Current.260.766620025                            260             9           1        641
    Current.260.766620025                            260            11           1        642
    Current.260.766620025                            260            13           1        643
    Current.260.766620025                            260            15           1        644
    Current.260.766620025                            260            17           1        645
    Current.260.766620025                            260            19           1        646
    Current.260.766620025                            260            22           1        647
    Backup.263.769482651                             263             0           1       3333
    Backup.263.769482651                             263             2           1       3334
    Backup.263.769482651                             263             3           1       3335
    Backup.263.769482651                             263             4           1       3336
    Backup.263.769482651                             263             5           1       3337
    Backup.263.769482651                             263             6           1       3338
    Backup.263.769482651                             263             7           1       3339
    Backup.263.769482651                             263             8           1       3340
    Backup.263.769482651                             263             9           1       3341
    Backup.263.769482651                             263            10           1       3342
    Backup.263.769482651                             263            12           1       3343
    Backup.263.769482651                             263            13           1       3344
    Backup.263.769482651                             263            14           1       3345
    Backup.263.769482651                             263            15           1       3346
    Backup.263.769482651                             263            16           1       3347
    Backup.263.769482651                             263            17           1       3348
    Backup.263.769482651                             263            18           1       3349
    Backup.263.769482651                             263            19           1       3350
    Backup.263.769482651                             263            21           1       3351
    Backup.263.769482651                             263            22           1       3352
    Backup.263.769482651                             263            23           1       3353
    Backup.481.769484083                             481             1           1      10727
    Backup.481.769484083                             481             4           1      10728
    Backup.481.769484083                             481             6           1      10729
    Backup.481.769484083                             481             8           1      10730
    Backup.481.769484083                             481            10           1      10731
    Backup.481.769484083                             481            12           1      10732
    Backup.481.769484083                             481            14           1      10733
    Backup.481.769484083                             481            16           1      10734
    Backup.481.769484083                             481            18           1      10735
    Backup.481.769484083                             481            21           1      10736
    Backup.481.769484083                             481            23           1      10737
    Current.261.766620025                            261             2           2         81
    Current.261.766620025                            261            20           2         82
    Current.260.766620025                            260             2           2         83
    Current.260.766620025                            260            20           2         84
    Backup.481.769484083                             481             2           2       1362
    Backup.481.769484083                             481            19           2       1363
    
    96 rows selected.
    
      1  select NAME         "FILE NAME",
      2         NUMBER_KFFXP "FILE NUMBER",
      3         PXN_KFFXP,
      4         XNUM_KFFXP   "EXTENT NUMBER",
      5         DISK_KFFXP   "DISK NUMBER",
      6         AU_KFFXP     "AU NUMBER",
      7         SIZE_KFFXP
      8    from x$kffxp, v$asm_alias
      9   where GROUP_KFFXP = GROUP_NUMBER
     10     and NUMBER_KFFXP = FILE_NUMBER
     11     and name   ='Current.260.766620025'
     12*  order by XNUM_KFFXP,DISK_KFFXP, AU_KFFXP
    SQL> /
    
    FILE NAME                                FILE NUMBER  PXN_KFFXP EXTENT NUMBER DISK NUMBER  AU NUMBER SIZE_KFFXP
    ---------------------------------------- ----------- ---------- ------------- ----------- ---------- ----------
    Current.260.766620025                            260          0             0           1        637          1
    Current.260.766620025                            260          1             1           0        636          1
    Current.260.766620025                            260          2             2           2         83          1
    Current.260.766620025                            260          3             3           1        638          1
    Current.260.766620025                            260          4             4           0        637          1
    Current.260.766620025                            260          5             5           1        639          1
    Current.260.766620025                            260          6             6           0        638          1
    Current.260.766620025                            260          7             7           1        640          1
    Current.260.766620025                            260          8             8           0        639          1
    Current.260.766620025                            260          9             9           1        641          1
    Current.260.766620025                            260         10            10           0        640          1
    Current.260.766620025                            260         11            11           1        642          1
    Current.260.766620025                            260         12            12           0        641          1
    Current.260.766620025                            260         13            13           1        643          1
    Current.260.766620025                            260         14            14           0        642          1
    Current.260.766620025                            260         15            15           1        644          1
    Current.260.766620025                            260         16            16           0        643          1
    Current.260.766620025                            260         17            17           1        645          1
    Current.260.766620025                            260         18            18           0        644          1
    Current.260.766620025                            260         19            19           1        646          1
    Current.260.766620025                            260         20            20           2         84          1
    Current.260.766620025                            260         21            21           0        645          1
    Current.260.766620025                            260         22            22           1        647          1
    Current.260.766620025                            260         23            23           0        646          1
    
    24 rows selected.
    
    
  2. xieyihn says

    请问下我在11gR2版为什么查不到此视图啊?

    SQL> show user;
    USER is “SYS”

    SQL> select * from x$kffxp;
    no rows selected

    SQL> select name from v$datafile;
    NAME
    ——————————————————————————–
    +DATA/testdb/datafile/system.263.784600547
    +DATA/testdb/datafile/sysaux.262.784600547
    +DATA/testdb/datafile/undotbs1.261.784600547
    +DATA/testdb/datafile/users.259.784600547
    +DATA/testdb/test/tbs01.dbf

    SQL> desc x$kffxp;
    Name Null? Type
    —————————————– ——– —————————-
    ADDR RAW(4)
    INDX NUMBER
    INST_ID NUMBER
    GROUP_KFFXP NUMBER
    NUMBER_KFFXP NUMBER
    COMPOUND_KFFXP NUMBER
    INCARN_KFFXP NUMBER
    PXN_KFFXP NUMBER
    XNUM_KFFXP NUMBER
    LXN_KFFXP NUMBER
    DISK_KFFXP NUMBER
    AU_KFFXP NUMBER
    FLAGS_KFFXP NUMBER
    CHK_KFFXP NUMBER
    SIZE_KFFXP NUMBER

    SQL> select * from x$kffxp;
    no rows selected

    • xieyihn says

      不好意思 说错了 是查不到任何东西出来?

      • 这是一个ASM type instance 的视图,不要在instance_type=RDBMS的实例中查询它。

        • xieyihn says

          [grid@test01 admin]$ sqlplus / as sysasm

          SQL*Plus: Release 11.2.0.1.0 Production on Fri Jun 29 11:39:52 2012

          Copyright (c) 1982, 2009, Oracle. All rights reserved.

          Connected to:
          Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production
          With the Automatic Storage Management option
          SQL> select instance_name,status from v$instance;

          INSTANCE_NAME STATUS
          —————- ————
          +ASM STARTED

          嗯,换了实例可以查询了,TKS。
          不过还请教一个问题,asm实例的状态为started,我在远程client应该怎么连上去呢? (好像见过10G可以)

  3. neverland_83 says

    我有一个疑问想请教一下。
    确实像你说的那样,从11g开始,oracle支持Variable-Size Extents,在他的官方文档中如是描述:
    The extent size of a file varies as follows:
    •Extent size always equals the disk group AU size for the first 20000 extent sets (0 – 19999).
    •Extent size equals 4*AU size for the next 20000 extent sets (20000 – 39999).
    •Extent size equals 16*AU size for the next 20000 and higher extent sets (40000+).
    也就是文件的extent编号超过20000,每个extent就会有4AU,
    extent编号超过40000,每个extent就会有16AU。
    这样的好处当然是可以减小维护extent map所占用的空间。

    但是现在让我比较崩溃的是,在我自己的一个11gR2的RAC环境上,我查询出来却貌似不是oracle文档中说的这样。
    我用的查询是在你的查询基础上修改了一点点:
    SQL> select * from (select NAME “FILE NAME”,
    NUMBER_KFFXP “FILE NUMBER”,
    XNUM_KFFXP “EXTENT NUMBER”,
    DISK_KFFXP “DISK NUMBER”,
    AU_KFFXP “AU NUMBER”,
    SIZE_KFFXP “NUMBER of AUs”
    from x$kffxp, v$asm_alias
    where GROUP_KFFXP = GROUP_NUMBER
    and NUMBER_KFFXP = FILE_NUMBER
    and system_created = ‘Y’
    and lxn_kffxp = 0
    and NUMBER_KFFXP=293
    and XNUM_KFFXP != 2147483648
    order by AU_KFFXP desc) where rownum < 10; 2 3 4 5 6 7 8 9 10 11 12 13 14

    FILE NAME FILE NUMBER EXTENT NUMBER DISK NUMBER AU NUMBER NUMBER of AUs
    ———————— ———– ————- ———– ———- ————-
    TPCH1T.293.811454469 293 72638 3 20412 1
    TPCH1T.293.811454469 293 72639 8 20412 1
    TPCH1T.293.811454469 293 72628 3 20411 1
    TPCH1T.293.811454469 293 72634 5 20411 1
    TPCH1T.293.811454469 293 72629 8 20411 1
    TPCH1T.293.811454469 293 72618 3 20410 1
    TPCH1T.293.811454469 293 72624 5 20410 1
    TPCH1T.293.811454469 293 72619 8 20410 1
    TPCH1T.293.811454469 293 72608 3 20409 1

    9 rows selected.

    可以看到Extent Number都已经7、8万了,但是AUs仍然是1,并没有像oracle文档中说的那样变为16AU。
    所以不知道这是怎么回事啊?

  4. 丁丁 says

    11.2.0.4 for OEL 6.3 RAC 查询ASM实例的x$kffxp ,是没有数据的,换成其它表了吗?

    • 丁丁 says

      补充:在+ASM1上可以查到数据,+ASM2实例上没有数据

      • 丁丁 says

        抱歉,刚才发现crs不正常(CRS-0184),但ASM和db都是正常的,重新启动后CRS正常,可以在2号节点上查询到x$kffxp数据了

  5. roger says

    This feature is automatic for newly created and resized datafiles when the disk group compatibility attributes are set to Oracle Release 11 or higher.

Maclean Liu进行回复 取消回复

*

沪ICP备14014813号-2

沪公网安备 31010802001379号