oracle asm amdu和dd使用
随着数据库新版本的推广ASM肯定会越来越被重视。在11g里未出来之前,能做的很有限,想要copyASM里一个文件出来,只有用DD和execdbms_file_transfer.copy_file(),如果块坏了,那只能用DD找到对应的文件DD出来,再做BBED分析。在11G里出了AMDU,这个可以使用在10G上。下面了解下其用法,并和DD对比,起一个抛砖的作用。
AMDU是oracle 11g自带的一款asm文件抽取工具,也可以给oracle 10g用,用法参见oraclemetalink 553639.1:
下载下来:
unzipamdu_X86-64.zip
exportLD_LIBRARY_PATH=./
抽取spfile
SQL>selectname,file_number,alias_index,file_incarnationfromv$asm_aliaswherenamelike'%spfile%';NAMEFILE_NUMBERALIAS_INDEXFILE_INCARNATIONspfile.266.866828907266477866828907spfiledb.ora266227866828907[grid@mysql-1]$amdu-diskstring'/dev/raw/raw*'-extractdata.266[grid@mysql-1]$stringsDATA_266.fdb1.__db_cache_size=134217728db2.__db_cache_size=146800640db1.__java_pool_size=4194304db2.__java_pool_size=4194304db1.__large_pool_size=8388608db2.__large_pool_size=8388608db2.__oracle_base='/opt/oracle'#ORACLE_BASEsetfromenvironment…………..
抽取看来是没有问题的。如有兴趣可以继续跟踪下amdu的抽取流程:
strace-oamdu.logamdu-diskstring'/dev/raw/raw*'-extractdata.266
我们这里同样用DD演示:
SQL>SELECTa.GROUP_KFFXP,a.DISK_KFFXP,a.AU_KFFXP,b.path,c.nameFROMx$kffxpa,v$asm_diskb,v$asm_aliascWHEREa.number_kffxp=c.file_numberANDa.GROUP_KFFXP=b.group_numberANDa.disk_kffxp=b.disk_numberANDb.group_number=1ANDc.nameLIKE'%spfile%';GROUP_KFFXPDISK_KFFXPAU_KFFXPPATHNAME10208/dev/raw/raw4spfiledb.ora10208/dev/raw/raw4spfile.266.866828907
确定块大小:
SQL>selectname,block_size,allocation_unit_size,state,typefromv$asm_diskgroup;NAMEBLOCK_SIZEALLOCATION_UNIT_SIZESTATETYPEDATA40964194304CONNECTEDEXTERNARCH40960DISMOUNTED
这里block_size为4K,au_size为4M.
$ddif=/dev/raw/raw4bs=4096count=1skip=212992of=spfile.ora
说明:skip=208*1024[grid@mysql-1~]$stringsspfile.oradb1.__db_cache_size=134217728db2.__db_cache_size=150994944……………………………………………………….db1.thread=1db2.thread=4db1.undo_tablespace='UNDOTBS1'db2.undo_tablespace='UNDOTBS4'
抽取文件:
SQL>selectfile#,name,bytes/1024/1024fromv$datafilewherenamelike'%users%';FILE#NAMEBYTES/1024/10244+DATA/db/users01.dbf2728.755+DATA/db/datafile/users.274.896306467100#amdu-diskstring'/dev/raw/raw*'-extractdata.274#catreport.txt**************************EXTRACTINGFILEDATA.274**************************Creatingfile:DATA_274.fExtractionwrote:104865792bytesStripesize:4194304bytesStripecolumns:1Mirrorcopies:1Blocksize:8192bytesFilesize:12801blocksFiletype:2Extentsize#1:4294967295extentsof1AUsExtentsize#2:0extentsof1AUsExtentsize#3:0extentsof1AUsExtentsize#4:4294967295extentsof1AUsCreationtime:2015/11/2022:01:07.797000Modifiedtime:2015/12/1820:00:00.000000Dataextentsinfile:26Dataextentsfound:26Blocksnotfound:0blocks
dbv验证
[grid@mysql-1]$dbvfile=DATA_274.fblocksize=8192DBVERIFY:Release11.2.0.4.0-ProductiononFriDec1822:28:152015Copyright(c)1982,2011,Oracleand/oritsaffiliates.Allrightsreserved.DBVERIFY-Verificationstarting:FILE=/home/grid/amdu_2015_12_18_22_21_11/DATA_274.fDBVERIFY-VerificationcompleteTotalPagesExamined:12800TotalPagesProcessed(Data):252TotalPagesFailing(Data):0TotalPagesProcessed(Index):0TotalPagesFailing(Index):0TotalPagesProcessed(Other):131TotalPagesProcessed(Seg):0TotalPagesFailing(Seg):0TotalPagesEmpty:12417TotalPagesMarkedCorrupt:0TotalPagesInflux:0TotalPagesEncrypted:0HighestblockSCN:4075933(0.4075933)
这里和x$视图对比一下:
SELECTa.GROUP_KFFXP,a.DISK_KFFXP,a.AU_KFFXP,b.path,c.nameFROMx$kffxpa,v$asm_diskb,v$asm_aliascWHEREa.number_kffxp=c.file_numberANDa.GROUP_KFFXP=b.group_numberANDa.disk_kffxp=b.disk_numberANDb.group_number=1ANDc.nameLIKE'%USERS.274%';
结果就不一一展示了,总计是26个AU,每个4M,正好100+4=104M.另外也可以看出,这里数据文件已打散。
这里再用DD,DD出这些块,然后合并,过程如下:
1 取出相应的块
SQL>select'ddif='||b.path||'bs=4194304count=1skip='||au_kffxp||'of=users_'||XNUM_KFFXP||'.dbf'FROMx$kffxpa,v$asm_diskb,v$asm_aliascWHEREa.number_kffxp=c.file_numberANDa.GROUP_KFFXP=b.group_numberANDa.disk_kffxp=b.disk_numberANDb.group_number=1ANDc.nameLIKE'%USERS.274%'orderbyXNUM_KFFXPddif=/dev/raw/raw4bs=4194304count=1skip=392of=users_0.dbfddif=/dev/raw/raw2bs=4194304count=1skip=571of=users_1.dbfddif=/dev/raw/raw3bs=4194304count=1skip=384of=users_2.dbfddif=/dev/raw/raw4bs=4194304count=1skip=393of=users_3.dbfddif=/dev/raw/raw2bs=4194304count=1skip=572of=users_4.dbfddif=/dev/raw/raw3bs=4194304count=1skip=385of=users_5.dbfddif=/dev/raw/raw2bs=4194304count=1skip=573of=users_6.dbfddif=/dev/raw/raw4bs=4194304count=1skip=394of=users_7.dbfddif=/dev/raw/raw2bs=4194304count=1skip=574of=users_8.dbfddif=/dev/raw/raw3bs=4194304count=1skip=386of=users_9.dbfddif=/dev/raw/raw2bs=4194304count=1skip=575of=users_10.dbfddif=/dev/raw/raw4bs=4194304count=1skip=395of=users_11.dbfddif=/dev/raw/raw3bs=4194304count=1skip=387of=users_12.dbfddif=/dev/raw/raw2bs=4194304count=1skip=704of=users_13.dbfddif=/dev/raw/raw4bs=4194304count=1skip=396of=users_14.dbfddif=/dev/raw/raw2bs=4194304count=1skip=705of=users_15.dbfddif=/dev/raw/raw3bs=4194304count=1skip=388of=users_16.dbfddif=/dev/raw/raw2bs=4194304count=1skip=706of=users_17.dbfddif=/dev/raw/raw4bs=4194304count=1skip=397of=users_18.dbfddif=/dev/raw/raw3bs=4194304count=1skip=389of=users_19.dbfddif=/dev/raw/raw2bs=4194304count=1skip=707of=users_20.dbfddif=/dev/raw/raw4bs=4194304count=1skip=398of=users_21.dbfddif=/dev/raw/raw2bs=4194304count=1skip=708of=users_22.dbfddif=/dev/raw/raw3bs=4194304count=1skip=390of=users_23.dbfddif=/dev/raw/raw2bs=4194304count=1skip=709of=users_24.dbfddif=/dev/raw/raw4bs=4194304count=1skip=399of=users_25.dbf
2 执行上述结果,导出
3 合并
SQL>SELECT'ddif=uses_'||XNUM_KFFXP||'.dbfbs=4194304count=1seek='||XNUM_KFFXP||'of=users.274.dbf'FROMx$kffxpa,v$asm_diskb,v$asm_aliascWHEREa.number_kffxp=c.file_numberANDa.GROUP_KFFXP=b.group_numberANDa.disk_kffxp=b.disk_numberANDb.group_number=1ANDc.nameLIKE'%USERS.274%'orderbyXNUM_KFFXPddif=users_0.dbfbs=4194304count=1seek=0of=users.274.dbfddif=users_1.dbfbs=4194304count=1seek=1of=users.274.dbfddif=users_2.dbfbs=4194304count=1seek=2of=users.274.dbfddif=users_3.dbfbs=4194304count=1seek=3of=users.274.dbfddif=users_4.dbfbs=4194304count=1seek=4of=users.274.dbfddif=users_5.dbfbs=4194304count=1seek=5of=users.274.dbfddif=users_6.dbfbs=4194304count=1seek=6of=users.274.dbfddif=users_7.dbfbs=4194304count=1seek=7of=users.274.dbfddif=users_8.dbfbs=4194304count=1seek=8of=users.274.dbfddif=users_9.dbfbs=4194304count=1seek=9of=users.274.dbfddif=users_10.dbfbs=4194304count=1seek=10of=users.274.dbfddif=users_11.dbfbs=4194304count=1seek=11of=users.274.dbfddif=users_12.dbfbs=4194304count=1seek=12of=users.274.dbfddif=users_13.dbfbs=4194304count=1seek=13of=users.274.dbfddif=users_14.dbfbs=4194304count=1seek=14of=users.274.dbfddif=users_15.dbfbs=4194304count=1seek=15of=users.274.dbfddif=users_16.dbfbs=4194304count=1seek=16of=users.274.dbfddif=users_17.dbfbs=4194304count=1seek=17of=users.274.dbfddif=users_18.dbfbs=4194304count=1seek=18of=users.274.dbfddif=users_19.dbfbs=4194304count=1seek=19of=users.274.dbfddif=users_20.dbfbs=4194304count=1seek=20of=users.274.dbfddif=users_21.dbfbs=4194304count=1seek=21of=users.274.dbfddif=users_22.dbfbs=4194304count=1seek=22of=users.274.dbfddif=users_23.dbfbs=4194304count=1seek=23of=users.274.dbfddif=users_24.dbfbs=4194304count=1seek=24of=users.274.dbfddif=users_25.dbfbs=4194304count=1seek=25of=users.274.dbf
4 对比验证
[grid@mysql-1amdu_2015_12_21_13_39_36]$dbvfile=DATA_274.fDBVERIFY:Release11.2.0.4.0-ProductiononMonDec2113:41:092015Copyright(c)1982,2011,Oracleand/oritsaffiliates.Allrightsreserved.DBVERIFY-Verificationstarting:FILE=/home/grid/users/amdu_2015_12_21_13_39_36/DATA_274.fDBVERIFY-VerificationcompleteTotalPagesExamined:12800TotalPagesProcessed(Data):252TotalPagesFailing(Data):0TotalPagesProcessed(Index):0TotalPagesFailing(Index):0TotalPagesProcessed(Other):131TotalPagesProcessed(Seg):0TotalPagesFailing(Seg):0TotalPagesEmpty:12417TotalPagesMarkedCorrupt:0TotalPagesInflux:0TotalPagesEncrypted:0HighestblockSCN:4075933(0.4075933)[grid@mysql-1amdu_2015_12_21_13_39_36]$dbvfile=users.274.dbfDBVERIFY:Release11.2.0.4.0-ProductiononMonDec2113:41:172015Copyright(c)1982,2011,Oracleand/oritsaffiliates.Allrightsreserved.DBVERIFY-Verificationstarting:FILE=/home/grid/users/amdu_2015_12_21_13_39_36/users.274.dbfDBVERIFY-VerificationcompleteTotalPagesExamined:12800TotalPagesProcessed(Data):252TotalPagesFailing(Data):0TotalPagesProcessed(Index):0TotalPagesFailing(Index):0TotalPagesProcessed(Other):131TotalPagesProcessed(Seg):0TotalPagesFailing(Seg):0TotalPagesEmpty:12417TotalPagesMarkedCorrupt:0TotalPagesInflux:0TotalPagesEncrypted:0HighestblockSCN:4075933(0.4075933)
两者在dbv验证都可以通过。
附:x$kffxp简要说明:
GROUP_KFFXP:磁盘组编号NUMBER_KFFXP:文件编号PXN_KFFXP:物理区号XNUM_KFFXP:逻辑区号LXN_KFFXP:0=primary,1=firstmirror,2=secondmirrorDISK_KFFXP:磁盘编号AU_KFFXP:AU号
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。