知识大全 Oracle如何在ASM中定位文件的分布

Posted 文件

篇首语:大道之行,天下为公。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle如何在ASM中定位文件的分布相关的知识,希望对你有一定的参考价值。

Oracle如何在ASM中定位文件的分布  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  我们将尝试找出文件的AU分布 然后根据AU分布定位磁盘所在的位置 设置有可能利用操作系统层面的工具拷贝ASM其中的数据出来 我将使用两个例子来说明如何查看au分布

   spfile

  查看当前的spfile

  sys@GT G> show parameter spfile;

  NAME TYPE VALUE

  

  spfile string +DATA /gt g/spfilegt g ora

  查找对应的DISKGROUP信息

  +ASM> select name group_number file_number from v$asm_alias where lower(name)= spfilegt g ora ;

  NAME GROUP_NUMBER FILE_NUMBER

  

  spfileGT G ora

  +ASM> select name group_number from v$asm_diskgroup;

  NAME GROUP_NUMBER

  

  DATA

  FRA

  SYSDG

  通过视图查看对应的AU分布

  +ASM> select group_kffxp number_kffxp pxn_kffxp xnum_kffxp disk_kffxp from x$kffxp where group_kffxp= and number_kffxp= ;

  GROUP_KFFXP NUMBER_KFFXP PXN_KFFXP XNUM_KFFXP DISK_KFFXP

  

  

  上述查询显示spfile文件在磁盘组 的 号磁盘上只占用了 个AU 那么我们可以直接通过kfed工具来查看下磁盘上的分配属性

  首先我们要找出对应的磁盘信息 注意磁盘序号是从 开始的

  +ASM> select group_number disk_number path from v$asm_disk where group_number= and disk_number= ;

  GROUP_NUMBER DISK_NUMBER PATH

  

   /dev/asm g f

  文件的FILE_NUMBER= 我们应该从au 这里面查找 也即asm元数据之后的第 个文件 而blkn 是保留位置 因此我们从blkn 开始查找

  [grid@gtser ~]$ kfed read /dev/asm g f aun= blkn= | more

  kfbh endian: ; x : x

  kfbh hard: ; x : x

  kfbh type: ; x : KFBTYP_FILEDIR

  kfbh datfmt: ; x : x

  kfbh block blk: ; x : blk=

  kfbh block obj: ; x : file=

  kfbh check: ; x c: xf f b

  kfbh fcn base: ; x : x bb

  kfbh fcn wrap: ; x : x

  kfbh spare : ; x : x

  kfbh spare : ; x c: x

  kfffdb node incarn: ; x : A= NUMM= x

  kfffdb node frlist number: ; x : xffffffff

  kfffdb node frlist incarn: ; x : A= NUMM= x

  kfffdb hibytes: ; x c: x

  kfffdb lobytes: ; x : x

  kfffdb xtntcnt: ; x : x

  kfffdb xtnteof: ; x : x

  kfffdb blkSize: ; x c: x

  kfffdb flags: ; x : O= S= S= D= C= I= R= A=

  kfffdb fileType: ; x : x f

  kfffdb dXrs: ; x : SCHE= x NUMB= x

  kfffdb iXrs: ; x : SCHE= x NUMB= x

  kfffdb dXsiz[ ]: ; x : xffffffff

  kfffdb dXsiz[ ]: ; x : x

  kfffdb dXsiz[ ]: ; x c: x

  kfffdb iXsiz[ ]: ; x : xffffffff

  kfffdb iXsiz[ ]: ; x : x

  kfffdb iXsiz[ ]: ; x : x

  kfffdb xtntblk: ; x c: x

  kfffdb break: ; x e: x c

  kfffdb priZn: ; x : KFDZN_COLD

  kfffdb secZn: ; x : KFDZN_COLD

  kfffdb ub spare: ; x : x

  kfffdb alias[ ]: ; x : xffffffff

  kfffdb alias[ ]: ; x : xffffffff

  kfffdb strpwdth: ; x c: x

  kfffdb strpsz: ; x d: x

  kfffdb usmsz: ; x e: x

  kfffdb crets hi: ; x : HOUR= xa DAYS= x MNTH= x YEAR= x dd

  kfffdb crets lo: ; x : USEC= x MSEC= x f SECS= x MINS= x b

  kfffdb modts hi: ; x : HOUR= xa DAYS= x MNTH= x YEAR= x dd

  kfffdb modts lo: ; x c: USEC= x MSEC= x f SECS= x MINS= x b

  kfffdb dasz[ ]: ; x : x

  kfffdb dasz[ ]: ; x : x

  kfffdb dasz[ ]: ; x : x

  kfffdb dasz[ ]: ; x : x

  kfffdb permissn: ; x : x

  kfffdb ub spar : ; x : x

  kfffdb ub spar : ; x : x

  kfffdb user entnum: ; x : x

  kfffdb user entinc: ; x a: x

  kfffdb group entnum: ; x c: x

  kfffdb group entinc: ; x e: x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x c: x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x c: x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x c: x

  kfffdb usm: ; x a : length=

  kfffde[ ] xptr au: ; x a : x

  kfffde[ ] xptr disk: ; x a : x

  kfffde[ ] xptr flags: ; x a : L= E= D= S=

  kfffde[ ] xptr c: ; x a : x

  kfffde[ ] xptr au: ; x a : x f

  kfffde[ ] xptr disk: ; x ac: x

  kfffde[ ] xptr flags: ; x ae: L= E= D= S=

  kfffde[ ] xptr c: ; x af: x

  kfffde[ ] xptr au: ; x b : xffffffff

  kfffde[ ] xptr disk: ; x b : xffff

  kfffde[ ] xptr flags: ; x b : L= E= D= S=

  kfffde[ ] xptr c: ; x b : x a

  注意上面的信息

  kfffde[ ] xptr au: ; x a : x f

  kfffde[ ] xptr disk: ; x a : x

  这说明从 文件开始相关的au分布信息是放在这里的 我们继续查看这个au的信息

  +ASM> select group_number disk_number path from v$asm_disk where group_number= and disk_number= ;

  GROUP_NUMBER DISK_NUMBER PATH

  

   /dev/asm g g

  而 号文件是存放在blkn= = 也即第 块中(blkn= )

  [grid@gtser ~]$ kfed read /dev/asm g g aun= blkn= | more

  kfbh endian: ; x : x

  kfbh hard: ; x : x

  kfbh type: ; x : KFBTYP_FILEDIR

  kfbh datfmt: ; x : x

  kfbh block blk: ; x : blk=

  kfbh block obj: ; x : file=

  kfbh check: ; x c: xc d fa

  kfbh fcn base: ; x : x cf

  kfbh fcn wrap: ; x : x

  kfbh spare : ; x : x

  kfbh spare : ; x c: x

  kfffdb node incarn: ; x : A= NUMM= x a

  kfffdb node frlist number: ; x : xffffffff

  kfffdb node frlist incarn: ; x : A= NUMM= x

  kfffdb hibytes: ; x c: x

  kfffdb lobytes: ; x : x e

  kfffdb xtntcnt: ; x : x

  kfffdb xtnteof: ; x : x

  kfffdb blkSize: ; x c: x

  kfffdb flags: ; x : O= S= S= D= C= I= R= A=

  kfffdb fileType: ; x : x d

  kfffdb dXrs: ; x : SCHE= x NUMB= x

  kfffdb iXrs: ; x : SCHE= x NUMB= x

  kfffdb dXsiz[ ]: ; x : xffffffff

  kfffdb dXsiz[ ]: ; x : x

  kfffdb dXsiz[ ]: ; x c: x

  kfffdb iXsiz[ ]: ; x : xffffffff

  kfffdb iXsiz[ ]: ; x : x

  kfffdb iXsiz[ ]: ; x : x

  kfffdb xtntblk: ; x c: x

  kfffdb break: ; x e: x c

  kfffdb priZn: ; x : KFDZN_COLD

  kfffdb secZn: ; x : KFDZN_COLD

  kfffdb ub spare: ; x : x

  kfffdb alias[ ]: ; x : x e

  kfffdb alias[ ]: ; x : x a

  kfffdb strpwdth: ; x c: x

  kfffdb strpsz: ; x d: x

  kfffdb usmsz: ; x e: x

  kfffdb crets hi: ; x : HOUR= xd DAYS= x MNTH= x YEAR= x dd

  kfffdb crets lo: ; x : USEC= x MSEC= x b SECS= xb MINS= x

  kfffdb modts hi: ; x : HOUR= xb DAYS= x MNTH= x YEAR= x dd

  kfffdb modts lo: ; x c: USEC= x MSEC= x SECS= x MINS= x

  kfffdb dasz[ ]: ; x : x

  kfffdb dasz[ ]: ; x : x

  kfffdb dasz[ ]: ; x : x

  kfffdb dasz[ ]: ; x : x

  kfffdb permissn: ; x : x

  kfffdb ub spar : ; x : x

  kfffdb ub spar : ; x : x

  kfffdb user entnum: ; x : x

  kfffdb user entinc: ; x a: x

  kfffdb group entnum: ; x c: x

  kfffdb group entinc: ; x e: x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x c: x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x c: x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x c: x

  kfffdb usm: ; x a : length=

  kfffde[ ] xptr au: ; x a : x a

  kfffde[ ] xptr disk: ; x a : x

  kfffde[ ] xptr flags: ; x a : L= E= D= S=

  kfffde[ ] xptr c: ; x a : x

  kfffde[ ] xptr au: ; x a : xffffffff

  kfffde[ ] xptr disk: ; x ac: xffff

  kfffde[ ] xptr flags: ; x ae: L= E= D= S=

  kfffde[ ] xptr c: ; x af: x a

  我们可以看到只有

  kfffde[ ] xptr au: ; x a : x a

  而下一个

  kfffde[ ] xptr au: ; x a : xffffffff

  是还没分配数据的 这也印证了我们的配置 external的dg 没有冗余 因此每个au只有primary extents 即 个au 接下来我们通过os的dd命令将该文件copy出来 我们可以直接将spfile dd到文本文件

  +ASM> select group_kfdat number_kfdat aunum_kfdat from x$kfdat where fnum_kfdat= ;

  GROUP_KFDAT NUMBER_KFDAT AUNUM_KFDAT

  

  

  从上面信息我们得到该文件业绩spfile的在磁盘的物理位置

  [grid@gtser ~]$ dd if=/dev/asm g g skip= of=/tmp/dbspfile bs= k count=

   + records in

   + records out

   bytes ( MB) copied seconds MB/s

  [grid@gtser ~]$ cat /tmp/dbspfile

  C"(% tQ CC"yKGT G __db_cache_size=

  GT G __java_pool_size=

  GT G __large_pool_size=

  GT G __oracle_base= /u /app/oracle #ORACLE_BASE set from environment

  GT G __pga_aggregate_target=

  GT G __sga_target=

  GT G __shared_io_pool_size=

  GT G __shared_pool_size=

  GT G __streams_pool_size=

  * audit_file_dest= /u /app/oracle/admin/GT G/adump

  * audit_trail= db

  * patible=

  * control_files= +DATA /gt g/controlfile/current CC"y/ +FRA/gt g/controlfile/current

  * db_block_size=

  * db_create_file_dest= +DATA

  * db_domain=

  * db_name= GT G

  * db_recovery_file_dest= +FRA

  * db_recovery_file_dest_size=

  * diagnostic_dest= /u /app/oracle

  * dispatchers= (PROTOCOL=TCP) (SERVICE=GT GXDB)

  * log_archive_format= %t_%s_%r dbf

  * nls_language= SIMPLIFIED CHINESE

  * nls_territory= CHINA

  * open_cursors=

  * pga_aggregate_target=

  * processes=

  * remote_login_passwordfile= ECC"YcXCLUSIVE

  * sga_target=

  * undo_tablespace= UNDOTBS

  CC"FeCC"EeCC"DeC[grid@gtser ~]$

   控制文件

  sys@GT G> show parameter control_files

  NAME TYPE VALUE

  

  control_files string +DATA /gt g/controlfile/curr

  ent +FRA/gt g/

  controlfile/current

  

  +ASM> select XNUM_KFFXP PXN_KFFXP LXN_KFFXP DISK_KFFXP AU_KFFXP size_kffxp

   from X$KFFXP

   where GROUP_KFFXP= and NUMBER_KFFXP= and XNUM_KFFXP<>

   order by ;

  XNUM_KFFXP PXN_KFFXP LXN_KFFXP DISK_KFFXP AU_KFFXP SIZE_KFFXP

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

   rows selected

  这个控制文件使用了 个au 我们看看实际的磁盘分布情况怎么样

  [grid@gtser ~]$ kfed read /dev/asm g g aun= blkn= | more

  kfbh endian: ; x : x

  kfbh hard: ; x : x

  kfbh type: ; x : KFBTYP_FILEDIR

  kfbh datfmt: ; x : x

  kfbh block blk: ; x : blk=

  kfbh block obj: ; x : file=

  kfbh check: ; x c: x aabceb

  kfbh fcn base: ; x : x ce

  kfbh fcn wrap: ; x : x

  kfbh spare : ; x : x

  kfbh spare : ; x c: x

  kfffdb node incarn: ; x : A= NUMM= x e

  kfffdb node frlist number: ; x : xffffffff

  kfffdb node frlist incarn: ; x : A= NUMM= x

  kfffdb hibytes: ; x c: x

  kfffdb lobytes: ; x : x c

  kfffdb xtntcnt: ; x : x

  kfffdb xtnteof: ; x : x

  kfffdb blkSize: ; x c: x

  kfffdb flags: ; x : O= S= S= D= C= I= R= A=

  kfffdb fileType: ; x : x

  kfffdb dXrs: ; x : SCHE= x NUMB= x

  kfffdb iXrs: ; x : SCHE= x NUMB= x

  kfffdb dXsiz[ ]: ; x : xffffffff

  kfffdb dXsiz[ ]: ; x : x

  kfffdb dXsiz[ ]: ; x c: x

  kfffdb iXsiz[ ]: ; x : xffffffff

  kfffdb iXsiz[ ]: ; x : x

  kfffdb iXsiz[ ]: ; x : x

  kfffdb xtntblk: ; x c: x

  kfffdb break: ; x e: x c

  kfffdb priZn: ; x : KFDZN_COLD

  kfffdb secZn: ; x : KFDZN_COLD

  kfffdb ub spare: ; x : x

  kfffdb alias[ ]: ; x : x a

  kfffdb alias[ ]: ; x : xffffffff

  kfffdb strpwdth: ; x c: x

  kfffdb strpsz: ; x d: x

  kfffdb usmsz: ; x e: x

  kfffdb crets hi: ; x : HOUR= xb DAYS= x MNTH= x YEAR= x dd

  kfffdb crets lo: ; x : USEC= x MSEC= x SECS= x MINS= x

  kfffdb modts hi: ; x : HOUR= x DAYS= x MNTH= x YEAR= x dd

  kfffdb modts lo: ; x c: USEC= x MSEC= x SECS= x MINS= x

  kfffdb dasz[ ]: ; x : x

  kfffdb dasz[ ]: ; x : x

  kfffdb dasz[ ]: ; x : x

  kfffdb dasz[ ]: ; x : x

  kfffdb permissn: ; x : x

  kfffdb ub spar : ; x : x

  kfffdb ub spar : ; x : x

  kfffdb user entnum: ; x : x

  kfffdb user entinc: ; x a: x

  kfffdb group entnum: ; x c: x

  kfffdb group entinc: ; x e: x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x c: x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x c: x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x : x

  kfffdb spare[ ]: ; x c: x

  kfffdb usm: ; x a : length=

  kfffde[ ] xptr au: ; x a : x

  kfffde[ ] xptr disk: ; x a : x

  kfffde[ ] xptr flags: ; x a : L= E= D= S=

  kfffde[ ] xptr c: ; x a : x b

  kfffde[ ] xptr au: ; x a : x d

  kfffde[ ] xptr disk: ; x ac: x

  kfffde[ ] xptr flags: ; x ae: L= E= D= S=

  kfffde[ ] xptr c: ; x af: x

  kfffde[ ] xptr au: ; x b : x

  kfffde[ ] xptr disk: ; x b : x

  kfffde[ ] xptr flags: ; x b : L= E= D= S=

  kfffde[ ] xptr c: ; x b : x a

  kfffde[ ] xptr au: ; x b : x e

  kfffde[ ] xptr disk: ; x bc: x

  kfffde[ ] xptr flags: ; x be: L= E= D= S=

  kfffde[ ] xptr c: ; x bf: x

  kfffde[ ] xptr au: ; x c : x

  kfffde[ ] xptr disk: ; x c : x

  kfffde[ ] xptr flags: ; x c : L= E= D= S=

  kfffde[ ] xptr c: ; x c : x

  kfffde[ ] xptr au: ; x c : x f

  kfffde[ ] xptr disk: ; x cc: x

  kfffde[ ] xptr flags: ; x ce: L= E= D= S=

  kfffde[ ] xptr c: ; x cf: x

  kfffde[ ] xptr au: ; x d : x

  kfffde[ ] xptr disk: ; x d : x

  kfffde[ ] xptr flags: ; x d : L= E= D= S=

  kfffde[ ] xptr c: ; x d : x

  kfffde[ ] xptr au: ; x d : x

  kfffde[ ] xptr disk: ; x dc: x

  kfffde[ ] xptr flags: ; x de: L= E= D= S=

  kfffde[ ] xptr c: ; x df: x a

  kfffde[ ] xptr au: ; x e : x

  kfffde[ ] xptr disk: ; x e : x

  kfffde[ ] xptr flags: ; x e : L= E= D= S=

  kfffde[ ] xptr c: ; x e : x f

  kfffde[ ] xptr au: ; x e : x

  kfffde[ ] xptr disk: ; x ec: x

  kfffde[ ] xptr flags: ; x ee: L= E= D= S=

  kfffde[ ] xptr c: ; x ef: x b

  kfffde[ ] xptr au: ; x f : x

  kfffde[ ] xptr disk: ; x f : x

  kfffde[ ] xptr flags: ; x f : L= E= D= S=

  kfffde[ ] xptr c: ; x f : x e

  kfffde[ ] xptr au: ; x f : x

  kfffde[ ] xptr disk: ; x fc: x

  kfffde[ ] xptr flags: ; x fe: L= E= D= S=

  kfffde[ ] xptr c: ; x ff: x

  kfffde[ ] xptr au: ; x : x

  kfffde[ ] xptr disk: ; x : x

  kfffde[ ] xptr flags: ; x : L= E= D= S=

  kfffde[ ] xptr c: ; x : x d

  kfffde[ ] xptr au: ; x : x

  kfffde[ ] xptr disk: ; x c: x

  kfffde[ ] xptr flags: ; x e: L= E= D= S=

  kfffde[ ] xptr c: ; x f: x

  kfffde[ ] xptr au: ; x : x

  kfffde[ ] xptr disk: ; x : x

  kfffde[ ] xptr flags: ; x : L= E= D= S=

  kfffde[ ] xptr c: ; x : x c

  kfffde[ ] xptr au: ; x : x

  kfffde[ ] xptr disk: ; x c: x

  kfffde[ ] xptr flags: ; x e: L= E= D= S=

  kfffde[ ] xptr c: ; x f: x e

  kfffde[ ] xptr au: ; x : xffffffff

  kfffde[ ] xptr disk: ; x : xffff

  kfffde[ ] xptr flags: ; x : L= E= D= S=

  kfffde[ ] xptr c: ; x : x a

  kfffde[ ] xptr au: ; x : xffffffff

  kfffde[ ] xptr disk: ; x c: xffff

  kfffde[ ] xptr flags: ; x e: L= E= D= S=

  kfffde[ ] xptr c: ; x f: x a

  kfffde[ ] xptr au: ; x : xffffffff

  这个结果符合我们的预期 占用了 个au也即 Mb

  sys@GT G> select name block_size/ from v$controlfile ;

  NAME BLOCK_SIZE/

  

  +DATA /gt g/controlfile/current

  +FRA/gt g/controlfile/current

cha138/Article/program/Oracle/201311/19045

相关参考

知识大全 rhel4+oracle10g ASM配制及ASM与文件系统之间迁移

rhel4+oracle10gASM配制及ASM与文件系统之间迁移  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 探索ORACLE之ASM概念(完整版)

探索ORACLE之ASM概念(完整版)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一&nbs

知识大全 Oracle数据库自动存储管理(ASM)

Oracle数据库自动存储管理(ASM)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  关于AS

知识大全 使用普通文件创建ASM实例

使用普通文件创建ASM实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  建立以下perl脚本创

知识大全 利用RMAN将数据库从文件系统迁移到ASM

利用RMAN将数据库从文件系统迁移到ASM  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一打开

知识大全 对Oracle10g ASM生产数据库备份和恢复

对Oracle10gASM生产数据库备份和恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  新

知识大全 oracle 10g 新特性中文笔记一

  第一章安装    目标    完成本课您将能够:    *列出新的安装特性  *列出安装性能的增加    安装新特性支持    *数据库存储选项  文件系统  自动存储管理(asm)  裸设备  

知识大全 Oracle数据库在配置文件中更改最大连接数

Oracle数据库在配置文件中更改最大连接数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在连

知识大全 在Oracle9i中建立SPFILE文件

在Oracle9i中建立SPFILE文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Orac

知识大全 Oracle数据库中文件加密详解

Oracle数据库中文件加密详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Oracle数